I know folks on here have a love / hate relationship but I think this would benefit from moving to cloudflare's stack. Current server is completely dead (has a Hostinger IP so they probably took it down from the traffic spike)
I'm Davi, a 17-year-old developer from Brazil, and I've spent the last few months building NEO Radar, a browser-based orbital mechanics engine focused on Near-Earth Objects.
The goal wasn't to build another Solar System viewer, but to understand how orbital propagation actually works and implement as much of it as I could from first principles.
Some highlights:
• 41,812 real asteroids from the Minor Planet Center • JPL Horizons ephemerides • Newton-Raphson solver for Kepler's equation • Adaptive RK4 N-body integration • Monte Carlo uncertainty propagation • Real planetary perturbations • Interactive 2D heliocentric visualization
One architectural decision I'm particularly happy with is that the physics engine is completely isolated from rendering. The integrator has no DOM, Canvas or fetch dependencies—it simply outputs state vectors that the renderer consumes.
The repository also includes benchmarks, unit tests and documentation describing the numerical methods and the limitations of the model.
This project taught me far more about numerical methods and orbital mechanics than I expected when I started.
I'd really appreciate feedback, especially from anyone with experience in astrodynamics, numerical simulation or scientific visualization. I'm sure there are many things that can still be improved.
Eg I see you've got a powerful adaptive Runge-Kutta method implemented in integrator.js. While that will do really well, for the sake of study you might make the solver implementation swappable and experiment with basic techniques. Some are very slow. Some maybe unstable and blow up the solar system. Why? Numeric methods are not one size fits all - see what the different tradeoffs are and how they respond to fiddling parameters. Understand the fundamentals.
Not that there is anything wrong with just wanting to make another visualizer and learn some things along the way, it's just a hollow way to try to learn first principles.
I remember all those poorly designed but laser-printed papers with clashing typefaces and ugly clip art. But look at where we are now: the word processor didn't destroy graphic design--it made it more visible and thus more important.
AI is the same thing. This specific creation (Neo Radar) is actually very cool, but we all know there is lots of AI slop out there. That's what happens when a new, powerful tool suddenly appears. But as people learn to use AI, we will wonder how we could have lived without it. I'm never going back to pre-AI days, if I can help it.
So don't worry--things will be better in a decade or so--I mean, assuming we haven't all ascended in the Singularity or been turned into batteries by ASI.
Data · JPL Horizons MAY · 2026
NEO Radar is a real orbital-mechanics engine for tracking Near-Earth Objects. 47 high-fidelity objects with full RK4 N-body dynamics, plus 41,812 MPC catalog asteroids with real positions — all 8 planets simulated. Click any asteroid for a complete physical dossier.
Next Close Approach
0.71lunar distances
2025 PT5 · in 2 d 14 h 22 m
2024 YR4
a=1.18 AU · e=0.66
Monitor 0.94 LD
Apophis
99942 · NEA, Aten
Caution 31,800 km
2025 QV1
a=0.93 AU · e=0.41
Safe 2.4 LD
Engineering
Every trajectory in NEO Radar is integrated from JPL Horizons ephemeris with full gravitational perturbation from the outer planets. The numbers you see are the numbers a mission planner would see.
E₀ → E₁ → E₂ → E₃ ε < 1e-12
01 / Kepler
Mean anomaly to eccentric anomaly via Newton-Raphson with adaptive seed, converging to 1×10⁻¹² in under four iterations even for high-eccentricity orbits.
M → E → ν e < 0.99 ε = 1e-12
+ Δv
02 / Perturbation
Toggle outer-planet gravity on or off. The uncertainty cone widens visibly on Jupiter-flyby trajectories — what mission planners call the keyhole problem.
N-body RK4 Adaptive Δt All 8 planets
1999 2025 2050 26 yr arc σ = 412 km
03 / Data
Pulled directly from JPL Horizons and pinned to disk for instant access. Observation arcs and uncertainty parameters travel with every object — no approximations, no drift.
NASA NeoWs SPICE kernels Local cache
Trust
We benchmark every NEO Radar trajectory against JPL Horizons ephemeris over a 50-year window. Where simplified two-body models drift by tens of thousands of kilometers, NEO Radar stays inside the actual uncertainty cone.
Position accuracy is computed as RMS deviation from JPL ground truth across the same 50-year window for the 47 high-fidelity objects.
NEO Radar 412 km
Kepler-only 18,400 km
2-body sim 112,000 km
Position RMS · 50 yr
412 km
Catalog Objects
41,859
Integrator Order
RK4
Adaptive Δt
10⁻³–10⁰ d