RelGeo is a DSL and toolchain for relation-first declarative vector drawings.
To understand the project quickly, use this short reading order:
- understand the product position and general philosophy
- read Current Capabilities to see what is already real today
- choose the usage surface closest to your need: CLI, Playground, or Desktop App
- read Markdown Surfaces to understand the difference between
rgandrelgeo - read Language Status to understand the current
idvsenboundary - open the
language-specwhen you want the active normative contract
Try the Main Workflow
To try the primary local authoring loop, run this from the integration workspace root:
pnpm install
pnpm --dir ../playground dev
Then use this sequence in the Playground:
- choose
01. Fundamentals - edit the source in the editor
- wait for
READYafter the source resolves - read the result in the live preview
- open
InspectororLayersto inspect geometry and dependencies
The Playground is a local browser IDE and is also available as a hosted public surface at relgeo.github.io/playground. Use the local workspace for development and the hosted surface for a quick try without installing the repository.
If you only need a terminal workflow, use:
pnpm --dir ../cli exec tsx src/index.ts check ../playground/src/assets/examples/basics/01_fundamentals.yaml
pnpm --dir ../cli exec tsx src/index.ts compile ../playground/src/assets/examples/basics/01_fundamentals.yaml -f svg
For the Markdown path, continue to Markdown Surfaces. The rg fence displays source, while the relgeo fence displays the rendered preview.
The rg block is meant for RelGeo source that should remain readable:
version: 0.5
metaPresets:
:
fill: "#e2e8f0"
stroke: "#64748b"
objects:
panel:
type: rect
size: [80, 40]
place:
topLeft: [0, 0]
metaPreset: plate
holes:
- circle:
center: panel.center
radius: 10
The relgeo block is meant for preview or embed: