isotopo render <input> <out> produces a two-tier output tree:
- Topology level — the whole scene as one SVG + an editable HTML page
- Node level — each individual element as a standalone SVG + an embed-ready HTML page + a self-contained YAML fragment
Directory layout
1 + (3 × N) + 2 files.
Topology-level files
topology.svg
The whole scene as a single self-contained SVG. Drop it into any
markdown / Notion / Confluence / Figma — they all accept SVG.
The SVG carries:
- viewBox sized to fit the scene + a margin
- defs block with any iso patterns (ground grid, etc.)
- one
<g data-layer="canvas-bg">for the background - one
<g data-layer="connectors">for arrows - one
<g data-part="N">per iso element - one
<g data-layer="screen-labels">for screen-oriented labels - one
<g data-layer="annotations">for callouts
topology.html
A self-contained HTML page that:
- shows
topology.svgin a stage - shows the embed snippet (
<img src="./topology.svg"/>) with a copy button - shows the original DSL source in an editable
<textarea>with a copy button and a “download” button (so you can edit, save, re-runisotopo render)
topology.<yaml|d2|json>
A byte-exact copy of the input file, renamed to topology for
discoverability. Lets you re-render later without keeping the
original around.
Node-level files
For every CompositePart with anid, three files are emitted under
nodes/. Useful when you want an icon library: each iso element
becomes its own embeddable sticker.
nodes/<id>.svg
The single element as a standalone iso SVG — no scene context, no
neighbors. Perfect for inline embedding in docs:
nodes/<id>.html
Same shape as topology.html but for one element:
- shows just that element’s SVG
- embed snippet
<img src="./<id>.svg"/> - the per-element YAML fragment in an editable textarea
nodes/<id>.yaml
A self-contained iso-topology Document with just that one element
plus the original theme. Re-renderable:
nodes/_index.html
A gallery linking to every per-element page. Open this to browse all
the elements in the scene at once.
How to embed in different surfaces
Markdown (GitHub, Notion, Obsidian)
HTML
Slides
Most slide tools (Keynote, PowerPoint, Google Slides, Figma) accept SVG drag-and-drop. Dragtopology.svg from a Finder/Explorer window.
Docs sites (MkDocs, Docusaurus, etc.)
Puttopology.svg next to your .md and reference it relatively.
SVG renders at native resolution at any zoom.
LLM context
Some LLMs accept SVG directly as text:rsvg-convert:
Inspecting outputs from the CLI
When the output looks wrong
A few common gotchas:Output size
For a moderate scene (20–30 elements) typical sizes are:
The HTML pages have no external dependencies — they work offline.