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

JSBSim-WASM

  • 3 Devlogs
  • 6 Total hours

Super Sick Rocket Boom Boom Calculator! (Tooling and TypeScript SDK for JSBSim compiled to WebAssembly)

Ship #1

I made JSBSim WASM, a project that brings a real flight simulation engine to the browser! It lets people run JSBSim simulations through a TypeScript/JavaScript SDK, with a demo where you can launch a rocket, watch live telemetry, pause and resume the sim, and see how the vehicle behaves over time.

The most challenging part was getting a native simulation engine to work smoothly in a web app. There were a lot of small issues with loading files, building WebAssembly, connecting everything to JavaScript, and making sure the demo stayed responsive while the simulation was running.

I’m proud that it’s more than a basic proof of concept. It has a working demo, clean developer tools, automated builds, and a structure that makes it easier for other people to build their own flight or rocket simulations with it!

To test it, the easiest way is to open the live demo linked in the repo and try the rocket simulation. You can launch it, pause it, reload it, and watch the altitude, velocity, and acceleration update in real time. For local testing, clone the repo and follow the setup steps in the README.

  • 3 devlogs
  • 6h
  • 14.22x multiplier
  • 90 Stardust
Try project → See source code →
Open comments for this post

4h 19m 14s logged

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.

0
0
8
Open comments for this post

34m 16s logged

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.

0
0
7
Open comments for this post

1h 27m logged

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.

0
0
9

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…