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.
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.
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.
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.
Proper z-ordering, smarter tooltips, a disappearing inspector, search that opens where you're looking, and a theme system that replaces every magic number.
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.
Equal, Greater, Less, InRange, And, Or, Not, Xor. The decision-making layer of the node graph.
Add, Subtract, Multiply, Divide, Sin, Cos, Lerp, SmoothStep, Map, and 33 more. Polymorphic, type-preserving, NaN-safe.
I tore apart the eval loop and rebuilt it. Pre-allocated buffers, cached adjacency maps, borrowed NodeInfo. No allocations in the hot path.
Memory across frames. Feedback loops, named state transitions, and keyframed values.
Counter, Select, Switch, Toggle, FlipFlop, Sequencer, SampleAndHold. The logic layer that ties animation together.