PMX / VMD
Working
Model loading, animation playback, texture and material analysisMMD engine · Rust and wgpu
A hostable MMD runtime and rendering backend in Rust — designed to be embedded in editors, AR and VR hosts, VJ tools, and offline renderers.
Working
Model loading, animation playback, texture and material analysisWorking
Spring bones, rigid bodies, joints — Bullet by default, three alternate backendsWorking
Toon forward pass, WBOIT, SSAO, IBL, ESM shadows, bloomWorking
IK solver with VMD IK on/off tracks, morph pipelineIn active development
Master clock and timecode lock working; audio-as-clock outstandingExperimental
Depth of field with autofocus and tile-based motion blur in the EEVEE-like backendPlanned
Multi-view camera contract for VR and AR hostsPlanned
OSC to command bridge, video output, and mocap input for live performanceThe same codebase drives a desktop editor and is designed to be hosted elsewhere. That constraint shapes everything: no layer assumes it owns the window, the GPU, or the clock. It is research in progress, not a claimed public release.
The workspace is layered so dependencies point one way, and the boundaries are written down as invariants rather than conventions. Breaking one is treated as a bug.
Rendering is checked headlessly against approved reference frames, physics has its own verifier, and a fix reproduced with one model must be expressed generally — no per-model special cases in shipped code.
Development reports
Why the engine is split into layered Rust crates with hard dependency invariants, so the same code can drive an editor, an AR host, or an offline renderer.
↗Forward toon shading with WBOIT transparency, ESM shadows, SSAO and RT AO, IBL and bloom — and the headless snapshot infrastructure that keeps it honest.
↗Bullet as the MMD-faithful reference, a pure-Rust fallback, a clean-room PGS solver, and an XPBD cloth engine — swappable at compile time.
↗