3-Body Laboratory
Custom Velocity-Verlet engine; Sun-Earth-Jupiter validated over 12 years; ejection threshold δ ≈ 0.5.
I model non-linear and chaotic systems with my own integrators, and check every result against a conservation law or an independent reference.
MSc Physics · Physics educator · Preparing for a PhD in Computational Physics & Nonlinear Dynamics.
Research interests: Hamiltonian and dissipative chaos, symplectic integration, verification of scientific software.
physverify checks that a simulation solves the equations it claims, at the order of accuracy it claims, not just that it runs. It runs your solver at several resolutions, measures the error, and gives PASS, FAIL or INCONCLUSIVE with a reason. Convergence-order, conservation and manufactured-solution checks for ODE and 1D PDE solvers; a static scan for Runge-Kutta tables, grid spacings and physical constants. Needs only NumPy.
Limits: works best for ODEs; PDEs in 1D so far. A PASS means these checks found nothing wrong, not that the simulation is proven correct.
Custom Velocity-Verlet engine; Sun-Earth-Jupiter validated over 12 years; ejection threshold δ ≈ 0.5.
Adaptive RK4, bifurcation sweep over ρ, twin trajectories at δ ~ 10⁻⁸.
Euler-Lagrange in (θ₁, θ₂); where invariant tori break into chaotic seas.
MSc dissertation (2023, Fortran 90) rebuilt as vectorised Python; matches the legacy Fortran output.
Vacuum to linear and quadratic drag; Euler to RK4; fixed vs adaptive steps.
Every push runs physverify in GitHub Actions. Latest results on main:
| Project | What CI checks | Result |
|---|---|---|
| 3-Body | Velocity-Verlet order; momentum, angular momentum, time reversal; README energy claim | order 2.00 · ~10⁻¹⁵ · |ΔE/E₀| 6.4×10⁻⁹ 9/9 PASS |
| Lorenz | Equations at RK4 order; phase-space contraction −(σ+1+β); Jacobian; Lyapunov sum = trace | order 3.97–4.28 8/8 PASS |
| Double Pendulum | Equations at RK4 order; README energy-drift benchmark | order 3.78–4.73 · drift 7.8×10⁻¹² 7/7 PASS |
| Projectile | Euler and RK4 vs exact solutions (vacuum, linear drag) and quadratic drag | Euler 1.00 · RK4 3.97–4.04 9/9 PASS |
| LCR Circuit | RK4 vs exact solution at R = 10, 40, 100 Ω; README SciPy claim | order 4.00–4.25 · 9.9×10⁻⁸ 7/7 PASS |
For Lorenz and the double pendulum, CI checks the equations of motion with physverify's own RK4; their adaptive solvers are not order-checked (the double pendulum's is checked through its energy benchmark).
Adaptive NEB exam prep for low-end Android and patchy networks, with teacher analytics and practice duels.
Offline-first school timetable with a tiered teacher-substitution engine.
git-for-schools (offline-first Git, Grades 8–12) and data-science-nepal (bilingual, Nepali datasets). Not yet piloted in a classroom.
llm-free-cascade (free-tier LLM fallback), pdf-render-pool (Puppeteer HTML→PDF pool), mongo-job-lock (run a clustered cron job once).