verve.viz
Guide: Visualization · live: example.
Graphs
| Export | Notes |
|---|---|
Graph | { nodes: []GraphNode, edges: []GraphEdge, layout } |
GraphNode | { id, label, … } · GraphEdge { from, to } |
Layout | .force .tree .radial .dag |
GraphOpts | width/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
| Export | Signature |
|---|---|
diffGraphs | (alloc, old_nodes, old_edges, new_nodes, new_edges) ![]DeltaOp |
writeDeltaJson | (buf, seq, ops) ![]const u8 — {"seq":N,"ops":[…]} |
applyDeltaOps | apply 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).