Rendering and creative tools
WMMD
A layered Rust engine for MMD: PMX/VMD playback, three physics backends, and a wgpu toon renderer built to be embedded in editors, AR hosts, VJ tools, and offline renderers.
WMMD is a hostable MikuMikuDance runtime and rendering backend I am writing in Rust.
The goal is a modern technical foundation for MMD creation that still respects the workflows and the creative freedom that made the community possible in the first place. Those two things are easy to put in tension, and most of the design work is keeping them from fighting.
The same codebase drives a desktop editor today. It is built to be embedded elsewhere too: VJ tools, AR and VR runtimes, game engines, mocap pipelines, offline renderers.
What Works Today
- PMX/PMD model loading and VMD animation playback, with texture analysis and material inference.
- Full MMD physics - spring bones, rigid bodies, and joints - on a Bullet backend by default, with a pure-Rust fallback, a clean-room PGS solver, and an experimental XPBD cloth engine.
- An IK solver with VMD IK on/off track support.
- A wgpu toon renderer: forward pass, WBOIT transparency, SSAO and optional ray-traced AO, IBL, ESM soft shadows, and bloom. Plus an EEVEE-like second backend carrying depth of field and motion blur.
- Headless offscreen rendering with golden-image snapshot tests, and a pluggable host layer.
Where It Actually Stands
This is under active research and development. It is not publicly released, and I don’t want this page implying otherwise.
What is here are architecture notes and capability I have verified. Not a product announcement.
Technical Notes
The engineering is written up in the Lab:
- WMMD architecture: a hostable MMD runtime - the crate layering and the dependency invariants that make embedding possible.
- Three physics backends behind one interface - Bullet as the MMD-faithful reference, and why a reference matters more than a fast solver.
- A toon pipeline verified by golden images - the GPU passes, the two-pass host loop, and snapshot-based correctness.