● WASM Playground — skeleton
Drop a .docx. The engine runs here.
Same Rust core, compiled to wasm32-unknown-unknown, running in your
browser. No upload, no server: the bytes never leave the tab.
Engine loading
Drop your file here
The interactive shell is being wired to the engine build. This page is the skeleton: the drop zone and its contract are real, the render is not yet.
The zone above is a placeholder, not a broken control: it accepts no files yet and never claims to have rendered one.
What the playground will do
| Input | A local .docx, read in-tab with the File API. Nothing is uploaded. |
|---|---|
| Engine | The shells/web wasm build — a thin adapter over the same core the CLI uses, streamed on first load with progress reported. |
| Output | Line-break points and page splits from the real layout pass: shaped advances against real font metrics, Knuth-Plass breaks, pagination per sectPr geometry. |
| Editing | An invisible caret at the engine's caret rectangle, so text entered through an IME lands where the engine thinks the cursor is and reflows incrementally. |
| Budget | First wasm payload stays under its gzip budget in CI; the collaboration layer is a separate deferred chunk. |
Status
Not interactive yet. The engine work behind it — dual-target build, bundle split, size gate, caret contract — has landed; wiring the drop zone to a live render is a separate task. Until then, mail [email protected] for a build to try.