input: |d2 hello -> world | input -> compiler.parse compiler: { parse -> AST AST: Abstract Syntax Tree { shape: oval fill: honeydew } AST -> compile } compiler.compile -> graph graph: Graph\n(shapes & connections) { shape: oval fill: honeydew } graph -> Set Dimensions Set Dimensions -> Use ruler to measure all texts -> measured graph Set Dimensions -> Use given, premeasured dimensions -> measured graph measured graph: { shape: oval fill: honeydew } measured graph -> layout engine -> positioned graph positioned graph: { shape: oval fill: honeydew } positioned graph -> exporter -> diagram diagram: finalized diagram (styled) { shape: oval fill: honeydew } diagram -> render SVG render SVG -> use sketch post processor: optional use sketch post processor -> SVG bytes SVG bytes: { shape: oval fill: honeydew } SVG bytes -> screenshot for PNG: optional