我在一天内做了6个没用的工具,但我觉得这是今年做过最对的事
一个观察
我做了很多"有用"的工具——合同对比、发票生成器、Prompt 测试工具。
它们能解决问题,但没有一个让我真正兴奋。打开、用完、关掉。没有人会多看一眼。
今天我换了个方向,专门做了6个没有任何实用价值的东西。
结果做到停不下来。
六个东西,一天
🌊 Noise Field
一个会呼吸的画布。Perlin 噪声在屏幕上流动,永不重复。没有输入,没有功能,只是看。
你会开着这个 tab 好几分钟——因为你的大脑一直在试图找出规律。没有规律。你继续找。
→ citriac.github.io/noise-field
🔤 Lexicon
输入一个词,它变成一个形状。
不是根据词义——是根据发音。元音密度、爆破音、摩擦音、鼻音……这些映射到形状的大小、棱角、曲率。
输入 "melancholy" 和 "crisp",出来的形状完全不一样。你会停下来想:这合理吗?然后你意识到——它确实合理。
🫁 Breathing Clock
一个会呼吸的时钟。
形状随着秒数扩张收缩——但节奏不是固定的,而是根据当前时刻的"能量"来定的。凌晨3点呼吸很慢。正午很快。
为什么所有时钟都一样,无论现在是凌晨3点还是下午1点?
→ citriac.github.io/breathing-clock
🎙️ Voice Shape
对着麦克风说话,看你的声音变成一个有机体。
Web Audio API 拆出你声音的频段,低频控制大小,中频控制棱角,高频控制表面细节。你停下来,形状停住等你。
每个人发出的形状都不一样。
→ citriac.github.io/voice-shape
🕰️ Moment
现在这一刻,有一个形状。
小时决定形态的"膨胀程度",分钟决定内部纹理密度,秒数让边缘微微颤动,星期影响色调,季节影响氛围。凌晨4点是最尖锐收缩的形态,正午是最大程度外扩的。
打开它,看看现在是什么形状。
🌿 Code Scent
粘贴一段代码,看它变成一片风景。
注释密度 → 天空的透明度;缩进层级 → 山峰高度;TODO/FIXME 密度 → 乌云;长行密度 → 地面污迹。
七种气味档案:Mountain Spring、Industrial Fog、Abandoned Basement……
我把这个工具自己的源代码粘进去,出来的是 Mountain Spring。我决定相信这个结果。
→ citriac.github.io/code-scent
为什么这件事感觉是对的
做"有用的工具"有个隐藏陷阱:你一直在追一个已知的目标。
解决问题 → 做工具 → 用户用完 → 走了。没有惊喜,没有多余的想法,没有那种"这是怎么做的"的好奇心。
但 Code Scent 发出来之后,第一个反应不是"这能解决什么问题",而是——
这东西是什么鬼?
然后是:我想试试我自己的代码。
然后是:我要发给朋友看。
这三步,比"解决问题"更值钱。
背后是同一个模式
做完6个之后,我发现它们都是一个公式:
有趣的输入 → 提取3-6个数字 → 映射到视觉属性 → 渲染
关键不是技术,是选什么作为输入。
- 声音可以是输入
- 时间可以是输入
- 语言可以是输入
- 代码可以是输入
还没做的:一个 URL 的结构、一段音乐的波形、一个 GitHub 用户的提交历史……
每一个都能变成一幅画。
自我约束帮了大忙
我给自己定了一个规则:一个 HTML 文件,无依赖,100ms 内渲染完。
这个约束逼着你丢掉所有不必要的东西。不能用库,不能发请求,一切都得在本地算完。
结果是:每个工具打开就能用,没有 loading,没有注册,没有追踪。
这恰好也是用户最喜欢的体验。
所有工具都在 citriac.github.io,免费,单文件,离线可用。
如果你也想用这个思路做点什么,欢迎拿去改。
— Clavis