Document session work including main.cpp refactoring and eccentric orbit
support. Add prioritized TODO list for remaining config file updates and
known issues with moon positions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Update README with new 12-field config format and examples showing both
circular and eccentric orbits. Update config_assumptions.md to reflect
fixed issues and new capabilities.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Extend config format to support both circular and eccentric orbits using
eccentricity and semi-major axis parameters. All bodies now use the same
format: e=0 for circular orbits, e>0 for eccentric orbits.
Velocity calculation uses vis-viva equation for all cases. Add example
comet with highly eccentric orbit (e=0.7) to test configuration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Extract argument parsing, headless simulation, and GUI simulation into
separate functions. Add initial state capture for comparison in headless mode.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Document preference for:
- Minimal comments (code should be self-documenting)
- No decorative comment blocks
- Only comment non-obvious logic
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Document expected orbital positions and velocities for the simple
test case (configs/test_simple.txt):
- Expected orbital periods (Earth 365d, Mars 687d)
- Expected velocities (Earth 29.789 km/s, Mars 24.323 km/s)
- Verification points at quarter/half/full orbit
- Quick test commands
- Acceptable tolerances for numerical integration
Provides reference values to verify simulation accuracy by comparing
actual output against predicted positions and angles.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add --readable (-r) flag for headless mode that displays:
- Positions in AU instead of meters
- Velocities in km/s instead of m/s
- Polar coordinates (r, θ) in AU and degrees
Changes:
- New command line flag: --readable / -r
- Helper functions for formatted output
- Polar angle calculated from atan2(y,x) and converted to 0-360°
- Periodic updates show: Body(r=X.XX AU, θ=Y.Y°)
- Initial/final states show full cartesian + polar coordinates
Makes verification much easier - can instantly see orbital positions
and confirm bodies return to starting angles after full orbits.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Sun + Earth (1 AU) + Mars (1.5 AU)
- Circular orbits in XY plane
- Easy to verify: Earth 365 day period, Mars 687 day period
- Minimal 3-body system for testing orbital mechanics
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Document that barycentric orbit calculations have been implemented
and binary star systems now work correctly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Physics Updates (bodies.cpp):
- Root bodies now apply gravitational forces to each other
- Physics loop split into: root body updates, then child body updates
- Enables binary/multiple star systems to orbit their barycenter
Config Loader Updates (config_loader.cpp):
- Detect multiple root bodies (parent_index = -1)
- Calculate system barycenter (center of mass)
- Set initial velocities for root bodies to orbit barycenter
- Add debug output showing barycenter and orbital speeds
Binary star systems now work correctly with both stars
orbiting their common center of mass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add --headless/-h flag to run without graphics
- Add --days N flag to specify simulation duration
- Print initial state, periodic updates, and final state
- Useful for testing, debugging, and headless environments
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Improvements:
- Add "Getting Started" section with git clone instructions
- Document how to initialize raylib submodule
- Remove libraylib-dev from dependencies (using submodule instead)
- Remove manual raylib build instructions
- Clarify build process (raylib built automatically)
- Add make rebuild and make clean-all commands
This makes it clearer for users cloning the project that raylib
is included as a submodule and will be built automatically.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Orbital mechanics simulation with 2-body physics and SOI transitions.
Core Features:
- 2-body gravitational physics with sphere of influence transitions
- Real-time 3D visualization using raylib
- Configurable star systems via text files
- Interactive controls (camera, pause, speed)
Technical Implementation:
- C-style C++ (structs and functions, no classes)
- Modular architecture (physics, bodies, config loader, renderer)
- Euler integration for orbital mechanics
- SOI detection using Hill sphere approximation
Configuration System:
- Solar system with realistic data (Sun, 8 planets, 5 major moons)
- Binary star system example
- Easy to create custom systems via simple text format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>