Research entry
Ising Model Simulation in Rust + WebAssembly
Active ยท March 2026
Active computational physics work around a Rust/WASM Ising model simulator with interactive 3D visualisation, temperature sweeps, and critical-point analysis.
Overview
ising-rs is an active computational physics project focused on the Ising model, implemented in Rust and compiled to WebAssembly for interactive use in the browser.
The current version combines a 3D lattice visualiser with Monte Carlo simulation so the behaviour of spin systems can be explored in real time rather than only through offline scripts.
Live demo: faulknco.github.io/ising-rs
What This Research Covers
- Metropolis Monte Carlo updates for equilibrium sampling
- Interactive control of temperature, coupling
J, external fieldh, and lattice size - Temperature sweeps that estimate energy, magnetisation, heat capacity, and susceptibility
- Browser-based visualisation built around Rust, WebAssembly, a Web Worker, and Three.js
Nice Findings
- The repo reports a 3D cubic Curie temperature of about
4.40 J/k_B, close to the theoretical4.51 J/k_B. - It also reports 2D square and triangular lattice estimates close to known reference values, which is a good sign that the implementation is recovering the expected phase-transition behaviour.
- The browser architecture pushes the simulation into a Web Worker, so the physics loop runs off the main thread and the UI stays responsive during live updates and sweeps.
- The Rust source also includes optional Wolff cluster updates and critical-exponent fitting, which makes the project stronger as research tooling than a visual demo alone.
Why It Matters
This project sits in a useful middle ground between theory and software engineering: the model is physically meaningful, the numerical outputs can be checked against known results, and the interface makes those transitions visible enough to support explanation and experimentation.
Sources
- Repository: github.com/faulknco/ising-rs
- README: Project overview and reported results
- WASM interface:
src/wasm.rs - Sweep and fitting logic:
src/sweep.rs,src/fitting.rs - Browser worker:
docs/worker.js
Assumptions Used In This Portfolio Entry
- I am treating this as active research because you explicitly said you are actively working on it on March 6, 2026.
- Where the README states reported physics results, I present those as repo-reported outcomes rather than independently reproduced measurements.
- Where I mention Wolff updates, off-main-thread execution, and exponent fitting, those statements come from inspecting the current source files linked above.