# @suaveplan/geo-planet - Configurable planet surface geometry from PlanetConfig — ellipsoid, atmosphere, satellites, and orbital elements. ## Summary Configurable planet surface geometry from `PlanetConfig` — ellipsoid, atmosphere, satellites, and orbital elements. ## Documentation tree - [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_ - [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_ - [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_ - [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_ - [schemas](./src/types/schemas.md) — The `schemas` module exposes Zod runtime schemas mirroring every public type declared in `types.ts`. Validation is the… - [types](./src/types/types.md) — _(no submodules)_ - [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [schemas](./src/types/schemas.md) — The `schemas` module exposes Zod runtime schemas mirroring every public type declared in `types.ts`. Validation is the… - [types](./src/types/types.md) — _(no submodules)_- [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [schemas](./src/types/schemas.md) — The `schemas` module exposes Zod runtime schemas mirroring every public type declared in `types.ts`. Validation is the… - [types](./src/types/types.md) — _(no submodules)_- [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [schemas](./src/types/schemas.md) — The `schemas` module exposes Zod runtime schemas mirroring every public type declared in `types.ts`. Validation is the… - [types](./src/types/types.md) — _(no submodules)_- [atmospheric](./src/atmospheric/atmospheric.md) — _(no submodules)_- [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_ - [planet-surface](./src/planet-surface/planet-surface.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_ - [schemas](./src/types/schemas.md) — The `schemas` module exposes Zod runtime schemas mirroring every public type declared in `types.ts`. Validation is the… - [types](./src/types/types.md) — _(no submodules)_ ## Install ```bash bun add @suaveplan/geo-planet ``` ## Quick start ```ts import { PlanetSurface, PlanetConfigSchema } from "@suaveplan/geo-planet"; const config = PlanetConfigSchema.parse({ name: "Mars", mass: 6.39e23, radius: 3_396_200, polarRadius: 3_376_200, surfaceGravity: 3.72, rotationPeriod: 88_620, axialTilt: 25.2, atmosphere: null, satellites: [], }); const surface = new PlanetSurface(config); console.log(surface.distance(a, b, "kilometre")); ``` ## Modules - [`src/planet-surface/planet-surface.md`](src/planet-surface/planet-surface.md) - [`src/atmospheric/atmospheric.md`](src/atmospheric/atmospheric.md) - [`src/types/types.md`](src/types/types.md)