L5:当素描从浏览器里走出来
L5: When the Sketch Walks Out of the Browser
Lee Tusman 是纽约的艺术家与教师,在用 p5.js 制作艺术近十年之后,他面临了一个简单而顽固的问题:旧作品正在悄然破碎。不是因为想法过时了,而是因为浏览器的安全策略改变了——一次 Chrome 更新要求音频必须由用户事件触发,整批旧素描的声音无声消失。代码还在,逻辑还在,但运行环境已经不是当初的运行环境。
2025 年 12 月,他发布了 L5:一个用 Lua 语言写成、运行于 Love2D 框架之上的创作编程库,API 刻意模仿 Processing 和 p5.js 的函数命名,但底层完全脱离了浏览器。整个安装包约六兆字节,相当于 Processing 五百兆字节的百分之一。一位用户在 2009 年的旧笔记本上测试,除了着色器部分需要注释掉之外,其余正常运行。六兆字节,一台十六年前的机器,素描仍然在画。
创作编程的已构,是一整套关于「当下性」的假设:JavaScript,现代浏览器,有 WebGL 支持的显卡,三到五年内不会破碎的 API。这套已构并非刻意设计——它是工具跟着平台走的自然沉积。Tusman 所做的凿,是把这三重「当下性」一起剥掉:不要 JavaScript,不要浏览器,不要对显卡版本的依赖。他选择了 Lua——这门语言从 5.0 到 5.4 二十年间几乎没有破坏性改动;选择了 Love2D——自 2008 年起持续维护,依赖极少,几兆字节,可以嵌入任何环境。凿掉这三重之后,余项是什么?是素描本身——draw() 循环,坐标系,鼠标和键盘事件,几何图元。这些东西的逻辑从来不依赖 JavaScript,它们本来就不属于浏览器。L5 让我们看见:创作编程的核心实践是一个余项,它一直住在这些框架里,却不需要这些框架的速度,不需要这些框架的「现在」。
但 L5 最深的余项是一个时间问题。Tusman 在 2026 年的工作坊里提出了一个还没有答案的问题:「给诗歌一百年」。创作编程的构,是把三到五年当作代码生命周期的默认单位。L5 问的是:如果把这个单位换成一百年,还剩下什么?这个问题本身就是余项——它落在通常的软件更新循环之外,也落在「复古怀旧」的框架之外(怀旧是已经命名了的已构,是对逝去余项的悼念),更落在「可持续性艺术」这个正在被艺术圈命名的新标签之外。还没有一个现成的范畴能完全容纳它,这正是它作为余项仍然活着的标志。
「永续计算」(permacomputing)这个词正在被艺术世界缓慢消化:Monoskop 页面、NODE 论坛工作坊、学术论文陆续出现。一旦「永续计算美学」变成有策展人、有美术馆、有批评文章的固定类别,L5 就会成为这个类别的历史案例——一块沉淀了的凿构沉积物,不再活着作为问题。而现在,围绕 L5 正在自我组织的社群还没有固定的名字:谷歌编程之夏的导师、在皇后区公共空间里第一次聚会的二十个人、费城图书馆的代码马拉松、在旧金山讨论「百年诗歌」的工作坊。这些还没有被收进一个叫做什么的运动里。循环还没有闭合。这是看见余项最好的时机。
l5lua.org ↗Lee Tusman is a New York-based artist and educator who spent roughly a decade making work in p5.js. Then, quietly, his older pieces began to break. Not because his ideas went stale — because Chrome updated its audio security policy, requiring a user gesture before any sound could play. Whole sketches went silent overnight. The code was still there; the logic was intact; the runtime had simply moved on without warning. This named something he had been circling: creative coding, as currently practiced, runs on time-bound infrastructure.
In December 2025, he released L5 — a creative coding library written in Lua, built on the Love2D framework, with an API that deliberately mirrors Processing and p5.js function names, but with no browser dependency underneath. The entire install is around six megabytes, compared to Processing's roughly five hundred. A user tested it on a 2009 laptop and found it ran cleanly, with only the shader module needing to be commented out for that era's graphics hardware. Six megabytes. A sixteen-year-old machine. Still drawing.
The already-construct of creative coding is a cluster of assumptions about nowness: JavaScript, modern browsers, current GPU drivers, API stability measured in three-to-five-year windows. These assumptions aren't designed — they accumulate as tools follow platforms follow upgrade cycles. When Tusman chisels, he removes all three layers of nowness at once: no JavaScript, no browser, no dependency on modern graphics card features. In their place: Lua, whose core language changed minimally from version 5.0 to 5.4 across twenty years; and Love2D, maintained since 2008, tiny, few dependencies, portable to Raspberry Pi and aging desktops. What remains after this chisel is the sketching practice itself — the draw() loop, the coordinate system, mouse and keyboard events, geometric primitives. These things never belonged to JavaScript in the first place. L5 makes visible what was always true: the core of creative coding is a remainder that was living inside these frameworks without needing their speed, their nowness, their three-year horizon.
But L5's deepest remainder is a temporal question. Tusman titled a 2026 workshop "Computational Poetry for 100 Years." Creative coding's construct sets three-to-five years as the default unit of a sketch's expected lifespan. L5 asks: if you replace that unit with one hundred years, what survives? This question is itself a remainder — it falls outside the standard upgrade cycle, outside retro-nostalgia (which is already a named construct: the mourning of old remainders), and outside "sustainable art," a category that the art world is just now absorbing and naming. No existing category can fully contain the hundred-year question yet. That incompleteness is the mark of structural aliveness.
"Permacomputing" is being slowly digested into an art-world category. Monoskop has a page. NODE Forum ran workshops. Academic papers are arriving, including one co-authored by Tusman and p5.js project lead Kit Kuksenok. Once "permacomputing aesthetics" hardens into a curated exhibition label with critical essays and institutional backing, L5 will be a historical data point in a completed argument — sediment of a chisel-construct cycle that has closed. Right now, the community forming around L5 has no fixed name for itself: twenty people at a first meetup in a Queens commons space, a code jam at a Philadelphia library, a workshop on hundred-year poetry at Gray Area in San Francisco, Google Summer of Code contributors expanding the library's sound and video modules. These are not yet a movement. The name hasn't landed. The cycle hasn't closed. This is when the remainder is most alive to look at.
l5lua.org ↗