earths 0.0.1

High-fidelity Earth simulation engine — orbit, atmosphere, geology, hydrology, biosphere, terrain, lighting, rendering, satellites, and temporal systems with full scientific coupling
Documentation
# CHANGELOG

All notable changes and the current project state are recorded here. This crate is not published yet.

## Current State

- Codebase: ~8,500 lines across 11 modules (atmosphere, hydrology, geology, biosphere, geodata, terrain, rendering, physics, satellites, temporal, lighting).
- API surface: 275+ public functions, structs and enums. `main.rs` provides `Earth` struct with a unified `tick()` loop and a 60 Hz runtime loop.
- Tests: 347 unit/integration tests covering core physics, hydrology, atmosphere and temporal subsystems (coverage focused on core scientific models).
- Scientific models implemented and exercised by tests: Keplerian orbits (Newton–Raphson), rotation and solar position (IAU-based), Rayleigh/Mie scattering (multi-wavelength), Ekman/geostrophic winds, Stefan–Boltzmann energy balance, Manning flow for rivers, Farquhar photosynthesis model, Glen's flow law for glaciers, tidal forcing with Love numbers, Lotka–Volterra (predator–prey) with RK4 integration, and many other domain-relevant approximations.
- Dependency on SciForge constants: physical, atomic and astronomical constants are used where possible.

## What is solid

- Core physics modules implemented with research-grade formulae and cross-checked with unit tests.
- `main.rs` integrates subsystems with explicit feedback loops (CO₂ ↔ NPP, clouds ↔ irradiance, sea level ↔ biome). No `todo!()` or `unimplemented!()` remain in public code.
- IPC fallback: Earth will use external planet binaries when available (Moon binary detection via `MOON_BINARY` / `PATH`) and fall back to internal simulation otherwise.

## Points to watch (high priority)

- Six modules required extended testing coverage in earlier iterations (biosphere, geodata, lighting, satellites, temporal, terrain) — keep monitoring for new integration gaps as features are added.
- Numerical stability: predator–prey model now uses RK4; long-run behaviours should be validated for multi-century simulations.
- Edge cases: division-by-zero guards (rivers, Ekman depth, Rossby radius) must remain enforced to avoid NaN propagation in long runs.

## Verdict

The engine core is research-quality and integrative. The main remaining work is higher-resolution data pipelines, optional dataset importers (external, not shipped in the crate), and endpoint-driven visualization integration. This crate intentionally contains no visual assets; visualization is handled externally via endpoints.

---

## Development notes

- This crate is currently unpublished. The `version` in `Cargo.toml` will remain `0.0.1` until you decide to tag a release.
- See `COMING_SOON.md` for the detailed roadmap and upcoming features.