跳到正文
网页珍奇柜Web Curio

黄油搅拌机:浏览器里的 MilkDrop

Butterchurn,Jordan Berg,2018 年

正在布展…

原作直展:这是 Jordan Berg 的原始作品,按 MIT(预设包 butterchurn-presets 为 MIT;附带 lodash、jQuery、normalize.css 均为 MIT;本柜合成节拍为 CC0) 许可证收录(版本 fbac2f6)。原样展出仓库自带的演示页(butterchurn 3.0 beta + 官方预设包),把 CDN 换成本地副本。可加载本地音乐、使用麦克风,或点本柜加的「Play a generated beat」用程序合成的节拍驱动;空格/方向键切换预设,选单可指定预设。 许可证全文 · 收录说明

它是怎么做的

  1. 第 1 步Web Audio 的 AnalyserNode 提供频谱与波形,计算 bass/mid/treb 等节拍变量
  2. 第 2 步每个预设包含逐帧方程和逐顶点方程,原本是 MilkDrop 的表达式语言,被转译成 JS
  3. 第 3 步核心是一张“上一帧”纹理:通过网格变形(缩放、旋转、扭曲)重新采样,形成无限反馈
  4. 第 4 步预设里的 HLSL warp/comp 着色器被转换为 GLSL,再叠加波形、形状与模糊层
  5. 第 5 步预设之间用像素级混合做平滑过渡

复刻配方

一段技术配方,可以直接交给 AI 编程助手,也可以自己照着写。想指定技术栈、位置和性能预算,就把它加入实现方案。

Keep two framebuffers and each frame render the previous frame through a coarse grid mesh whose vertex UVs are offset by zoom, rotation and a per-vertex warp equation. Drive those equations with audio features from an AnalyserNode (bass, mid and treble energy relative to their running average). Draw the waveform and simple shapes on top, then run a composite shader that adds colour shifts, blur and gamma. Swap buffers so the image feeds back into itself, which creates the characteristic tunnels and smears. Crossfade two presets by rendering both and lerping their outputs.

档案

能不能拿来用

原作以 MIT 许可开源:可以阅读源码学习,按许可证条款使用;在自己的项目里引用时保留原作者署名。

性能开销

视觉强度

实现难度

尺度为策展判断(1 到 5),用于比较和推荐。

核实记录:Opened https://butterchurnviz.com/ (200, title 'Butterchurn Visualizer'); repo jberg/butterchurn exists, licence MIT via GitHub API.