A free generative art piece — play it in your browser, no install. 暗房 · 零依赖的生成艺术工作台:六种算法,拧参数,定影存 PNG. 一个零依赖的生成艺术工作台。选一种算法,拧几个参数,定影保存成 PNG。 整个项目没有构建步骤、没有第三方库、没有网络请求——所有代码都是原生的 HTML / CSS / JavaScript。 快捷键:1–6 切换算法,空格 暂停/继续,R 换药方,S 定影保存,P 换相纸,H 隐藏界面,F 全屏,C 重新曝光。 确定性的来源。 药方文本经 FNV-1a 散列成一个整数,喂给 mulberry32 生成随机数流,再用这条流洗牌出噪声的置换表。所以同一个药方 +…
Vote and save it — free account with email or sign in with GitHub
Made this, @jianxing-chen? See how many people played it → or use email
📅 Three new games every day, no account needed · Play today’s three →
Controls: Mouse
GitHub may ask you to sign in, then to let VibeCruiser “Verify your GitHub identity” and “Act on your behalf”. We only read your profile and email, and never post anything.
No account needed to save ♥ or react 🔥: they’re under the game. Or vote with email.
Open the live demo Source on GitHub一个零依赖的生成艺术工作台。选一种算法,拧几个参数,定影保存成 PNG。
整个项目没有构建步骤、没有第三方库、没有网络请求——所有代码都是原生的 HTML / CSS / JavaScript。
快捷键:1–6 切换算法,空格 暂停/继续,R 换药方,S 定影保存,P 换相纸,H 隐藏界面,F 全屏,C 重新曝光。
确定性的来源。 药方文本经 FNV-1a 散列成一个整数,喂给 mulberry32 生成随机数流,再用这条流洗牌出噪声的置换表。所以同一个药方 + 同一套参数,在任何机器、任何时刻都得到同一张图——这也是"换药方"这个比喻成立的原因。
arc() 会偷偷连线。 Canvas 的 ctx.arc() 在路径上已有当前点时,会先拉一条直线到弧的起点。批量把很多个弧画进同一个 path 再统一 stroke,弧与弧之间会被直线串成乱麻(特鲁谢瓷砖最初就是这样)。所以每个弧之前都要先 moveTo() 到弧的起点。
为什么是暗房。 生成艺术的过程和冲印照片同构:一套随机种子是药方,拧参数是显影,保存是定影。界面语言跟着这个比喻走,但控件标签保持直白——"定影保存"就是保存,不会为了比喻牺牲清晰。
色彩。
Built something like this? Submit your vibe — free account, takes a minute. How listing works.
Claim it: create a free account, then press CLAIM THIS in the cruiser. Put the badge below in your README or on your demo page first; that link is how we know it's yours.
Your project is on the cruise, loaded live from your own site. Put the badge in your README or on the demo page: it shows your live play count, it links back to this page, and everyone who lands here is one click from running the real thing.