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

Variograph:当图像是变换函数的沉积物

Variograph: When the Image Is Sediment of Composed Transformations

Han Qin (秦汉)

Etienne Jacob,网名 bleuje,巴黎的软件工程师,业余时间做生成动画。从2017年开始,他用 Processing 写完美循环的 GIF 动画,后来转向 openFrameworks 和 GPU 着色器。2024年前后,他做了一个叫 Variograph 的东西:一个实时的、交互式的生成图像工具,可以用手柄操控,在展览中当装置使用。它已经在至少五个现场展出过,也可以在 itch.io 上下载运行。

Variograph 的核心算法很简单也很深:它维护一组叫做"变换"(variations)的函数,每个函数接受一个二维坐标作为输入,输出另一个二维坐标。这些变换来自分形火焰算法——几百种不同的位置变形规则,每种都有可随机化的参数。关键操作是把这些函数首尾相接地组合起来。然后,数百万个粒子从一个均匀填充的二维正方形出发,依次穿越整条函数链,最终以极低的透明度被绘制在屏幕上。图像不是被"画"出来的——它是粒子穿过变换链后的轨迹沉积物。每一个像素的亮度,是落在那个位置上的粒子数量的累积。

这就是余项发生的地方。在SAE的框架里,每个变换函数本身就是一次凿:它接收一个位置,输出另一个位置,中间的差距——那个几何意义上的"偏移"——就是凿之后的残余。但 Variograph 的要点不是单次凿的余项,而是组合凿构的级联余项。当你把五、六个变换串联起来,每一步的余项成为下一步的输入,残余不断叠加、折叠、变形。最终屏幕上浮现的图案,不是任何单个函数的"结果",而是整条变换链的总体沉积。没有人——包括操作者自己——能从参数倒推出图像为什么长这样。这正是余项的特征:它是过程的副产品,不是意图的产物。

更值得注意的是 Variograph 对掌控的抵抗。Jacob 自己在文档里写道:"你越熟悉这个工具,就越难获得有趣的结果。"这句话不是谦虚,是结构性的描述。当操作者形成了对某些变换组合的直觉——当那些组合变成了"已构"——余项就枯竭了。你必须不断引入你还不理解的变换,不断重新随机化参数,不断让自己回到不确定的状态。工具本身是一个余项生产装置,但它要求操作者不断拆除自己的已构经验。这是凿构循环在人机界面上的具体体现:构一旦完成,就必须被新的凿打破,否则图像退化为样式。

现在看 Variograph 比以后看更重要,因为它的范畴归属尚未固化。它不是分形艺术——分形艺术已经有了自己的已构美学(Julia 集、Mandelbrot 渲染、参数空间的系统探索),Variograph 从分形火焰借了变换函数的词汇,但它的目标不是探索参数空间,而是即兴演奏。它不是传统的生成艺术——它有手柄,有现场互动,操作者的身体参与构成了图像的一部分。它不是数学可视化——它对数学结构的使用是审美的、非解释性的。它是一个还没有被命名的类别:实时变换合成器,一种把数学函数当作"合成器模块"来接线的视觉乐器。艺术界正在慢慢靠近这个领域——"实时生成装置"在展览中越来越常见——但 Variograph 的特殊之处在于它的余项是数学的,不是像素的。它的原材料是函数组合学本身。

github.com/Bleuje/variograph ↗

Etienne Jacob, known online as bleuje, is a Paris-based software engineer who makes generative animation in his spare time. Since 2017 he has been writing perfectly looping GIFs in Processing, later moving to openFrameworks and GPU compute shaders. Around 2024 he built a tool called Variograph: a real-time, interactive generative image instrument that can be operated with a gamepad and used as a gallery installation. It has been exhibited at least five times in live settings and is downloadable on itch.io.

The core algorithm is simple and deep. Variograph maintains a list of functions called "variations," each taking a 2D coordinate as input and returning another 2D coordinate. These variations come from the fractal flame algorithm — hundreds of different positional transformation rules, most with randomizable parameters. The key operation is composing these functions end to end. Then millions of particles, starting from a uniformly filled 2D square, pass through the entire function chain and are plotted on screen as near-transparent dots. The image is not "drawn" — it is the trail sediment of particles passing through the transformation chain. Each pixel's brightness is the cumulative count of particles that landed there.

This is where the remainder occurs. In the SAE framework, each variation function is a chisel: it takes a position and outputs another, and the gap between them — the geometric displacement — is the residue of that single chisel stroke. But Variograph's point is not the remainder of a single chisel. It is the cascading remainder of composed chisel-constructs. When you chain five or six variations together, each step's remainder becomes the next step's input. Residue compounds, folds, deforms. What emerges on screen is not the "result" of any single function but the aggregate sediment of the entire chain. Nobody — including the operator — can reverse-engineer why the image looks the way it does from the parameters alone. This is the signature of the remainder: it is a byproduct of process, not a product of intention.

Even more telling is Variograph's resistance to mastery. Jacob himself writes in the documentation: "Getting interesting results is not really easy the more you become used to the tool." This is not modesty — it is a structural description. When the operator develops intuition for certain variation combinations — when those combinations become "already-construct" — the remainder dries up. You must keep introducing variations you do not yet understand, keep re-randomizing parameters, keep returning yourself to uncertainty. The tool itself is a remainder-production apparatus, but it demands that the operator continuously dismantle their own constructed experience. This is the chisel-construct cycle made concrete at the human-machine interface: once a construct solidifies, it must be broken by a new chisel, or the image degrades into style.

Seeing Variograph now matters more than seeing it later, because its categorical home has not yet hardened. It is not fractal art — fractal art has its own already-constructed aesthetics (Julia sets, Mandelbrot renders, systematic parameter-space exploration), and Variograph borrows from fractal flames only the vocabulary of variation functions, not the goal of exploring parameter space. It is not traditional generative art — it has a gamepad, live interaction, the operator's body as part of the image. It is not mathematical visualization — its use of mathematical structure is aesthetic, not explanatory. It is something not yet named: a real-time variation synthesizer, a visual instrument that patches mathematical functions like a modular synth patches oscillators. The art world is slowly approaching this territory — "real-time generative installation" appears more frequently in exhibition contexts — but Variograph's specificity is that its remainder is mathematical, not pixel-based. Its raw material is function composition itself.

github.com/Bleuje/variograph ↗