Donner SVG Editor & Engine
SVG-native editor and embeddable SVG2 + CSS3 engine in C++20, with GPU (WebGPU) and compact CPU renderers, built for correctness, security, and performance.
Loading...
Searching...
No Matches
Design: Donner Editor

Status: Implemented — the in-tree editor landed as //donner/editor (M1–M8, #529).

Summary

This design brought jwmcglynn/donner-editor in-tree as //donner/editor — a supervised rewrite rather than a code drop — establishing the editor as Donner's interactive-mutation proving ground (mutate the DOM at 60 fps while a user drags handles). It set the load-bearing architecture the editor still uses: the single-funnel mutation seam (EditorApp::applyMutationAsyncSVGDocument + CommandQueue), a background render worker, and an ImGui + GLFW shell.

The editor has since grown well beyond this doc's original M1–M6 scope. Its current architecture — frame loop, mutation seam, async rendering and threading, compositor presentation, panes/tools, persistence, and the trust boundary — is documented in Editor Architecture. Related developer docs: Structured Source Editing, Deterministic Replay Testing, Editor Source Focus, and Editor Visual Debugging.

Ongoing and adjacent editor work is tracked in its own design docs — composited rendering (0025), design-tool responsiveness (0033-2), fluid canvas rendering (0044-2), Geode chrome migration (0045), group layers (0046), and the v0.8 showcase (0047).

The original full design (goals, the layered architecture, the AsyncSVGDocument command-queue decision note, the mutation-seam rationale, and the per-milestone plan) is recoverable from git history.