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
- NASA/JPL HorizonsEphemerides and Solar System body vectors.
- JPL Planetary SatellitesNatural satellite reference data.
- JPL Small-Body DatabaseAsteroid, comet and trans-Neptunian object metadata.
- ESA Hipparcos CataloguesCompact bright-star source for browser-ready firmament rendering.
- Stellarium Sky CulturesConstellation line and sky-culture metadata reference.
- OpenNGCOpen catalog for galaxies, nebulae and star clusters.
TEXTURES AND 3D ASSETS (SPRINT 02+)
- NASA 3D ResourcesFuture planet 3D models and textures (sprint 02+).
- JPL Planetary Texture MapsHigh-resolution surface maps for future textures.
- USGS AstrogeologyPlanetary maps and mosaics for future texture processing.
- NASA Media GuidelinesNASA asset reuse and attribution policy.
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.
PERFORMANCE STRATEGY
- WebGL canvas loaded via dynamic import (SSR-safe).
- No heavy texture maps (procedural materials).
- Minor body catalog limited to ~28 curated bodies.
- Instanced rendering planned for future dense catalogs (Sprint 03B+).
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: JPL Horizons API route for precision positions; full minor-body catalog with progressive loading; real NASA/USGS textures.
- Sprint 04: IAU WGCCRE RA/Dec for planetary pole azimuths; natural satellite catalog; asteroid belt as instanced points.
- 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-fiOTHER FOSFORONERO PROJECTS
fitmesh.fit
Wearable synchronization and personal health dashboard. Android + Galaxy Watch + Wear OS.
splitvote.io
Voting and polls for groups, with no registration or account. Privacy-first.
sitebrain.ai
WordPress plugin with self-hosted RAG engine. Index your content and answer visitors using OpenAI, Anthropic or OpenRouter. Privacy-first, GDPR-ready.
lab/tavola-periodica
Interactive 3D periodic table: atoms, s/p/d/f orbitals, crystal lattices and WebGL molecules.