# Project Structure
Structure map for the PlanetsFactory crate.
```text
PlanetsFactory/
├── 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), planet mass/radius, unit conversions
│ │
│ ├── types/ # Planet type system
│ │ ├── mod.rs # Module declarations
│ │ ├── terrestrial.rs # TerrestrialPlanet — Mercury, Venus, Earth, Mars with iron core, magnetic moment
│ │ ├── gas_giant.rs # GasGiant — Jupiter, Saturn, hot Jupiter with rings, metallic hydrogen
│ │ └── ice_giant.rs # IceGiant — Uranus, Neptune with ice mantle, magnetic dipole offset
│ │
│ ├── physics/ # Physical models
│ │ ├── mod.rs # Module declarations
│ │ ├── gravitation.rs # PlanetaryGravity: surface acceleration, escape velocity, Hill sphere, Roche limit, Tisserand
│ │ ├── atmospheres.rs # Atmosphere: barometric law, Jeans escape, greenhouse effect, effective temperature
│ │ └── interiors.rs # PlanetaryInterior: core/mantle structure, central pressure, MOI factor, Adams-Williamson
│ │
│ ├── engine/ # Simulation engine
│ │ ├── mod.rs # Module declarations
│ │ ├── orbits.rs # OrbitalElements: Kepler solver, elements ↔ Cartesian, vis-viva, period
│ │ ├── formation.rs # FormationModel: core accretion, pebble accretion, disk instability, snow line, MMSN
│ │ ├── evolution.rs # PlanetEvolution: cooling, radius contraction, photo-evaporation, tidal migration, HZ
│ │ └── generator.rs # SystemGeneratorConfig: Titius-Bode spacing, solar-type/M-dwarf procedural systems
│ │
│ ├── observables/ # Observable quantities
│ │ ├── mod.rs # Module declarations
│ │ ├── photometry.rs # Albedo, flux ratio, equilibrium temperature, day-night contrast, bolometric magnitude
│ │ ├── transits.rs # Transit depth, duration, ingress/egress, impact parameter, limb darkening, TTV
│ │ └── radial_velocity.rs # Semi-amplitude K, minimum mass, Rossiter-McLaughlin, activity jitter, astrometric wobble
│ │
│ ├── presets/ # Pre-built star system presets
│ │ ├── mod.rs # Module declarations
│ │ ├── solar_system.rs # Solar System: Mercury–Neptune, inner/outer groups, all() aggregator
│ │ ├── trappist1.rs # TRAPPIST-1: 7 terrestrial planets (b–h) with real parameters
│ │ ├── kepler90.rs # Kepler-90: 4 terrestrial + 4 gas giants
│ │ └── proxima_centauri.rs # Proxima Centauri: b and d
│ │
│ └── utils/ # Utilities
│ ├── mod.rs # Module declarations
│ ├── helpers.rs # lerp, RK4, Simpson integration, log_range, format_si
│ └── io.rs # CSV and DAT output writers
│
├── tests/ # Integration tests (77 tests)
│ ├── types_tests.rs # Terrestrial, gas giant, ice giant type tests
│ ├── physics_tests.rs # Gravitation, atmospheres, interiors tests
│ └── engine_tests.rs # Orbits, formation, evolution, generator, observables, presets tests
│
└── examples/ # Runnable examples
├── solar_system_demo.rs # Solar System planets, physical properties, orbital elements
├── validation.rs # Cross-module validation with sanity checks
└── exoplanet_generation.rs # Procedural exoplanet system generation
```