- Old doc renamed to mission_planning.md.old for reference
- New doc (leospacecraft_impulse_burn_plan.md) renamed to mission_planning.md
- Updated version includes LEO spacecraft, impulse burn, test config, and future work
- Add spacecraft body to earth_mars_simple.toml config file
- Implement initialize_spacecraft_leo() to set circular LEO at 200km altitude
- Implement apply_transfer_burn() for Hohmann transfer impulse burn
- Implement calculate_phase_angle() for launch window verification
- Add comprehensive test case with SOI transition tracking
- Preserve debug printf statements from main branch investigation
- LEO initialization verified: position, velocity, energy all correct
- Issue identified: delta-v calculation doesn't account for spacecraft LEO phase
- Test completes 8/9 assertions (fails post-burn energy check)
- Session documented in docs/leospacecraft_impulse_burn_plan.md
Next: Fix apply_transfer_burn() to use vector-based delta-v instead of magnitude-based
Add completed camera follow features to implementation plan:
- Camera follow for selected bodies
- Distance preservation when switching bodies
- Proper orbital rotation using camera.up
- Mark all UI implementation phases as completed in ui_implementation_plan.md
- Add UI body selection to completed items in implementation_plan.md
- Move ui_implementation_summary.md to docs/session_summaries/ for better organization
Add core orbital mechanics calculations and spacecraft spawning infrastructure
for interplanetary trajectory planning. Enables calculation of realistic
transfer orbits with proper departure window timing.
New Module (mission_planning.h/cpp):
- calculate_hohmann_transfer(): Returns transfer orbit parameters
- calculate_angular_position(): Computes body angle in XY plane
- calculate_required_phase_angle(): Calculates optimal launch phase
- check_launch_window(): Tests if current phase allows optimal launch
- wait_for_launch_window(): Fast-forwards to launch window
- spawn_spacecraft_on_transfer(): Creates spacecraft on transfer trajectory
Simulation Extensions (simulation.cpp/h):
- add_body_to_simulation(): Dynamic body creation at runtime
- Properly handles local/global coordinate initialization
- SOI radius calculation for dynamically added bodies
Test Suite:
- test_mission_planning.cpp: Core calculations validated
- test_hohmann_transfer.cpp: Spacecraft spawning verified
- earth_mars_simple.toml: Test configuration for transfers
Validations:
- Transfer parameters match NASA references (±5%)
- Earth→Mars transfer: 259 days, 44.3° phase, 2.94 km/s Δv
- Spacecraft spawns with correct velocity and position
- Launch window detection works (waits ~94 days for optimal window)
Status: Phases 1-3 complete, Phase 4 debugging in progress
(trajectory divergence after first update_simulation() call)
Decisions made:
1. Hysteresis: Adaptive approach (Option B) - prevents oscillation while enabling round-trips
2. Integration timing: Current approach (Option A) - defer half-step optimization to future TODO
3. Test priorities: Create all 3 test cases first - expect failures for unimplemented features
4. Adaptive timesteps: Deferred to later work - focus on SOI transitions first
Updated plan with:
- Decisions Made section documenting all 4 choices
- Updated implementation phases with decisions
- Updated timeline and success criteria
- Marked Phase 5 as deferred
- Ready to begin Phase 1 implementation
- Update hierarchical_frames_plan.md with recent work (Jan 13, 2026)
- Add comprehensive patched conics implementation plan
- Document SOI transition requirements and implementation phases
- Include 4 open questions for strategy discussion
- Add 6 test scenarios for multi-body transitions
- Document success criteria and timeline estimates
Document comprehensive testing of three orbit types:
- Parabolic orbit support (e=1.0) with escape velocity formula
- Hyperbolic orbit testing (e>1.0) with asymptotic velocity
- Simplified SOI transition test (3-body system)
- Hysteresis creates one-way SOI barrier
- 39 new assertions across 8 test cases
- Net +364 lines across 10 files
Claude
Document current progress after completing Phase 2:
- Phase 1 complete: Dual coordinate storage foundation
- Phase 2 complete: Local frame integration working
- Earth Moon test now passing (major success!)
- 7/9 tests passing (up from 6/9)
- Phases 3-5 deferred for future work
Added detailed status, commit references, and notes for future development
Add dual coordinate storage to CelestialBody for hierarchical frames.
Both local (relative to parent) and global (absolute) coordinates maintained.
- Added local_position and local_velocity fields to CelestialBody
- Added initialize_local_coordinates() to convert global→local
- Added compute_global_coordinates() to convert local→global
- Updated config_loader to initialize local coords after velocity calc
- Updated update_simulation() to sync local coords after integration
- Phase 1 complete: foundation for local frame integration
Tests: Same 3 moon failures as before (no regression)
Implements hierarchical_frames_plan.md Phase 1
- Renamed src/bodies.h to src/simulation.h
- Renamed src/bodies.cpp to src/simulation.cpp
- Updated all include references in src/ and tests/
- Updated Makefile to reference simulation.cpp
- Updated documentation references
Claude