Sources & Methodology
Every number in OrbitSpan is computed in your browser from published constants and an open-source ephemeris. There is no server-side physics, no database and no live astronomy API.
Astronomy model
Positions come from Astronomy Engine by Don Cross (MIT licence), which implements VSOP87-derived planetary series and the Meeus/ELP lunar theory. OrbitSpan calls HelioVector for heliocentric planet vectors, GeoVector for the Sun, and GeoMoon for the Moon, all in astronomical units on the equatorial J2000 frame.
Earth-relative vectors are obtained by subtracting Earth's heliocentric vector, and distances are the Euclidean norms of those vectors converted to metres. A single canonical UTC timestamp drives the whole app; timezone conversion never enters the astronomy.
Astronomy Engine documentation: JavaScript API reference.
Calculation method
Gravity uses Newton's law of universal gravitation, not general relativity: acceleration a = G·M / r² with r measured centre-to-centre from Earth's centre, and force F = m·a for your chosen mass. The observer is treated as being at Earth's centre; the few thousand kilometres of Earth's radius are negligible at planetary distances.
Human-scale figures multiply real lengths by the ratio (chosen Earth diameter ÷ real Earth mean diameter). Nothing is hardcoded: distances update whenever the simulation timestamp changes.
Constants and body data
- G = 6.67430e-11 m³ kg⁻¹ s⁻² (CODATA)
- 1 AU = 1.495979e+11 m (IAU 2012)
- Earth mean diameter = 12,742 km
- Earth standard surface gravity = 9.80665 m/s²
Masses, radii and orbital semi-major axes come from the NASA/JPL planetary fact sheets and are stored once, as typed metadata, in src/lib/orbit/constants.ts.
Visualization limitations
- Scientific mode uses true relative sizes and distances; bodies are clamped to a minimum of a few pixels so they remain clickable.
- Exploration mode compresses heliocentric distance by a square-root mapping and enlarges bodies by a sub-linear function of radius. Sizes there are not to scale, and the app says so persistently.
- Orbit rings are drawn as circles at each body's semi-major axis; real orbits are elliptical and slightly inclined, so the rendered ring is an approximation while the body's own position is genuine.
- The Moon is drawn at an exaggerated separation from Earth in the compressed layouts so it stays visible; its true distance is always shown numerically.
- Human-scale distances of tens of kilometres are presented as a measurement scale space and distance cards rather than a literal 3D world.
- Positions are sampled about eight times a second and interpolated between frames, so fast playback is smooth rather than frame-exact.
Offline support
A service worker caches the app shell and static assets so the core simulation keeps working without a connection once it has been loaded. This depends on browser support and available storage — if service workers are unavailable or registration fails, the header says so instead of promising offline availability.
Scientific stance
OrbitSpan reports gravitational effects that are real but extremely small at planetary distances. It makes no claim that this smallness by itself refutes astrology; the scientific issue is the absence of established evidence for the claimed causal or predictive effects on personality, luck, relationships, destiny or future events.
