SatellitesFactory
A Rust satellite factory — classify, build, and catalogue natural satellites for any planetary system. From regular moons and captured objects to volcanic moons, icy moons, and subsurface ocean worlds, with full orbital mechanics, tidal physics, interior models, formation scenarios, and system generation. Pure procedural — no hardcoded presets, all parameters explicit.
Features
- Type system — 8 satellite types with class-specific physics and builder pattern constructors
- Regular satellites — Accretion in circumplanetary disk, synchronous rotation, ice/rock fractions, moment of inertia
- Captured satellites — Retrograde orbits, capture energy, circularization timescale, irregular shape
- Ring moons — Shepherd dynamics, gap clearing, plume escape fractions, ring interaction torque
- Co-orbital moons — Trojan/horseshoe orbits, libration amplitude, stability parameter, mass ratio limit
- Exomoons — Transit timing/duration variations, Hill sphere stability, detectability signal-to-noise
- Icy moons — Ice shell thickness, cryovolcanic activity, subsurface conductivity, albedo model
- Subsurface ocean moons — Ocean depth, salinity, hydrothermal flux, habitability index, tidal dissipation
- Volcanic moons — Eruption rate, magma viscosity, tidal dissipation, SO₂ column density
- Gravitation — Surface gravity, escape velocity, Hill sphere, Roche limit (fluid + rigid), Tisserand parameter
- Tidal dynamics — Heating rate/flux, locking timescale, orbital decay, circularization, Love numbers, resonance width
- Interior models — Core/mantle structure, central pressure, ocean depth estimate, differentiation energy, convective vigor
- Orbital mechanics — Kepler solver, elements ↔ Cartesian, vis-viva, Hohmann transfers, Laplace resonance check
- Formation — Circumplanetary disk model, ice line, isolation mass, capture probability, ring spreading timescale
- Evolution — Tidal migration, circularization, sputtering, Kozai-Lidov, Yarkovsky drift, secular acceleration
- System generator — Procedural satellite systems with configurable counts per class
- Photometry — Equilibrium temperature, albedo, phase curves, transit depth, opposition surge
- Spectra — Band depth, water ice index, spectral slope, surface composition classification
- Astrometry — Angular separation, occultation duration, mutual events, astrometric wobble, light travel time
Quick Start
Examples
Testing
166 integration tests across types, physics, engine, observables, and utils modules.
Project Structure
src/
├── config/ # Physical constants, unit conversions, satellite mass/radius constants
├── types/ # Regular, captured, ring-moon, co-orbital, exomoon, icy, subsurface ocean, volcanic
├── physics/ # Gravitation, tidal dynamics, interior structure models
├── engine/ # Orbital mechanics, formation, evolution, system generator
├── observables/ # Photometry, spectra, astrometry
└── utils/ # Math helpers (lerp, RK4, Simpson), I/O
Dependencies
- sciforge — Physical constants, astronomical utilities
License
MIT — see LICENSE.