ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Real-time interactive tokamak plasma physics simulator. Explore ITER, JET, DIII-D, and CENTAUR with 0D transport, equilibrium reconstruction, and 3D visualization.
EducationTypeScript · RustGitHub @d-burgOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
fusionsimulator.io – a real-time fusion control room simulator
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A real-time tokamak plasma simulator that runs entirely in your browser.
fusionsimulator.io combines a Rust physics engine (compiled to WebAssembly) with a
React/TypeScript frontend to provide an interactive control room experience
for exploring tokamak plasma behavior.Read the full README ↗A real-time tokamak plasma simulator that runs entirely in your browser. fusionsimulator.io combines a Rust physics engine (compiled to WebAssembly) with a React/TypeScript frontend to provide an interactive control room experience for exploring tokamak plasma behavior.
The simulator implements peer-reviewed physics models from the fusion literature:
| Model | Reference |
|---|---|
| MHD equilibrium | Cerfon-Freidberg analytic Grad-Shafranov (PoP 2010) |
| Energy confinement | IPB98(y,2) scaling (ITER Physics Basis, NF 1999) |
| L-H transition | Martin power threshold scaling (JPCS 2008) |
| Beta limit | Troyon normalized beta limit (PPCF 1984) |
| Density limit | Greenwald limit (PPCF 2002) |
| Fusion reactivity | Bosch-Hale parameterization (NF 1992) |
| Divertor heat flux | Eich SOL width scaling (NF 2013) |
| Radial profiles | OMFIT tanh-pedestal parameterization |
For complete citations and equations, see the in-app Bibliography page.
Disclaimer: fusionsimulator.io uses 0D scaling laws and analytic approximations. It is an educational and visualization tool, not a predictive transport code.
# Clone the repository
git clone <repo-url>
cd fusion-sim
# Full build (WASM engine + frontend)
./build.sh
# Serve the built app
cd web && npx vite preview
# Build WASM module
wasm-pack build crates/tok-sym-core \
--target web \
--out-dir ../../web/src/wasm \
--no-default-features \
--features wasm
# Start frontend dev server (with hot reload)
cd web
npm install
npm run dev
The dev server runs at http://localhost:5173 by default.
# Rust physics engine tests (full-pulse tests are slow in debug; use --release)
cargo test --release -p tok-sym-core
# Envelope sweep: every planner control at five levels on every device and
# preset, run through the engine and checked for plausibility (~5 min on 6
# cores). Regenerate the program matrix whenever a preset, a slider range or
# the program builder changes; the matrix check fails when it is stale.
cargo test --release -p tok-sym-core --test envelope -- --nocapture
cd web && npm run matrix:emit && npm run matrix:check
# TypeScript type checking
cd web && npx tsc -b
# Lint
cd web && npm run lint
cargo doc -p tok-sym-core --no-deps --open
This opens the auto-generated API documentation for the physics engine in your browser. All public types and functions are documented with rustdoc comments.
fusion-sim/
├── crates/tok-sym-core/ Rust physics engine (~5,500 lines)
│ └── src/
│ ├── equilibrium.rs Cerfon-Freidberg Grad-Shafranov solver
│ ├── transport.rs 0D power balance (IPB98, L-H, ELMs)
│ ├── profiles.rs Tanh-pedestal radial profiles
│ ├── devices.rs DIII-D, JET, ITER, CENTAUR definitions
│ ├── disruption.rs Disruption risk & dynamics
│ ├── diagnostics.rs Synthetic diagnostic signals
│ ├── contour.rs Marching squares contour extraction
│ ├── simulation.rs Top-level orchestrator
│ └── wasm_api.rs WASM-bindgen API surface
│
├── web/ React frontend (~11,600 lines)
│ └── src/
│ ├── lib/ Shared libraries (WASM init, hooks, physics)
│ ├── components/ UI components (canvas, panels, 3D view)
│ ├── pages/ Route pages (DeviceSelect, ControlRoom, etc.)
│ └── wasm/ Generated WASM output
│
├── build.sh Full build script
└── ARCHITECTURE.md Comprehensive architecture guide
For detailed documentation of every module, function, and component, see ARCHITECTURE.md.
┌─────────────────────────────────────────────────┐
│ Browser │
│ │
│ ┌──────────────┐ ┌────────────────────────┐ │
│ │ Rust/WASM │───▶│ React/TypeScript │ │
│ │ Physics │JSON│ │ │
│ │ Engine │◀───│ useSimulation hook │ │
│ │ │ │ │ │ │
│ │ • Equilibrium│ │ ├─ EquilibriumCanvas │ │
│ │ • Transport │ │ ├─ StatusPanel │ │
│ │ • Profiles │ │ ├─ UnifiedTracePanel │ │
│ │ • Disruption │ │ ├─ PortView (3D) │ │
│ │ • Contours │ │ └─ PulsePlanner │ │
│ └──────────────┘ └────────────────────────┘ │
└─────────────────────────────────────────────────┘
All physics runs in the WASM module. The TypeScript layer handles rendering, user interaction, and some display-only derived computations (fusion Q, divertor heat flux via Bosch-Hale and Eich scaling).
GNU General Public License v3.0 (GPL-3.0-only). See LICENSE for details.
Developed by Daniel Burgess and the Columbia Fusion Research Center.
Copyright 2026 Daniel Burgess. Released under the GPL-3.0 license.