Public API at window.unroll (schema, help, coverage test; ui and bench groups), embed mode with postMessage bridge and oEmbed, version 0.9.4 in About and API, ink_9um (9 µm) label and credit, Ink Bench hardening from the audit, hashchange without reload, capped test hooks
Relabel the second ink layer as ink_9um (9 µm): Chase Hendrick ran the public scrollprize/ink_9um model, which the Vesuvius Challenge trained; HUD readout INK_9UM; cache-busting version on JS and CSS
Destroy: floor follows the scroll as drawn (rolled or unrolled) with a soft visible floor glow; smoke, ash, sparks and burnt flakes rise from each ember's current spot on the deformed sheet; new Crumble (K, unrollView.crumble()) breaks the scroll up from its edges into a heap of dust, Reset restores it; help and README
Destroy: fibrous alpha-tested damage edges, Burn and Water tools with cursors, Roll up, size-dependent debris that settles on the floor, wall-clock burn timing; rename Tear apart to Destroy; ink model text reads its coverage from the manifest
- scrolls/index.json registry and per-scroll manifests (windings with ranges, ink layers with sources and resolutions, credits, data terms); PHerc. 139 migrated with no visible change
- scroll picker (hidden with one scroll), per-scroll and per-winding lazy loading
- lib/manifest.js validator shared by the page and tools/validate_scroll.mjs; docs/ADDING_A_SCROLL.md; tools/precompute_template.py
- Open your own: files, folders, zips or a URL, read in the browser only (nothing uploaded), OBJ/PLY with UVs, PNG/JPG/TIFF layers, size limits, clear errors, kept in IndexedDB and labelled local; downloadable synthetic example package
- atlases as WebP with JPG fallback (about 2.1 MB smaller)
- rename layers: Published ink (2.4 µm) and Our ink model (9 µm)
Polish: keyboard shortcuts with a ? help overlay, V to reset the camera, lazy-load the ZeroGPU textures, preload data and three.js in parallel, fix phone layout overlap and desktop title overlap, vignette and papyrus sheen, full OG and Twitter tags with a new rendered preview