Blog

The Cleanup Episode

A deep code review found 39 issues, a 274KB font was being copied every frame, circles were made of 360 line segments, and five unwrap() calls were lurking in the render pipeline. We fixed all of it.

Shapes, Docs, and Polish

A big session: 6 new shape primitives, inline documentation for every node and 203 pins, smarter tooltips, z-ordered nodes, search-at-cursor, a Filter node, and an adversarial review that caught 14 issues before users could.

Filter: The Missing Spread Node

A new Filter node lets you keep only the elements you want from a spread using a boolean mask. Wire a comparison node into the mask and you've got conditional data flow.

Editor Polish, Round One

Proper z-ordering, smarter tooltips, a disappearing inspector, search that opens where you're looking, and a theme system that replaces every magic number.

Every Node, Documented

110 nodes and 203 pins now carry structured documentation — summaries, descriptions, tags, cross-references, and per-pin help text — all the way from source code to the editor UI and a machine-readable JSON export.

Logic and Comparison Nodes

Equal, Greater, Less, InRange, And, Or, Not, Xor. The decision-making layer of the node graph.

42 Math and Logic Nodes

Add, Subtract, Multiply, Divide, Sin, Cos, Lerp, SmoothStep, Map, and 33 more. Polymorphic, type-preserving, NaN-safe.

Zero-Allocation Evaluation

I tore apart the eval loop and rebuilt it. Pre-allocated buffers, cached adjacency maps, borrowed NodeInfo. No allocations in the hot path.