Node Art

A 2D compositing network, where each node is a small program or a spec and the wires decide what feeds what. Five built-in kinds need no code at all — solid, blend (eleven composite modes), blur, transform (move, turn, scale, repeat around the centre) and feedback, which keeps its own faded previous frame and is how trails and zoom feedback are expressed. A script node carries JavaScript in the same Processing-flavoured vocabulary Code Art uses — setup(), draw(), background, fill, circle, beginShape, seeded random() and noise() — plus image(0) to draw whatever is wired into its first input, which is the one line most compositing nodes are. Any numeric parameter can be an expression instead of a number, over t in seconds, frame, seed, w, h and any named variable you declare, so a blend whose amount is 0.5 + 0.5*sin(t) breathes with nothing to sandbox. Wires must form a DAG: a connection that would close a cycle is refused and points you at a feedback node, which is the honest way to read your own last frame. Script code runs in a hardened Worker with no DOM, no storage and no network, one frame at a time, and the frame budget names the node that overran instead of hanging the tab. Node positions are computed from the wiring rather than stored, so the picture always agrees with the evaluation order. Every random draw is seeded, so the same seed is the same artwork on every screen. Ships empty, and the Load button is where a picture comes from: it opens a chooser that says what each starting graph does, and loading one replaces the whole graph. Hello world is three nodes — a script, a ground, and the blend that puts one over the other — whose comments are the API reference; Bloom, Trails and Kaleidoscope are finished pieces to take apart. Or ask for one.

Supported file formats: PNG, JPG, JPEG, WEBP, GIF, BMP, OBJ, PLY, XYZ, CSV, TSV, TXT, JSON, GEOJSON, MD, SVG