svg-precision
Generate structurally correct SVGs from a strict JSON spec (scene graph), then validate and optionally render a PNG preview.
Fast path
Turn the user request into a Spec JSON (use templates in references/spec.md).
Build the SVG:
python scripts/svg_cli.py build spec.json out.svg
Validate:
python scripts/svg_cli.py validate out.svg
(Optional) Render a PNG preview (requires CairoSVG):
python scripts/svg_cli.py render out.svg out.png --scale 2
Spec design rules (for accuracy)
Always set canvas.viewBox and explicit canvas.width/canvas.height.
Prefer absolute coordinates; use transforms only when they reduce complexity.
Keep numbers sane: no NaN/inf; round to 3-4 decimals.
Put reusable items in defs (markers, gradients, clipPaths) and reference by id.
For predictable results across viewers, avoid exotic filters unless required.
Text varies by fonts/viewers. If you need pixel-identical results, treat text as a risk and prefer shapes.
Using the bundled scripts
CLI
python scripts/svg_cli.py build
When the request is vague Identify the kind of SVG: icon / diagram / chart / UI / technical. Pick a template from references/spec.md and fill in concrete numbers. If dimensions are unknown, choose defaults that match the domain: icons: 24x24 or 32x32 UI mockups: 1440x900 or 390x844 (mobile) charts: 800x450 diagrams: 1200x800 technical drawings: specify units (mm/in) and scale References references/spec.md - schema + ready-to-copy templates per SVG type references/recipes.md - layout and styling patterns that render consistently