satellitesfactory 0.0.3

Satellite factory — classify, build and catalogue natural satellites for any planetary system: Solar System moons (Moon, Galileans, Titan, Triton…) or custom configurations.
Documentation
# Project Structure

Structure map for the SatellitesFactory crate.

```text
SatellitesFactory/
├── README.md                           # Project overview and usage
├── LICENSE                             # MIT license
├── ChangeLog.md                        # Version history
├── ComingSoon.md                       # Upcoming features
├── Contributing                        # Contribution guidelines
├── lastest_versions.sh                 # Restore wildcard dependency versions
│
├── src/
│   ├── lib.rs                          # Library root, re-exports all modules
│   │
│   ├── config/                         # Configuration and constants
│   │   ├── mod.rs                      # Module declarations
│   │   └── parameters.rs              # Physical constants (sciforge re-exports), satellite mass/radius, unit conversions
│   │
│   ├── types/                          # Satellite type system
│   │   ├── mod.rs                      # Module declarations
│   │   ├── regular.rs                  # RegularSatellite — Moon, Io, Europa, Ganymede, Callisto, Titan, Titania, Oberon
│   │   ├── captured.rs                 # CapturedSatellite — Triton, Phobos, Deimos with capture energy, retrograde flag
│   │   └── ring_moon.rs               # RingMoon — Enceladus, Mimas, Prometheus, Pandora with ring association, plumes
│   │
│   ├── physics/                        # Physical models
│   │   ├── mod.rs                      # Module declarations
│   │   ├── gravitation.rs              # Surface gravity, escape velocity, Hill sphere, Roche limit, Tisserand parameter
│   │   ├── tidal_dynamics.rs           # Tidal heating, locking timescale, orbital decay, Love numbers, resonance width
│   │   └── interiors.rs                # Core/mantle structure, central pressure, ocean depth, differentiation energy
│   │
│   ├── engine/                         # Simulation engine
│   │   ├── mod.rs                      # Module declarations
│   │   ├── orbits.rs                   # Kepler solver, elements ↔ Cartesian, vis-viva, Hohmann, Laplace resonance
│   │   ├── formation.rs                # Circumplanetary disk, ice line, isolation mass, capture probability
│   │   ├── evolution.rs                # Tidal migration, circularization, Kozai-Lidov, Yarkovsky drift
│   │   └── generator.rs               # Procedural satellite system generation (regular, captured, ring classes)
│   │
│   ├── observables/                    # Observable quantities
│   │   ├── mod.rs                      # Module declarations
│   │   ├── photometry.rs              # Equilibrium temperature, albedo, phase curves, transit depth, opposition surge
│   │   ├── spectra.rs                  # Band depth, water ice index, spectral slope, surface composition classification
│   │   └── astrometry.rs              # Angular separation, occultation duration, mutual events, astrometric wobble
│   │
│   ├── presets/                        # Pre-built planetary system presets
│   │   ├── mod.rs                      # Module declarations
│   │   ├── solar_system.rs             # Full Solar System: all regular, captured, ring moons by parent planet
│   │   ├── jovian_system.rs            # Jupiter: Galileans, inner moons, irregulars, class census
│   │   ├── saturnian_system.rs         # Saturn: Titan, major moons, ring moons, shepherds, co-orbitals
│   │   ├── uranian_system.rs           # Uranus: Miranda, Ariel, Umbriel, Titania, Oberon
│   │   └── neptunian_system.rs         # Neptune: Triton (captured), Proteus, Nereid
│   │
│   └── utils/                          # Utilities
│       ├── mod.rs                      # Module declarations
│       ├── helpers.rs                  # lerp, RK4, Simpson integration, log_range, format_si, clamp
│       └── io.rs                       # CSV and DAT output writers
│
├── tests/                              # Integration tests (159 tests)
│   ├── types_tests.rs                  # Regular, captured, ring-moon type tests (37 tests)
│   ├── physics_tests.rs                # Gravitation, tidal dynamics, interiors tests (44 tests)
│   └── engine_tests.rs                 # Orbits, formation, evolution, generator, observables, presets (78 tests)
│
└── examples/                           # Runnable examples
    ├── demo.rs                         # All preset systems, orbital periods, physical properties
    ├── validation.rs                   # Cross-module validation with sanity checks
    ├── tidal_heating.rs                # Io/Europa/Enceladus tidal heating and interior comparison
    └── system_generation.rs            # Procedural generation, formation models, evolution
```