3D Eclipse Simulator
Explore 30,000 Years of Solar and Lunar Eclipses in Real-Time 3D using Unreal Engine 5 and Cesium plugin for realistic Earth
About This Project
3D Solar Eclipse Simulator
Explore 30,000 Years of Solar and Lunar Eclipses in Real-Time 3D
3D Solar Eclipse Simulator is a free, open-source scientific visualization application developed with Unreal Engine 5.7, Cesium for Unreal, Python, Skyfield and NASA/JPL DE441 ephemerides.
Originally developed as my Bachelor's thesis at the National University of Science and Technology POLITEHNICA Bucharest, this project combines computational astronomy, mathematical geometry, machine learning and real-time 3D rendering.
Unlike traditional eclipse applications that display events as flat 2D maps, this simulator visualizes the actual three-dimensional geometry of celestial shadows interacting with Earth.
A Different Way to Experience Eclipses
The application calculates and renders the Moon's umbra, penumbra and antumbra cones, including their intersections with Earth, which is represented using a WGS84 ellipsoid rather than a perfect sphere.
Using Cesium for Unreal, these geometries are visualized over real-world geographical terrain, allowing users to explore eclipses from virtually any location on Earth.
You can fly through the shadow cones, follow the path of totality, select cities along an eclipse path and watch the event from a specific geographical location.
Main Features

71,264 solar eclipses and 72,272 lunar eclipses, covering approximately 30,000 years (13,000 BC – 17,000 AD).

Searchable eclipse catalogues with filters for year, magnitude and eclipse type.

City lists showing where individual eclipses can be observed, with geographical information and direct location viewing.

Real-time 3D visualization of umbra, penumbra and antumbra geometry.

Accurate geographical terrain powered by Cesium for Unreal.

Eclipse telemetry, including C1–C4 contact times, magnitude and coverage.

Free-flight camera and complete simulation time controls.

Saved locations and bookmarks.

Configurable atmospheric conditions, including clouds, fog, rain and snow.

A night sky featuring more than 5,000 stars, constellations and celestial bodies.
Technical Highlights
The application uses a custom Python astronomical backend based on Skyfield and JPL DE441 ephemerides.
Python communicates with Unreal Engine through a custom binary UDP protocol, enabling real-time synchronization between astronomical calculations and the 3D visualization.
Another interesting component is a compact neural network based on multi-resolution Hash Grid encoding, trained using NASA LRO/LOLA lunar elevation data. It models lunar surface relief to account for lunar limb topography when calculating solar eclipse contact times.
The astronomical calculations have been validated against Xavier Jubier's reference data for selected eclipses in 2026 and 2027, with a maximum documented difference of approximately 1.7 seconds.
Technology Stack
Unreal Engine 5.7
Cesium for Unreal 2.22.1
C++
Python 3.13
Skyfield
JPL DE441 ephemerides
Geopy
PyTorch and multi-resolution Hash Grid neural representation for Moon surface
Custom binary UDP communication
Watch the Simulator in Action
Trailer:
https://www.youtube.com/watch?v=sYdvDpyHnCw
Full demonstration:
https://www.youtube.com/watch?v=clGfikjfNSE
Download and Source Code
The application is free to download:
https://gabyboncan.gumroad.com/l/txlkbg
The complete source code is publicly available under the Apache License 2.0:
https://github.com/Dragos112358/Eclipse-Simulator-3D
About the Developer
I'm an independent developer and Computer Science graduate from POLITEHNICA Bucharest, currently pursuing an MSc in Data Science.
This project started from my interest in astronomy and evolved into a combination of computational physics, geospatial technology, machine learning and real-time graphics programming.
I'd love to hear feedback from other developers, especially regarding Unreal Engine architecture, scientific visualization, performance optimization and potential applications of real-time 3D technology in scientific education.
Thanks for checking out my project!
Discussion