A small local editor for composing sparse, editorial SVG figures.
Figures are represented as structured FigureSpecs: elements, groups,
containment, and topology are kept separate from their rendered geometry.
The same figure can be composed independently for landscape and portrait
layouts while preserving its semantic structure.
Describe the idea rather than the drawing:
The agent translates the prompt into a strict JSON FigureSpec; it never
writes SVG or application code. The app validates the spec and passes it
to the deterministic renderer.
AI interprets the idea. The application owns the visual system.
A figure separates what it represents from how it is arranged. Topology describes relationships between elements; geometry describes their positions and connection paths.
Landscape and portrait compositions preserve the same elements and relationships while arranging their geometry independently.
prompt → AI → FigureSpec
├─→ landscape layout → SVG
└─→ portrait layout → SVG
- Start from the blank field and add or edit shapes, connections, arrows, and organic boundaries manually.
- Optionally describe a new figure in the AI authoring panel, or describe a refinement once a figure exists.
- The local adapter asks Pi first, then Codex if Pi is unavailable.
- The app validates the resulting
FigureSpec, including its topology. Invalid or failed responses leave the current figure unchanged. - Refine either composition manually or use
Undo AI changefor one level of AI-only undo. - Save the figure to the browser's local library, save its editable JSON spec, or export the final SVGs.
Copyright © 2026 Sergi Meseguer.
Licensed under the GNU General Public License v3.0.



