|
← 判断力与美学 ← Judgment & Aesthetics
SAE 判断力与美学 · 余项之美
SAE Judgment & Aesthetics · Beauty of the Remainder
2026-05-31

Patchies:所有创作工具的余项在此处做邻居

Patchies: Where the Remainders of All Creative Tools Become Neighbors

Han Qin (秦汉)

Phoomparin Mano(网名 heypoom)是曼谷的一名软件工程师。白天他在 Metabase 做嵌入式分析前端,午夜之后他独自维护一个叫 Patchies 的项目——一个运行在浏览器中的创作计算拼接器。GitHub 上 162 颗星,4143 次提交,AGPL-3.0 协议��它支持的工具列表读起来像一部创作计算的索引:P5.js、Three.js、HTML5 Canvas、Textmode.js、Hydra、GLSL 着色器、Strudel、ChucK、SuperSonic、Bytebeat、Csound、Orca、Pure Data 风格的音频对象、Tone.js、Elementary Audio、Uxn 虚拟机、Assembly、Uiua、Ruby、Python、MIDI、MQTT、WebRTC——二十多种工具,来自二十多个互不知晓对方存在的社区。你在同一张画布上让它们做邻居。

为什么这是余项之美?因为创作计算长期���两种��构范式统治。第一种是视觉拼接(Max/MSP、Pure Data、TouchDesigner、VVVV):一切是方块和连线,你看见拓扑结构,但每个方��内部是不透明的��箱。这是"可见性与不透明性"的已构。第二种是文本活代码(TidalCycles、Hydra、SuperCollider、Processing):一切是文字,你拥有完整表达力,但你看不见程序的空间关系——数据流隐藏在 import 语句和函���调用之中。这是"精确性与盲目性"的已构。Patchies 同时���掉两者:每个节点里有可见的代码(不是黑箱),节点之间的连线定义拓扑(不���隐藏的)。它不属于任何一方。它是两种视觉之间的缝隙——那条缝隙就是余项。

更深层的余项结构在于跨社��计算。当一个 Strudel 音乐模式驱动一个 Hydra 视觉着色器,着色器的输出送入 P5.js 交互草图,草图通过 MIDI 发送控制信号到 Uxn 虚拟机上运行的 Uxntal 程序——这条数据路径穿越了至少四个从不对话的创作社区。每次穿越都是一次凿构:Strudel 社区的"已构"(模式代数)在进入 Hydra 时被凿开,���为 Hydra 不理解模式,只接收数值;Hydra 的"已构"(反馈循环着色器美学)在进入 P5 时被凿开,因为 P5 只看到像素阵列。每一次���译都产生余项���—不属于出发域、也不属于抵达域的计算物。Patchies 的画布就是这些余项的聚集地。

命名之隙巨���:它不是 DAW(没有时间线),不是 IDE(没有文件系统),不是视觉拼接器(你写代码),不是活代码环境(你拼接连线),不是模块合成器(它是软件),不是游戏引擎(没有物理),不是笔记本(不是线性的)。七种命名系统同时失败。Poom 自己在设计笔记中公开了一整页"命名想法"——他也不知道自己在做什么类别的东西。这正是余项的标志:当逻辑还在生长,名字追不上它。四千多次提交,bucket list 公开可见,社区正在 lines 论坛上慢慢形成。逻辑还活着。

patchies.app ↗

Phoomparin Mano (heypoom) is a software engineer in Bangkok. By day he works on embedded analytics at Metabase; after midnight he maintains Patchies alone — a creative coding patcher that runs in the browser. 162 GitHub stars, 4,143 commits, AGPL-3.0. Its list of supported tools reads like an index of creative computing itself: P5.js, Three.js, HTML5 Canvas, Textmode.js, Hydra, GLSL shaders, Strudel, ChucK, SuperSonic, Bytebeat, Csound, Orca, Pure Data-style audio objects, Tone.js, Elementary Audio, the Uxn virtual machine, Assembly, Uiua, Ruby, Python, MIDI, MQTT, WebRTC — over twenty tools from over twenty communities that barely know each other exist. On one canvas, you make them neighbors.

Why is this the beauty of the remainder? Because creative computing has long been ruled by two constructs. The first is visual patching (Max/MSP, Pure Data, TouchDesigner, VVVV): everything is boxes and wires, you see the topology, but each box is an opaque black box. This is the construct of "visibility-and-opacity." The second is text-based live coding (TidalCycles, Hydra, SuperCollider, Processing): everything is text, you have full expressive power, but you cannot see the spatial relationships of your program — data flow hides in import statements and function calls. This is the construct of "precision-and-blindness." Patchies chisels both: each node contains visible code (not a black box), connections between nodes define topology (not hidden). It belongs to neither side. It is the seam between two visions of programming — and that seam is the remainder.

A deeper remainder structure lies in cross-community computation. When a Strudel music pattern drives a Hydra visual shader, the shader's output feeds a P5.js interactive sketch, and the sketch sends MIDI control to an Uxntal program running on the Uxn VM — this data path crosses at least four creative communities that never converse. Each crossing is a chisel-construct operation: Strudel's construct (pattern algebra) is chiseled open when entering Hydra, because Hydra doesn't understand patterns, only numbers; Hydra's construct (feedback-loop shader aesthetics) is chiseled open when entering P5, because P5 sees only pixel arrays. Each translation produces remainder — computational matter belonging to neither the departing domain nor the arriving one. Patchies' canvas is where these remainders gather.

The naming gap is enormous: it is not a DAW (no timeline), not an IDE (no file system), not a visual patcher (you write code), not a live coding environment (you patch connections), not a modular synthesizer (it's software), not a game engine (no physics), not a notebook (not linear). Seven naming systems fail simultaneously. Poom himself published a full page of "naming ideas" in his design notes — he doesn't know what category he's building either. This is the signature of remainder: when the logic is still growing, names cannot keep up. Over four thousand commits, the bucket list publicly visible, a community slowly forming on the lines forum. The logic is still alive.

patchies.app ↗