verve.viz

Guide: Visualization · live: example.

Graphs

ExportNotes
Graph{ nodes: []GraphNode, edges: []GraphEdge, layout }
GraphNode{ id, label, … } · GraphEdge { from, to }
Layout.force .tree .radial .dag
GraphOptswidth/height, node/edge/label colors, margin, edge_routing (.straight/.curved/.orthogonal), dag_crossing_iterations
renderGraph(ctx, g, opts)static SSR SVG
renderGraphInteractive(ctx, g, opts)interaction-annotated SVG (pair with VizGraphInteractive island)
graphPositions(ctx, g, opts)computed positions for props hand-off
edgePathD(alloc, points, routing, opts)edge path d string (plugs into anim motionPath)

Charts

barChart stackedBarChart groupedBarChart lineChart areaChart scatterChart pieChart (donut via inner_ratio) candlestickChart boxPlotChart heatmapChart radarChart violinChart sankeyChart treemapChart chordChart — all (ctx, data, ChartOpts) *Node.

Data types: Datum{ label, value }, Point{ x, y }, Candle{ label, open, high, low, close }, BoxStats{ label, min, q1, median, q3, max }, StackSeries{ name, values, color }, ViolinSeries{ label, samples }, SankeyNode/SankeyLink, TreemapItem{ label, value, parent }.

Scales & scene

LinearScale BandScale LogScale TimeScale Axis Vec2 Rect Scene Shape Style — public for custom SVG scenes.

Live deltas

ExportSignature
diffGraphs(alloc, old_nodes, old_edges, new_nodes, new_edges) ![]DeltaOp
writeDeltaJson(buf, seq, ops) ![]const u8{"seq":N,"ops":[…]}
applyDeltaOpsapply ops to a mutable graph

Clients apply a delta only when seq is exactly one past their last snapshot; gaps trigger a pull resync (vizGraph snapshot action pattern).