Technology Lab

RunnableEngineering Cases

All eight cases below are written in Rust and compiled to WebAssembly — zero runtime dependencies, no framework, no build toolchain in the browser. Game rules and numerical computation live entirely on the Rust side; JavaScript only loads the modules, paints the canvas and forwards input, so every case is genuinely playable right here on the page.

Rust → WebAssembly · Zero Dependency
🎮

Rust Lab · Games

Game logic written entirely in Rust and compiled to WebAssembly. Includes the SRS rotation system, lock delay, and exported ground-truth snake heading — playable by keyboard, on-screen pad or swipe.

贪吃蛇 / Snake俄罗斯方块 / TetrisSRS 旋转零依赖 / Zero dep
8 cases · 2 sections
Loading WebAssembly…
caseSnake tagGrid logic · Rust + WASM
Runtime metrics
Best score0
🔬

Scientific Visualization Lab

Four computational geometry cases plus two physics simulations, each with a parameter panel and live runtime metrics. Drag a slider to change point counts, angles and time, and watch the algorithm behave.

Delaunay凸包 / Hull多边形布尔 / BooleanVoronoi双摆 / Pendulum驻波 / Standing waves
8 cases · 2 sections
Loading WebAssembly…
caseDelaunay Triangulation tagBowyer–Watson
Runtime metrics
Best score0
Why two sections

Two sections, two classes of risk

Games validate interaction and state machines — the most underestimated part of a real product. Scientific visualization and physics simulation validate algorithms and numerical accuracy: when the maths or physics is wrong nothing crashes, it just quietly returns wrong answers, which is exactly why assertions have to back it up. Together they cover the two most common classes of engineering risk in delivery.

Live

Engineering highlights

Zero-dependency delivery

Hand-written extern C exports with no wasm-bindgen: the artifact is the bare wasm, with no generated JS glue step.

Command buffer protocol

Rust writes drawing commands into linear memory; the front end reads them sequentially with getUint32 — zero copy, no string parsing.

Tests as guardrails

Geometry asserts areas, simulation asserts energy drift: math and physics errors surface in unit tests rather than on a customer site.

Single-source bilingual

Page copy and case metadata are injected by the build script, and both language versions share one renderer, so the two can never drift apart.