DwarfPlanetsFactory
A Rust dwarf planet factory — create, simulate, and analyze dwarf planets across all trans-Neptunian dynamical classes plus the main belt. From classical Kuiper belt objects and Plutinos to scattered disk objects, detached worlds, Sednoids, and binary systems, with full orbital mechanics, resonance physics, thermal modelling, and photometric observables. Pure procedural — no hardcoded presets, all parameters explicit.
Features
- Type system — 8 dwarf planet types with class-specific physics, GeneratedDwarfPlanet enum, and builder pattern constructors
- KuiperBelt — Generic KBO (30–55 AU), Hill radius, atmosphere flag
- ScatteredDisk — High-eccentricity SDOs, active scattering detection, centaur transition potential
- Plutino — 2:3 Neptune resonance (a ≈ 39.4 AU), libration amplitude, Neptune-crossing detection
- ColdClassical — Pristine low-e, low-i KBOs (42–48 AU), surface colour classification (UltraRed/Red/Neutral), binary fraction
- Detached — Decoupled orbits (q > 40 AU), Planet Nine candidate scoring
- BinaryDwarf — Binary systems (Pluto-Charon archetype), mutual orbital period, barycenter offset, mass ratio
- CeresType — Main belt dwarf planet, ice mantle fraction, cryovolcanism, Tisserand parameter
- Sednoid — Extreme detached objects (a > 150 AU, q > 50 AU), inner Oort Cloud candidates, Planet Nine alignment
- Physics — Gravitational binding energy, tidal forces, Hill sphere, Roche limit, orbital velocity, angular momentum
- Thermal — Equilibrium temperature, N₂/CO ice sublimation rates, surface recession, thermal parameter
- Orbital mechanics — Kepler solver, Tisserand parameters (Neptune & Jupiter), synodic periods, Kozai-Lidov timescale
- Evolution — Collisional lifetime, space weathering timescale, volatile depletion, surface rejuvenation
- Resonance — Mean-motion resonance location/width/libration, closest resonance identification
- Photometry — Absolute/apparent magnitude, thermal flux, colour index B-V, angular diameter
- Lightcurve — Amplitude from axis ratio, critical spin rate, rotational stability, Jacobi threshold, phase coefficient
Quick Start
Examples
Testing
72 integration tests across types, physics, and engine modules.
Project Structure
src/
├── config/ # Physical constants, mass boundaries, orbital helpers
├── engine/ # Orbital mechanics, evolution, resonance identification
├── observables/ # Photometry, lightcurve analysis
├── physics/ # Gravitation, thermal/sublimation models
├── types/ # KuiperBelt, ScatteredDisk, Plutino, ColdClassical, Detached, BinaryDwarf, CeresType, Sednoid
└── utils/ # Angle/unit conversions, I/O formatters
Dependencies
- sciforge — Physical constants, astronomical utilities
License
MIT — see LICENSE.