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
# Coming Soon - Earths v0.0.2+

## Development Setup Script

After installing `earths` via `cargo install earths`, use the bundled setup script to configure for local development with the latest `sciforge`:

```bash
sh ~/.cargo/bin/../scripts/setup_dev_environment.sh
```

Or run from the crate root:

```bash
./scripts/setup_dev_environment.sh
```

This script:
- Replaces pinned `sciforge = "0.1"` with `sciforge = "*"` in your local `Cargo.toml`
- Allows you to track the latest sciforge releases without waiting for earths updates
- Only affects your local checkout, not the published crate version

## Planned Features (Blocked on sciforge updates)

### v0.0.3 - Extended Physics
- **Requires**: sciforge >= 0.2 (advanced thermodynamics modules)
- Clausius–Clapeyron integration via sciforge thermodynamic tables
- Real atmospheric lapse rates (ICAO standard + deviations)
- High-precision seawater state equation (UNESCO 1983)

### v0.0.4 - Planetary Integration
- **Requires**: sciforge >= 0.3 (orbital mechanics, N-body)
- Venus climate simulation (Venus module in crate)
- Mars geology (Mars module in crate)
- Jupiter moon system (Ganymede, Europa modules)
- N-body orbital solver (currently simplified Kepler only)

### v0.0.5 - Coupled Earth System
- **Requires**: sciforge >= 0.3 (biogeochemistry)
- Full carbon cycle integration
- Nutrient cycling (nitrogen, phosphorus)
- Land-use change dynamics
- GCM-level atmosphere (multi-layer winds + transport)

### v0.0.6 - Advanced Rendering Backend
- **Requires**: sciforge >= 0.4 (spectral radiative transfer)
- Full hyperspectral rendering (400–2500 nm channels)
- Ocean color inversion
- Cloud radiative forcing feedback
- Polarization effects

### v0.0.7+ - Ecosystem Dynamics
- Biogeographic realm transitions (tropical → temperate → boreal)
- Evolution-aware biodiversity (extinction risk, speciation)
- Invasive species modeling
- Phenological shifts due to climate

## Known Limitations

### Current Scope (v0.0.2)
- No UI, viewer, or frontend in this crate
- Heightmap is analytical (harmonics up to degree 12) — not observational
- Ocean only has basic thermodynamics; no deep circulation
- Biosphere limited to 2 generic species
- Rendering data only (no GPU/graphics)

### Why These Exist
- Real datasets (SRTM, GEBCO, MODIS) require external provisioning
- GCM-scale atmospheric dynamics needs sciforge 0.3+
- Full biogeochemistry needs reference databases from sciforge

## Non-Goals

This crate will **never**:
- Render graphics (use specialized frontends instead)
- Bundle terrain rasters/DEMs/climate data
- Implement UI/visualization (API-first design)
- Reimplement features already in sciforge (absorb upstream instead)

## Integration Points

External consumers should integrate earths via:
1. **as a library**: `use earth::{Earth, ..}` → access simulation state
2. **via IPC**: spawn binary with `MOON_BINARY=/path/to/moon` for multi-body
3. **via endpoints**: wrap in REST/gRPC server for distributed clients
4. **via WebSocket**: stream state updates to web clients
5. **via file format**: export to NetCDF/HDF5 for analysis tools

## Contributing

Contributions welcome for:
- Bug fixes and test improvements
- Documentation clarity
- New subsystems (only if independent of sciforge features)
- Integration examples

Not needed:
- UI/rendering code (out of scope)
- Dataset bundling (use external provisioning)
- Frontend work (use APIs in your consumer)

## Changelog

See [`CHANGELOG.md`](CHANGELOG.md) for release notes and migration guides.