JSBSim-WASM
- 3 Devlogs
- 6 Total hours
Super Sick Rocket Boom Boom Calculator! (Tooling and TypeScript SDK for JSBSim compiled to WebAssembly)
Super Sick Rocket Boom Boom Calculator! (Tooling and TypeScript SDK for JSBSim compiled to WebAssembly)
Devlog #3 – JSBSim WASM
Built out the full Mission Control and Designer workflow. Replaced the old editorial shell with two routes: a dark Mission Control cockpit and a lighter Designer workspace, with fixed per-surface themes instead of the old shared theme setup. On the simulation side, I added typed telemetry channels for IMU, gyro, GPS, barometer, and kinematics, then wired them into metric tiles, sim controls, a live event stream, telemetry charts, a 3D rocket HUD, GPS trajectory, timeline replay, and JSON/CSV export.
Designer also got a major upgrade. I built the schema-driven editor across all seven tabs, added XML import/download/validation, expanded the Aerodynamics tab, and created a nested JSBSim function editor for property/value/table/math nodes. The editor can now send the current model straight into Mission Control, so changes can be tested without leaving the app.
I also cleaned up a few rough edges: filtered noisy JSBSim boot logs out of the event feed, added proper lifecycle events, and fixed long event messages breaking the layout. The feature work is code-complete. Earlier checks passed, but the final full verification got blocked by a local macOS fileproviderd issue that slowed TypeScript, Vitest, Vite, and git to a crawl. Next step is a fresh typecheck/test/browser pass once that clears.
Devlog #2 – JSBSim WASM
Closed out the remaining quality issues on the JSBSim console. Removed the dead react-leaflet dependency (it forced –legacy-peer-deps by demanding React 19), fixed an accessibility regression by giving event severity distinct shapes plus aria-labels instead of color alone, and added a prefers-reduced-motion fallback. On the tooling side, I regenerated a clean lockfile so npm ci is reproducible, added a dedicated CI workflow that runs typechecks and the 73 unit tests on every push/PR (separate from the deploy), and moved the Pages deploy to npm ci on Node 22 with caching. Finally, I self-hosted Monaco — bundling the editor and its web worker through Vite — so the model editor now works offline with zero CDN dependency, kept in the lazy chunk so initial load is unaffected. Everything is verified green: CI passes, the deploy succeeds, and the live site serves with no external CDN references. The only items left are external — adding the repo to macOS Spotlight Privacy (the root cause of the git SIGBUS crashes) and a deferred Git LFS migration for the WASM binary.
Devlog #1 – JSBSim WASM
I compiled JSBSim, an industrial flight dynamics library, into Web Assembly. So far, I’ve forked a boiler plate repository and redesigned the console UI into an editorial “flight log” style. I’m using Fraunces serif, mono labels, hairline rules, a paper-sheet shell, and a blue color scheme. I’ve also wired the in-browser model editor (file tree + Monaco) into the dashboard behind a tab switcher, and got the whole thing deployed to GitHub Pages at https://guptaronav.github.io/jsbsim-wasm/ via a lean Actions workflow that builds with the committed WASM instead of rebuilding Emscripten.