1 pointby hactually2 hours ago1 comment
  • hactually2 hours 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.