Patcher
Patcher is a patching environment for Pure Data, Miller Puckette's language for music and sound, where a program is a drawing: boxes wired together, with sound flowing down the wires. Patcher keeps Pd's engine exactly as Miller wrote it, and replaces what surrounds it: a new canvas, editor and set of shells, in a plain monochrome style. A patch opens here as it would in Pd, plays the same, and saves back byte for byte, so anything made in Patcher opens in Pd again with no complaint.
The same engine and core run in three places. In the browser, Pd is compiled to WebAssembly and runs inside the page's own audio thread; that is the version above, and on its own page. On the Mac it is a desktop app, and on the command line a tool that checks, renders and plays patches with no window at all. Pd's GUI objects — bangs, toggles, sliders, number boxes, arrays, and its drawn data structures — are drawn as Pd draws them and respond as Pd has them respond, checked object by object against Pd's own drawing over every patch in its documentation.
What is new is mostly about the drawing. Large patches in Pd grow into tangles, because Pd arranges nothing. Patcher adds three commands that do: Clear Overlaps moves only what collides, Arrange lays a group out by its signal flow and refuses to make a well-drawn group worse, and Relax While Dragging lets neighbours make room as you move a box. Each is one step of Pd's own undo, and nothing ever moves on its own.
The patch above is Phase, after Steve Reich's Piano Phase: two players share one twelve-note phrase, and the second slowly pulls ahead of the first, one note at a time, until they meet in unison again. Click start to play it. File › Examples holds every patch in Pd's documentation, sounds included — Miller's own course in electronic music, runnable in the page. Open a .pd from your computer, or drop one on the window; ⌘E switches between playing a patch and editing it. Next, the same canvas gets a second engine, for parametric modeling in the manner of Grasshopper.