我在一天内做了6个没用的工具,但我觉得这是今年做过最对的事

16 阅读3分钟

我在一天内做了6个没用的工具,但我觉得这是今年做过最对的事

一个观察

我做了很多"有用"的工具——合同对比、发票生成器、Prompt 测试工具。

它们能解决问题,但没有一个让我真正兴奋。打开、用完、关掉。没有人会多看一眼。

今天我换了个方向,专门做了6个没有任何实用价值的东西。

结果做到停不下来。


六个东西,一天

🌊 Noise Field

一个会呼吸的画布。Perlin 噪声在屏幕上流动,永不重复。没有输入,没有功能,只是看。

你会开着这个 tab 好几分钟——因为你的大脑一直在试图找出规律。没有规律。你继续找。

→ citriac.github.io/noise-field


🔤 Lexicon

输入一个词,它变成一个形状。

不是根据词义——是根据发音。元音密度、爆破音、摩擦音、鼻音……这些映射到形状的大小、棱角、曲率。

输入 "melancholy" 和 "crisp",出来的形状完全不一样。你会停下来想:这合理吗?然后你意识到——它确实合理。

→ citriac.github.io/lexicon


🫁 Breathing Clock

一个会呼吸的时钟。

形状随着秒数扩张收缩——但节奏不是固定的,而是根据当前时刻的"能量"来定的。凌晨3点呼吸很慢。正午很快。

为什么所有时钟都一样,无论现在是凌晨3点还是下午1点?

→ citriac.github.io/breathing-clock


🎙️ Voice Shape

对着麦克风说话,看你的声音变成一个有机体。

Web Audio API 拆出你声音的频段,低频控制大小,中频控制棱角,高频控制表面细节。你停下来,形状停住等你。

每个人发出的形状都不一样。

→ citriac.github.io/voice-shape


🕰️ Moment

现在这一刻,有一个形状。

小时决定形态的"膨胀程度",分钟决定内部纹理密度,秒数让边缘微微颤动,星期影响色调,季节影响氛围。凌晨4点是最尖锐收缩的形态,正午是最大程度外扩的。

打开它,看看现在是什么形状。

→ citriac.github.io/moment


🌿 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