Looking for this year's edition? Please visit WASM I/0 2024

Session

Look who's talking!

Detail illustration WASM I/O Detail illustration WASM I/O
Sean Isom
blend-mode

Wasm Blocks: Procedural Modeling with Micro Webassemblies

Sean Isom - Adobe

This talk is about a crazy experiment where a DOM/DAG of nodes in a graphics application have been implemented as small Wasm modules, leading to an executable procedural model that can be streamed for an interactive experience. See it in action in interactive graphics editing and maps applications!

Webassembly has become a robust tool for building client-side applications, and has recently made large advances on the backend as a tool for running distributed workloads. What about the data that lives in those applications though? In graphics editing applications, typically a DOM-like structure exists in-memory, and more interactive applications similarly store a Scenegraph/DAG of nodes. Recent advances in the graphics field involve procedural modeling techniques, essentially replacing the output of complex graphics operations with the steps to recreate the output. There are many proprietary mechanisms for doing this, but Wasm’s secure-by-default model is very compelling for the execution of arbitrary code from distributed sources.

This leads to an experiment where procedural graphics nodes are compiled to Wasm (both cached, built-in functions, and user-authored nodes). They are then executed at runtime to see if we can run a massively parallel DAG in near-realtime. Applications are then shown, both of a map that can stream in procedural tiles, as well as in an interactive graphics editing application for sharing nondestructive edits. Hear some of the lessons learned from this demo, including how this technology could scale, and how it could benefit from initiatives in the Wasm ecosystem like the Component Model in the future.

View all sessions