|
|
|
|
|
by hactually
134 days ago
|
|
The architecture was designed for determinism and performance: - Go WASM engineowns the scene graph, evaluates timelines, compiles draw commands - Canvas2D frontend executes the command buffer (GPU-accelerated by the browser) - Go backend handles collaboration, persistence, and video encoding via ffmpeg - Operation-based document model - every mutation is an operation that supports undo/redo and real-time sync We chose a command buffer architecture (engine emits draw commands, browser rasterizes) over Figma-style pixel rendering in WASM. Canvas2D is already GPU-accelerated, and Go's WASM ecosystem doesn't have a battle-tested software rasterizer. This gives us hardware rendering for free while keeping the engine deterministic. |
|