- Visualizer in `example/src/` — Raylib/raygui rendering (moved from core)
- See docs/technical_reference.md for data structures reference
- See docs/rendering.md for rendering system reference
@ -42,7 +43,9 @@
- Always ask the user if we want to update the technical_reference after generating a summary
## Common Commands
- Build: make
- Build all (lib + tests + visualizer): make
- Build library only: make lib
- Build visualizer example: make example
- Test (build + run all): make test
- Test (rebuild only): make test-build
- Test (specific tag): ./build/orbit_test '[tag_name]'
@ -51,7 +54,7 @@
- See docs/technical_reference.md for full build target reference
## Simulation
The simulation binary is built at `./build/orbit_sim`. Agents should NOT attempt to run the graphical simulation. Focus on testing and code changes only.
The core simulation library is built at `build/liborbit.a`. The visualizer binary is at `./build/orbit_sim`. Agents should NOT attempt to run the graphical simulation. Focus on testing and code changes only.
## Testing Guidelines
- Always use `WithinAbs()` for floating-point comparisons
2-body orbital mechanics simulator using **analytical propagation** for precise Keplerian trajectories. Supports elliptical, parabolic, and hyperbolic orbits with dynamic Sphere of Influence (SOI) transitions, impulsive burns, and 3D visualization via Raylib.
2-body orbital mechanics simulator using **analytical propagation** for precise Keplerian trajectories. Supports elliptical, parabolic, and hyperbolic orbits with dynamic Sphere of Influence (SOI) transitions and impulsive burns. 3D visualization via Raylib is provided as a separate example project in `example/`.
## Architecture
Modular C-style C++ (structs/functions, no classes). Module dependencies:
```
Main → Simulation → Orbital Mechanics → Physics
→ Maneuver
→ Rendezvous
→ Config Loader
Core Library → Simulation → Orbital Mechanics → Physics
→ Maneuver
→ Rendezvous
→ Config Loader
```
Renderer and UI Renderer depend on Config Loader for display data. Test Utilities are standalone.
The core library (`liborbit.a`) contains all simulation code. 3D rendering (Raylib/raygui) is in `example/src/`. Test Utilities are standalone.