Browser-based 3D aerial refueling boom simulator: evaluate a passive visible/thermal sensor suite, drive an ECEF-commanded autonomous boom, and replay runs. Built with Next.js, React Three Fiber, and Three.js.
Repository: github.com/aarnavt7/boom-refueling-sim
- Full 3D scene — Tanker, receiver, articulated boom, and lighting matched between the landing page and
/sim. - Landing hero — Cinematic scripted fly-by (no orbit controls): camera sweeps past the formation on load and extends as you scroll.
- Passive multispectral sensing — Tail acquisition + boom terminal cameras with visible/thermal handoff and fused geometry tracking.
- Mission profiles — Day/night, land/water, and EMCON operating envelopes wired into the same sim loop.
- Autopilot + safety —
moveECEF(...)command generation, boom plant limits, hold/abort/breakaway logic, and live metrics in the HUD. - Replay — Record and scrub runs from the sim store.
- Local-first saves — Preferences and run summaries in
localStorage, replay archives in IndexedDB.
- Bun 1.3+ (or use
npm/pnpmwith equivalent commands) - Node 18+ for Next.js
bun install
bun run devOpen http://localhost:3000 for the landing page. Open http://localhost:3000/sim for the interactive simulator (orbit camera, full HUD).
| Command | Description |
|---|---|
bun run dev |
Development server |
bun run build |
Production build |
bun run start |
Start production server |
bun run lint |
ESLint |
bun run typecheck |
TypeScript (tsc --noEmit) |
bun run test |
Tests |
Optional for production metadata:
NEXT_PUBLIC_SITE_URL— Canonical site URL (Vercel setsVERCEL_URLautomatically).
The app is a standard Next.js deployment:
- Push this repository to GitHub.
- Import the repo in Vercel (or Netlify, etc.).
- Set Install command:
bun install(ornpm install). - Set Build command:
bun run buildand Output: Next.js default.
MIT — see LICENSE.