π Live Demo β Experience the simulation in your browser
π Preprint β Read the accompanying research paper
The Interactive 3D Solar System Simulation shows the precession / eccentricity / inclination / obliquity / perihelion date movements of Earth, Moon, Sun and Planets coming together in a Holistic-Year cycle of 333,888 years, an Axial precession cycle of ~25,684 years, an Inclination precession cycle of 111,296 years and a Perihelion precession cycle of 20,868 years.
- Node.js (v16 or higher)
- npm (comes with Node.js)
# Clone the repository
git clone https://github.com/dvansonsbeek/3d.git
# Navigate to project directory
cd 3d
# Install dependencies
npm install
# Start development server
npm startThe simulation will open in your browser at http://localhost:1234
npm run build- The EARTH-WOBBLE-CENTER is the center of our solar system.
- Earth is wobbling clockwise around the EARTH-WOBBLE-CENTER in a period of ~25,684 solar years, also known as Axial precession and therefore the Axial tilt changes.
- The PERIHELION-OF-EARTH is orbiting the EARTH-WOBBLE-CENTER - and therefore Earth - counter-clockwise in a period of 111,296 solar years, also known as Inclination precession and therefore the inclination tilt changes.
- Axial precession meets Inclination precession every 20,868 years.
- Our Sun is orbiting the PERIHELION-OF-EARTH in a period of 1 solar year.
- Therefore it shows as if the Sun is orbiting Earth.
- The Sun is (still) the center of our solar system.
- Earth is wobbling clockwise around the EARTH-WOBBLE-CENTER in a period of ~25,684 solar years, also known as Axial precession and therefore the Axial tilt changes.
- The PERIHELION-OF-EARTH is wobbling around the Sun counter-clockwise in a period of 111,296 solar years, also known as Inclination precession and therefore the inclination tilt changes.
- Axial precession meets Inclination precession every 20,868 years.
- Earth is orbiting the PERIHELION-OF-EARTH - close to the Sun - in a period of 1 solar year.
- Therefore it shows Earth is actually orbiting the Sun.
- So we still live in a Heliocentric solar system.
- All planets in our solar system are orbiting their perihelion-point according to Kepler's 3rd law.
- The inclination (J2000 value ~1.57869Β°) and axial tilt together result in the obliquity of Earth's axis (J2000 value +23Β°26'21").
- There are only two counter movements around Earth working against each other in a ratio of 3:13 ; Inclination:Axial which explains all movements around Earth (precession, eccentricity, obliquity, inclination, etc)
- The currently experienced precession is NOT the mean value and all precession movements are always experienced in the same ratio (e.g. experienced perihelion precession is around 13/16th of Axial precession: ~25,771Γ13/16 = ~20,939 years)
- The Perihelion precession cycle of 20,868 years determines the natural cycles of the length of solar days, sidereal days, solar years, sidereal years and anomalistic years.
- The EARTH-WOBBLE-CENTER was aligned in 1246 AD with the PERIHELION-OF-EARTH and therefore the length of solar year in days and the length of sidereal year in seconds were MEAN in 1246 AD.
For more details see holisticuniverse.com.
This number fits all observations best and aligns all year and day calculations:
- Historic value longitude of perihelion 90Β°: 1245-12-14
- J2000 value longitude of perihelion: 6h51m48s = ~102.95Β°
- The Length of solar day, solar year in days, sidereal year in seconds aligned to 3D longitude values and historic values
- Climate graphs with ~111k cycles as a cycle of 111,296 years (three times 111,296 years = 333,888 years)
- End of Last Glacial Maximum (LGM) around 23,100 BC when inclination to inv plane was max
- End of Younger Dryas just after 11000 BC when obliquity was max
- KEY EVIDENCE: Mercury perihelion precession aligned to ~575 arc seconds per century
- KEY EVIDENCE: The difference sidereal day - stellar day leads to the difference solar year - sidereal year
- KEY EVIDENCE: Solar day, sidereal day, tropical year, sidereal year and anomaliztic year all align perfectly with 333,888 year cycle
- Obliquity correct both historic and current values
- Orbital Inclination to ICRF correct both historic and current values
- Eccentricity correct for current values
- Uses a teaching/visualization scale: 1 AU = 100 units; 1 solar year = 2Ο (the fundamental time angle)
- All other motions are expressed relative to these bases
- The startdate is set to 21-06-2000 00:00 UTC because:
- Close to actual June solstice (01:47 AM in the morning of 21 June)
- Earth axis is pointing (close) to Polaris
- Close to J2000 values so we can check and compare all values
Supports:
- Planet tilts and custom orbit inclinations
- Optional ring textures
- Emissive + textured planets
- Non-planet objects (perihelion, cycles) using
MeshBasicMaterial - Starfield background and constellations
- Dynamic ascending nodes and apparent inclinations
- Primary light:
DirectionalLightsimulating the Sun - Dynamic shadow frustum: Updated based on focused planet
- Fallback
PointLight: Used when the Sun itself is selected - Shadows: Enabled only for true planets (not trace objects)
- Planets:
MeshPhongMaterialwith bump, specular, and emissive options - Trace objects:
MeshBasicMaterialwith optional dimmed texture or fallback color
Each planet is structured like this:
orbitContainer β holds full orbit structure
βββ orbit β holds orbit visuals and pivot
βββ pivotObj β origin point offset to simulate eccentricity
βββ rotationAxis β applies axial tilt
βββ planetMesh β spherical geometry, holds material
βββ ringObj (optional) β Saturn-style rings
βββ axisHelperObj (optional) β debugging aid
- Focused object stored in
o.lookAtObj - Camera
controls.targetupdates each frame to follow focus - Light and ring center dynamically update with the focused object
- Default focus on Earth
- Focus ring: Shown around Earth when Sun is selected
- Sun glow: Dynamically scaled by camera distance
- Name tags and constellations: Fading and scaling based on camera distance
- DOM overlay label: Follows selected planet on screen
- Planet Hierarchy Inspector: Debug and analysis tool for orbital mechanics
dat.GUIpanel for visibility toggles- Zodiac glow toggle
- Time controls (play, pause, speed)
- Export functionality for solstice dates and object positions
Detailed documentation is available in the /docs folder. Start with the Documentation Readme for the complete reading order.
Getting Started:
- Introduction - Core concepts and the Holistic-Year
- User Guide - How to use the 3D simulation
- Glossary - Essential terms and definitions
Conceptual Overview:
- Dynamic Elements Overview - How orbital elements change over time
- Invariable Plane Overview - The invariable plane reference frame
- Scene Graph Hierarchy - Three.js nested rotation layers
Technical Reference:
- Constants Reference - All constants and their sources
- Orbital Formulas Reference - Formula implementations
- Create 100% correct formulas for solstice dates (beyond J. Meeus formula)
- Invariable plane improvements
- Start model at 12-14-1246 for exact eccentricity
- Confirm correct orbits for the Moon
- Confirm correct orbits for all planets
- Add more celestial objects
- Three.js - 3D rendering library
- Tychosium - Inspiration
- Solar System Scope - Planet textures
- Yale Bright Star Catalog - Star data
This software is licensed under the GNU General Public License (GPL-3.0).
See the LICENSE for details.
For questions about the model or if you want to help develop this further:
- Email: dennis@holisticuniverse.com
- Website: holisticuniverse.com
- GitHub Issues: Report a bug or request a feature
