1 changed files with 54 additions and 0 deletions
@ -0,0 +1,54 @@
|
||||
# Configuration File Assumptions and Issues |
||||
|
||||
## Key Assumptions Found: |
||||
|
||||
### **1. Format Assumptions (from config_loader.cpp)** |
||||
- Line buffer limited to 256 characters (config_loader.cpp:30) |
||||
- Name limited to 64 characters (config_loader.cpp:31) |
||||
- All 10 fields must be present: `name mass radius x y z parent_index r g b` (config_loader.cpp:19) |
||||
- File format is space-delimited |
||||
|
||||
### **2. Solar System Configuration Issues:** |
||||
|
||||
**Problem 1: Moon position is incorrect** |
||||
- Earth is at: `(1.496e11, 0, 0)` m |
||||
- Moon is at: `(1.500e11, 0, 0)` m |
||||
- Distance: ~4 million km, but Earth-Moon distance should be ~384,400 km (~3.844e8 m) |
||||
- The Moon should be at approximately `(1.496e11 + 3.844e8, 0, 0)` or similar |
||||
|
||||
**Problem 2: Jupiter's moons positions** |
||||
- Jupiter is at: `(7.785e11, 0, 0)` m |
||||
- Io is at: `(8.207e11, 0, 0)` m - **422 million km from Jupiter** (should be ~422,000 km = 4.22e8 m) |
||||
- Europa is at: `(8.456e11, 0, 0)` m - **671 million km from Jupiter** (should be ~671,000 km = 6.71e8 m) |
||||
- Ganymede/Callisto have similar issues |
||||
|
||||
The moon positions appear to use **absolute coordinates** matching their orbital radii around the Sun, not relative positions around their parent bodies! |
||||
|
||||
### **3. Binary Star Configuration Issues:** |
||||
|
||||
**Problem 1: Both stars have parent_index = -1** |
||||
- StarA: `parent_index = -1` |
||||
- StarB: `parent_index = -1` |
||||
- This means both are treated as root bodies with zero velocity (config_loader.cpp:69) |
||||
- They won't orbit each other! |
||||
|
||||
**Problem 2: Planet positions** |
||||
- PlanetA1 is at `(3.5e11, 0, 0)` while StarA is at `(3.0e11, 0, 0)` - only 50 million km apart |
||||
- PlanetB1 is at `(-4.2e11, 0, 0)` while StarB is at `(-3.7e11, 0, 0)` - only 50 million km apart |
||||
- These seem reasonable as absolute positions, but the velocity calculation assumes circular orbits |
||||
|
||||
### **4. Velocity Calculation Assumptions (config_loader.cpp:63-118):** |
||||
- All orbits are assumed to be **circular** |
||||
- Orbits are calculated in the XY plane perpendicular to Z-axis (config_loader.cpp:92) |
||||
- Root bodies (parent_index = -1) get zero velocity |
||||
- Velocities are calculated relative to parent, then parent's velocity is added |
||||
|
||||
### **5. Critical Assumption:** |
||||
The code assumes **positions are absolute (heliocentric)**, but for child bodies like moons, the **positions in the config should be relative to their parent**. This is not clearly documented and appears inconsistent! |
||||
|
||||
## Recommended Actions: |
||||
|
||||
1. Fix moon positions in solar_system.txt to be correct absolute coordinates |
||||
2. Fix binary star system to have one star orbit the other (or implement barycenter) |
||||
3. Document whether positions should be absolute or relative to parent |
||||
4. Add validation to check if child body positions make sense relative to parent |
||||
Loading…
Reference in new issue