dwarfplanetsfactory 0.0.3

Dwarf planet factory — classify, build and catalogue dwarf planets of any type: Kuiper belt, scattered disk, plutino, cold classical, detached, binary, Ceres-type, and sednoid.
Documentation
  • Coverage
  • 23.77%
    92 out of 387 items documented0 out of 243 items with examples
  • Size
  • Source code size: 97.73 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 14.73 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 1m 24s Average build duration of successful builds.
  • all releases: 2m 37s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • celestial4498-prog

DwarfPlanetsFactory

Part of the Celestial project.

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

cargo build
cargo run

Examples

cargo run --example generation     # Create all 8 dwarf planet types
cargo run --example physics        # Gravity and thermal calculations
cargo run --example observables    # Orbital mechanics, resonance, photometry, lightcurve

Testing

cargo test --all-targets

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.