You are browsing as a guest. Sign up (or log in) to start making projects!

Ephemeris

  • 4 Devlogs
  • 4 Total hours

This is a solar system simulation program I am creating for a school performance assessment.

Open comments for this post

19m 45s logged

I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation.

I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation.

Replying to @reimunyancat

0
1
Ship #1

🪐 Ephemeris — a real-time 3D solar system simulator, built from scratch

What I made:
A desktop app (Tauri + TypeScript + Three.js) that simulates the solar system from real NASA JPL Horizons initial conditions. Instead of faking the orbits, it actually integrates Newtonian gravity in real time. I hand-implemented three classic computational-physics algorithms: a Velocity Verlet symplectic integrator for stable long-term orbits, a 3D Barnes-Hut octree for O(N log N) gravity, and a Newton-Raphson solver for Kepler's equation to read out live orbital elements.

What was challenging:
The trickiest part was the tension between the symplectic integrator and the Barnes-Hut approximation — every time the octree rebuilds, tiny force discontinuities break symplecticity and energy drift creeps back in. Getting the numerical stability right (gravity softening near close encounters, sub-stepping at high time-acceleration, and removing barycenter drift) and killing GC frame spikes with an octree node memory pool took a lot of iteration.

What I'm proud of:
It genuinely runs on real NASA data and the orbits come out physically correct — the unit tests recover the actual JPL inclinations. And it looks nice too: procedural planet textures, age-faded orbit trails, Saturn's rings, Earth's atmospheric glow, and real axial tilt + rotation.

How to test it:
Open it and the 8 planets load automatically. Drag the time slider to speed things up (1 day/s → 1 year/s), click any planet to see its 6 live orbital elements, then toggle the asteroid belt on (1k–10k particles) and switch between naive O(N²) and Barnes-Hut to watch the FPS difference. You can also pause, reverse, and jump through time.

  • 4 devlogs
  • 4h
Try project → See source code →
Open comments for this post

1h 1m 22s logged

I added details, removed minor bugs, and made it prettier.

I added details, removed minor bugs, and made it prettier.

Replying to @reimunyancat

0
1
Open comments for this post

1h 49m 29s logged

Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow.

Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow.

Replying to @reimunyancat

0
10
Open comments for this post

39m 22s logged

I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part.

I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part.

Replying to @reimunyancat

0
2

Followers

Loading…