Generative pieces · Code only · 2026

Ephemera

五件纯代码生成的浏览器动画。没有一张图片,没有一个音频文件——画面、光影和声音,都在你打开页面的那一刻现场算出来;关掉它,就消失了。

浮光浮
向下 · 五件作品

Works

05 PIECES
01 一滴墨Ink Drop

三分钟、六幕的水墨短片:墨滴化鱼,鱼跃成鹤,鹤散为云,云落成雨,雨汇成江,最后写成一首诗,回到砚台。

Canvas 2DWeb Audio叙事 →
02 事件视界Event Horizon

光线追踪的黑洞。吸积盘被引力弯折到黑洞上下方,朝向你的一侧更亮、偏蓝。拖动环绕,滚轮缩放。

WebGL2光线步进 →
03 百万星尘Stardust

1,048,576 颗粒子在星系、球体、三叶结和文字之间旋涡式聚散。点击变形,鼠标靠近会推开粒子。

WebGL2GPU 粒子 →
04 霓虹夜驰Neon Drive

合成器浪潮的落日与霓虹网格。配乐由代码实时编曲,鼓组进入后,画面随每一下鼓点闪光、震动、色散。

WebGL2音序器 →
05 月下织机Moon Loom

梭子一行行织出月下海面,织完拆散成星尘。划过经线可以拨弦,还没织的那段越短,音就越高。

Canvas 2D拨弦合成 →

运行与源码

CANVAS / WEBGL2 / WEB AUDIO

Ephemera · 浮光是五件浏览器代码作品。想拆解画面和声音,可以从每件作品的入口文件开始:一滴墨模块、黑洞光线步进、GPU 星尘、霓虹夜驰音序器与月下织机拨弦。

为什么画面有了,声音却没响?

有声作品需要先在页面上点击,浏览器才允许启动 Web Audio。霓虹夜驰点击开始;月下织机划过经线拨弦。再检查页面和系统音量。声音由代码合成,不需要下载音频文件。

为什么直接双击一滴墨会失败?

一滴墨使用 ES modules,需要 HTTP 服务。克隆仓库后运行 python3 -m http.server 8000,打开 http://localhost:8000/;也可直接从本画廊打开在线作品。其余四件作品可直接打开 HTML。

WebGL2 作品打不开时怎么办?

事件视界、百万星尘和霓虹夜驰使用 WebGL2;查看页面是否提示不支持 WebGL2,检查浏览器与硬件加速设置。Canvas 2D 的一滴墨和月下织机使用不同绘图路径,可以分别检查。作品错误请向项目 Issues提供作品名、浏览器版本和错误文字。

源码采用 MIT 许可;运行与贡献步骤见贡献说明。画廊分享图是页面截图,作品本身的画面与声音仍在浏览器中实时生成。

LIVE