# 3dradspace/3d_rad_space architecture

> Architecture diagram of the GitHub repository 3dradspace/3d_rad_space, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/3dradspace/3d_rad_space
- Repository: https://github.com/3dradspace/3d_rad_space

## Overview

3DRadSpace is an early-stage Windows game engine and editor, with a C#-facing runtime and native engine services. The principal workflow is authoring or loading game assets, then using engine services to render, simulate physics, and produce audio during a game. The tree documents editor, player, graphics, scripting, and object systems, but sampled source only verifies selected asset, audio, and physics paths; uncertain connections are omitted.

Main entry points: [`3DRadSpace/Engine3DRadSpace/Audio/AudioEngine.cpp`](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Audio/AudioEngine.cpp) (Audio engine), [`3DRadSpace/Engine3DRadSpace/Content/ContentManager.hpp`](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Content/ContentManager.hpp) (Asset management), [`3DRadSpace/Engine3DRadSpace/Physics/NVPhysX/PhysicsEngine.cpp`](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Physics/NVPhysX/PhysicsEngine.cpp) (Physics simulation), [`3DRadSpace/Engine3DRadSpace/FFI/Audio/AudioEngine.cpp`](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Audio/AudioEngine.cpp) (Audio FFI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Game authoring"]
  node_editor["Windows editor<br/>[EditorGame.cpp]"]
  node_player["Game player<br/>[Main.cpp]"]
end

subgraph group_runtime["Engine runtime"]
  node_game["Game lifecycle<br/>[IGame.cpp]"]
  node_content["Asset management<br/>[ContentManager.hpp]"]
  node_scripting["Script management<br/>[ScriptEngine.hpp]"]
  node_physics["Physics simulation<br/>[PhysicsEngine.cpp]"]
  node_audio["Audio engine<br/>[AudioEngine.cpp]"]
end

subgraph group_graphics["Graphics and objects"]
  node_renderer["Rendering system"]
  node_objects["Game objects"]
end

subgraph group_interop["Language interop"]
  node_csapi["C&#35; engine API<br/>[Game.cs]"]
  node_csharpaudio["C&#35; audio API<br/>[AudioEngine.cs]"]
  node_audioffi["Audio FFI<br/>[AudioEngine.cpp]"]
  node_audioengineffi["Audio engine FFI<br/>[IAudioEngine.cpp]"]
  node_physicsffi["Physics FFI<br/>[IPhysicsEngine.cpp]"]
end

node_developer(("Game developer"))
node_assetfiles["Asset files"]
node_physx["PhysX"]
node_openal["OpenAL device"]

node_developer -->|"authors with"| node_editor
node_content -->|"loads"| node_assetfiles
node_content -->|"reloads"| node_assetfiles
node_physics -->|"simulates via"| node_physx
node_audio -->|"opens device"| node_openal
node_csharpaudio -->|"calls"| node_audioffi
node_audioffi -->|"creates"| node_audio
node_audioengineffi -->|"dispatches"| node_audio
node_physicsffi -->|"dispatches"| node_physics

click node_editor "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_Editor_WindowsDX11/Editor/EditorGame.cpp"
click node_player "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_Player/Main.cpp"
click node_game "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Core/IGame.cpp"
click node_content "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Content/ContentManager.hpp"
click node_scripting "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Scripting/ScriptEngine.hpp"
click node_physics "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Physics/NVPhysX/PhysicsEngine.cpp"
click node_audio "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Audio/AudioEngine.cpp"
click node_renderer "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Graphics/Rendering/RenderingManager.cs"
click node_objects "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Objects/ObjectCollection.cs"
click node_csapi "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Game.cs"
click node_csharpaudio "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Audio/AudioEngine.cs"
click node_audioffi "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Audio/AudioEngine.cpp"
click node_audioengineffi "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Audio/IAudioEngine.cpp"
click node_physicsffi "https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Physics/IPhysicsEngine.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_editor,node_player toneBlue
class node_game,node_content,node_scripting,node_physics,node_audio toneAmber
class node_renderer,node_objects toneMint
class node_csapi,node_csharpaudio,node_audioffi,node_audioengineffi,node_physicsffi toneRose
class node_developer,node_assetfiles,node_physx,node_openal toneIndigo
```

## Components

### Game authoring

- [Windows editor](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_Editor_WindowsDX11/Editor/EditorGame.cpp): `3DRadSpace/3DRadSpace_Editor_WindowsDX11/Editor/EditorGame.cpp`
- [Game player](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_Player/Main.cpp): `3DRadSpace/3DRadSpace_Player/Main.cpp`

### Engine runtime

- [Game lifecycle](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Core/IGame.cpp): `3DRadSpace/Engine3DRadSpace/Core/IGame.cpp`
- [Asset management](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Content/ContentManager.hpp): `3DRadSpace/Engine3DRadSpace/Content/ContentManager.hpp`
- [Script management](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Scripting/ScriptEngine.hpp): `3DRadSpace/Engine3DRadSpace/Scripting/ScriptEngine.hpp`
- [Physics simulation](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Physics/NVPhysX/PhysicsEngine.cpp): `3DRadSpace/Engine3DRadSpace/Physics/NVPhysX/PhysicsEngine.cpp`
- [Audio engine](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/Audio/AudioEngine.cpp): `3DRadSpace/Engine3DRadSpace/Audio/AudioEngine.cpp`

### Graphics and objects

- [Rendering system](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Graphics/Rendering/RenderingManager.cs): `3DRadSpace/3DRadSpace_CSharp/Graphics/Rendering/RenderingManager.cs`
- [Game objects](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Objects/ObjectCollection.cs): `3DRadSpace/3DRadSpace_CSharp/Objects/ObjectCollection.cs`

### Language interop

- [C# engine API](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Game.cs): `3DRadSpace/3DRadSpace_CSharp/Game.cs`
- [C# audio API](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/3DRadSpace_CSharp/Audio/AudioEngine.cs): `3DRadSpace/3DRadSpace_CSharp/Audio/AudioEngine.cs`
- [Audio FFI](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Audio/AudioEngine.cpp): `3DRadSpace/Engine3DRadSpace/FFI/Audio/AudioEngine.cpp`
- [Audio engine FFI](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Audio/IAudioEngine.cpp): `3DRadSpace/Engine3DRadSpace/FFI/Audio/IAudioEngine.cpp`
- [Physics FFI](https://github.com/3dradspace/3d_rad_space/blob/master/3DRadSpace/Engine3DRadSpace/FFI/Physics/IPhysicsEngine.cpp): `3DRadSpace/Engine3DRadSpace/FFI/Physics/IPhysicsEngine.cpp`

### Other components

- **Game developer**
- **Asset files**
- **PhysX**
- **OpenAL device**

## Connections

- Game developer → Windows editor: authors with
- Asset management → Asset files: loads
- Asset management → Asset files: reloads
- Physics simulation → PhysX: simulates via
- Audio engine → OpenAL device: opens device
- C# audio API → Audio FFI: calls
- Audio FFI → Audio engine: creates
- Audio engine FFI → Audio engine: dispatches
- Physics FFI → Physics simulation: dispatches
