SIGNAL//VOIDTWELVE ROOMS

VIBECODING SUBMISSION · 2026

Twelve rooms
you can hear.

同一个引擎,十二种被策展过的状态。每个声景都只是一个参数组合——音高、脉冲、距离、章节与随机种子——但组合出来的是十二间不同的房间:有的适合清晨工作,有的属于凌晨三点。

全部在本机生成:没有音频文件被加载,没有采样,没有网络请求。你现在听到的每一个音,都是浏览器实时算出来的。

12策展声景
38,000 / 88,000移动 / 桌面点数
0外部请求
100%本地合成

The Collection

每条都可以「试听」(就地播放,不离开本页)、「打开」进入完整乐器并由该参数初始化,或「下载」一段 60 秒的本地合成 WAV。

产品与实现

这份提交版把此前标记为「未制作」的功能真正做出来了,并且明确区分什么是可运行的、什么仍是路线图。

能力状态实现位置
实时生成声音(四声部:拨奏和弦块 + 低频呼吸 + FM 钟声 + 空间回声)已实现audio.js
实时生成画面(WebGL 38,000–88,000 点 / 批量 Canvas 11,000 点兜底)已实现renderer.js
三根滑杆影响音乐走向(音高 / 速度与亮度 / 空间)已实现app.js · audio.js
12 个策展声景 + 索引页 + 就地试听已实现soundscapes.js · curator.html
长格式本地导出(60 秒 WAV / 2400px 艺术海报 / 3840×2160 无品牌条收藏海报)已实现audio.js · app.js
本机档案、调谐参数分享、双击清除本机数据已实现app.js
账号、支付、云端同步、通知交付未实现(明确不提供)
技术栈:零依赖。原生 WebGL(自写 GLSL)、原生 Canvas 2D、原生 Web Audio、原生 DOM。唯一的第三方文件是本地打包的 GSAP,仅用于首屏入场,缺失时页面照常可用。
诚实边界:没有服务端,因此没有账号、支付、云端同步或跨设备档案;本地文件模式下浏览器存储不是保密边界;安全门禁未对当前版本运行,清单中如实标注为未执行。

验证与复现

所有结论都有可重跑的命令,而不是描述。

cd signal-void

# 主验收(45 条断言)
node scripts/validate.cjs

# 声音:不是嗡鸣、三根滑杆都真的改变声音
node work/verify-sound-character.cjs
node work/diagnose-audio-level.cjs

# 移动端:三档机型 + 强制无 GPU 的 Canvas 兜底
node work/measure-mobile.cjs
node work/measure-mobile-canvas.cjs

# 渲染器与无障碍
node work/verify-renderer-lifecycle.cjs
node work/a11y.cjs

交付清单与哈希:release-manifest.json。设计与动效契约:design/。变现假设与验证顺序:MONETIZATION-PLAN.md