SOLAR SYSTEM 3D · FOSFORONERO LAB

Data, sources
and technical stack.

Solar System 3D is an open-source WebGL observatory built for Fosforonero. Every position, star, and datum displayed comes from open or public sources with explicit citation.

TECHNICAL STACK

  • Next.js (App Router)React framework with file-system routing.
  • ReactUI component model.
  • TypeScriptType safety across the whole codebase.
  • Three.jsUnderlying WebGL 3D engine.
  • React Three FiberDeclarative React bridge for Three.js.
  • @react-three/dreiHelpers and abstractions for R3F.
  • @react-three/postprocessingPost-processing effects: bloom, vignette.
  • Orbital mechanics (Keplerian solver)Custom Keplerian solver using public orbital elements.
  • Star catalog: ESA HipparcosCurated subset for browser-ready firmament rendering.
  • lib/solar-system/reference-frames.tsHEC-J2000 frame documentation, ecliptic-to-equatorial conversion.
  • lib/solar-system/rotation-model.tsIAU 2015 axial tilt, sidereal rotation, retrograde detection.
  • lib/solar-system/lighting-model.tsPhysical (1/r²) and educational lighting configurations.
  • VercelHosting and deployment.

SCIENTIFIC DATA SOURCES

MINOR BODY CATALOG DATA (SPRINT 03B)

Static snapshot: Catalog chunks are snapshots generated from the JPL SBDB Query API. They do not auto-refresh. Retrieval date: visible in manifest.json.
  • JPL Small-Body Database Query APINEO asteroids (10,000), main belt (5,000), comets (~4,000), TNOs (~6,000), centaurs (~1,000). Keplerian orbital elements, HEC-J2000 frame.
  • JPL Horizons SystemOn-demand Cartesian vectors for search-selected bodies. 1h cache. Sub-km accuracy. Frame: Ecliptic/J2000.

TEXTURES AND 3D ASSETS (SPRINT 02+)

Current status: All materials are procedural. No real texture maps have been integrated yet. The following sources will be used in future sprints.

OPEN DATA AND LICENSE NOTES

NASA imagery and data are generally public under NASA media guidelines. USGS-authored products are generally US public domain. All source credits are retained. No NASA, JPL or USGS endorsement is implied.

SCIENTIFIC LIMITATIONS

  • Orbital positions: J2000 Keplerian elements in the HEC-J2000 frame. Not numerical integrations, not live JPL Horizons vectors. Accuracy: a few million km over multi-year timescales.
  • Axis orientation: IAU 2015 obliquity correct; pole azimuth approximated (IAU WGCCRE RA/Dec in Sprint 04). Precession and nutation not modelled.
  • Rings: simplified geometry; ring/planet proportions are physically correct. Missing: Cassini Division, ring shadow on planet. Rings use a fixed-colour material (meshBasicMaterial) and do not receive sunlight from the PointLight.
  • Lighting: educational mode adds a non-physical ambient boost for visibility. Physical mode (1/r²) is available but makes outer planets very dark.
  • Visual radii: educational logarithmic scale by category. Bodies are much larger than real scale relative to distances. Declared in inspector under "Active scales".
  • Mass: shown in the inspector as reference data. Not used in the simulation — orbits are static Keplerian, not N-body.
  • Temperature: no data and no calculations for surface, mean, or radiative equilibrium temperature.
  • Gravity and N-body: not implemented. No gravitational forces between bodies.
  • Eclipses, shadows, and transits: not implemented.
  • Star catalog is a curated subset of Hipparcos (44 stars), not the full catalog.
  • Textures are procedural; surface details are not scientifically representative.
  • Catalog SBDB: positions from Keplerian element snapshots. Not live vectors. Accuracy degrades for highly perturbed objects.
  • Selected body (Horizons): Horizons vector cached 1h. Sub-km accurate at query time. Not updated in real time.
  • Catalog coverage: based on SBDB snapshot at retrieval date. Does not auto-refresh.
  • NEO catalog: snapshot capped at 10,000 bodies out of ~42,000 known.

PERFORMANCE STRATEGY

  • WebGL canvas loaded via dynamic import (SSR-safe).
  • No heavy texture maps (procedural materials).
  • Curated major bodies: ~28 (planets, moons, dwarf planets, notable comets).
  • Sprint 03B: SBDB snapshot of 26,132 minor bodies loaded on-demand as point layers. NEOs capped at 10,000 out of ~42,000 known.

ROADMAP

  • Sprint 01: Keplerian solver, body catalog, Hipparcos firmament, procedural WebGL rendering.
  • Sprint 02: Full orbital elements (Ω, ω, M₀ J2000), sampled elliptical orbit paths, category-aware log radius scaling, readable moon/satellite systems, days/sec playback.
  • Sprint 03A: Physical realism — IAU 2015 axial tilt, Saturn/Uranus rings, 1/r² lighting, HEC-J2000 reference frame, inspector frame/accuracy.
  • Sprint 03B: SBDB catalog (NEO/MBA/comets/TNOs/centaurs), live SBDB search, sub-km Horizons precision marker, solar/catalog/search and solar/horizons API routes.
  • Sprint 04: IAU WGCCRE 2015 J2000 pole for major planets and Moon (correct quaternion in renderer); complete NEO catalog (41,780); catalog point sizing by H magnitude.
  • Sprint 05: CelesTrak artificial satellites; sandbox physics mode.

SUPPORT THE PROJECT

This lab is free, ad-free and built on open or public data. If it is useful to you or you want to support more interactive scientific tools, you can buy a coffee on Ko-fi.

Support on Ko-fi

OTHER FOSFORONERO PROJECTS