你大概也有过这种时刻。脑子里浮出一个画面,说不清是湍流,是晶格,还是某种呼吸般的节律。真要落到代码上,光把 p5.js 的画布、随机数和噪声场搭起来,就得折腾半天。等骨架搭完,原本那点感觉早凉了。
Anthropic 在 Smithery 上挂的这个 algorithmic-art 技能,想解决的正是这个摩擦。它不替你画一张图,而是把”我想要什么”先逼成一份算法哲学,再用 p5.js 把它生成为可交互、可复现、可无穷变体的作品。

我第一眼看到它的时候,以为又是个 p5.js 模板封装。毕竟”用 AI 生成艺术”的噱头太多了,大多最后是给你吐一张静态图。但读完整套 SKILL.md 才意识到,它真正的设计是把”想清楚”和”写代码”拆成两段,由两次不同的 Claude 接力完成。
一句话结论先放这:它是一个面向”想做可调、可复现生成艺术”的人,而不是”想快速出一张好看图”的人。下面拆开说为什么。
顺带提一句,它和 Midjourney、SD 这类扩散模型走的是完全不同的路。那些是给一句话出一张图,它是给你一套能一直生长的系统。别把两者混为一谈,买的本来就是不同的东西。
这其实点出了一个被忽视的区分。扩散模型在消费图像,而生成艺术在养一套规则。前者你越用越依赖它给的惊喜,后者你越用越懂自己想要什么。长期看,后者更像一个会陪你成长的合作者。
使用场景
最常见的用法,是把一个含糊的审美概念变成能跑的草图。你不需要会 p5.js,扔一句”想要有机的、像湍流但又安静的东西”,它就会先写出一份命名过的运动宣言,再据此落地代码。
探索 flow field 和粒子系统也特别顺手。技能内置了种子导航,Prev/Next/Random/Jump 几个按钮,让你在种子的空间里游走,而不是每改一次参数就重跑一遍。这种”逛”的体验,是手写脚本很难给的。
如果你想从一个参数化算法里衍生出一整个系列版画,它几乎是量身定做。同一个内核,靠种子和参数拉开差异,每件作品都不同却又同源。Art Blocks 那套”种子即身份”的思路被直接借了过来。
需要可复现输出的场合也站得住。randomSeed 和 noiseSeed 写死在算法里,同一个种子永远长出同一幅画。做印刷、做版本归档、做教学演示,这种确定性比”每次都惊喜”更值钱。
但它不是万能钥匙。你若只是想要一张一次性壁纸,走这趟流程反而重了。它最适合的,是你想长期和一个算法对话、反复调、反复生。
还有个容易忽略的用法,是做教学。把一份哲学和对应的算法一起给学生看,比单纯展示成品更能讲清”计算美学”这件事。算法的每一步都在替你解释为什么美。
它也适合给品牌或文章做一套统一的视觉语言。固定内核加参数微调,能保证多张图同出一源,又不会长得完全一样。比起随机搜图,这种可控的一致性更接近设计。
但也别神话它的”零代码”。你扔一句概念进去,得到的仍是需要你判断和微调的产物。它把门槛从”会写 p5.js”降到了”能读懂参数”,但审美决策始终在你手里。
技术架构与设计决策
整个技能跑的是两段式流程。第一段叫 Algorithmic Philosophy Creation,产出一份 .md:你给的模糊意图被提炼成一个命名过的生成艺术运动,四到六段,讲清楚它的计算逻辑、涌现行为、数学美。
第二段才轮到写代码,把这份哲学翻译成 p5.js 的交互制品,产出 .html 和 .js。技能反复强调一个比例:90% 是算法生成,10% 是必要参数。也就是说,它要的是活着的算法,不是套了随机的静态图。

这里的设计巧思在于”接力”。同一轮对话里,先写哲学的那个 Claude,把理念交给后面写代码的 Claude 去算法化地表达。前一段定调,后一段落地,中间靠一份宣言衔接,而不是靠你来回翻译。
落地时有个硬约束:必须先读 templates/viewer.html,以它为字面起点,只替换算法和参数区。这个模板把很多东西钉死了,全部不许动:
-
布局与侧边栏结构 -
Anthropic 品牌样式(Poppins/Lora 浅色渐变) -
种子导航控件(Prev/Next/Random/Jump) -
Regenerate / Reset / Download 按钮
能动的部分是算法内核、参数定义、UI 控件和配色。这种”固定骨架加可变血肉”的切分,让每件作品既有统一的交互外壳,又在视觉内核上拉开差距。你可以把它理解成一个受控的创作沙盒。

种子机制是整条链路的锚。代码里 randomSeed 和 noiseSeed 成对出现,保证随机可回溯:
// 种子一旦固定,同一份算法永远长出同一幅画
randomSeed(seed);
noiseSeed(seed);
参数对象也从系统可调属性出发,问的是下面几类,而不是”选哪种图案”:
-
多少个(数量) -
多大、多快(尺度与速度) -
什么概率(发生可能) -
什么角度(方向) -
何时行为改变(阈值)
值得一提的是,它产出的 .html 是单一自包含文件,p5.js 从 CDN 引入,不依赖任何后端。你直接丢进浏览器或 claude.ai 的 artifact 面板就能跑,分享成本几乎为零。
参数对象的设计也透露出取向。它要求参数从”系统可调属性”出发,而不是从”图案类型”出发。换句话说,你调的是力、是密度、是速度,不是选”湍流风格”还是”晶格风格”。这逼着使用者用物理而非标签去思考。
那个 90% 算法、10% 参数的比例,不只是修辞。它意味着真正的变量是种子和少数旋钮,而不是大段可改代码。对想要稳定产出的设计师,这是约束也是保护:你不会被无穷的自由淹没。
对刚入门的人,这套约束反而是好事。它替你划好了边界,你只需在框里做选择,不至于面对空白画布发呆。门槛被压低,但天花板还在。
洞察与反思
先说最让我意外的一点。技能文档里反复要求哲学里”反复强调匠心工艺”,恨不得把 meticulously crafted algorithm 写三遍。这看着像废话,其实是一招很钝的提示工程:用语言把下一轮 Claude 的产出标准抬上去。
纯生成而非静态图这条线,也值得单独拎出来。它明令禁止从选项菜单拼贴,禁止复制 flow field 示例,要的是每次都从哲学重新长出算法。代价是产出不稳定,同一句话不同次跑可能差很远,好处是确有”创作”感。
种子导航是实打实的好用,不是装饰。手写 p5.js 的人大多懒得做这一套 UI,而它把 Prev/Next/Random 做成标配,等于把”探索”本身产品化了。对一个想认真玩算法艺术的人来说,这点很关键。
但暗坑也不少。它再怎么封装,底层还是 p5.js。你若想真正改出花来,还是得懂 p5.js 的坐标、噪声、向量。它省的是 boilerplate,不是认知成本。把模板当成黑盒用,上限很快撞墙。
统一的 Anthropic 品牌样式是一把双刃剑。好处是每件作品都干净、专业、开箱即看;坏处是辨识度趋同,一眼就知道”这是那个 Skill 出来的”。想做强烈个人风格的人,会在这里感到被框住。
还有个少被人提的点:所谓”下一个 Claude 来解读哲学”,意味着两次生成的代码风格可能不一致。对追求稳定工程产出的场景,这种接力带来的不确定性是隐患。它不是 bug,但是边界。
把它和 Midjourney 放一起看会更清楚定位。MJ 要的是”一张惊艳的图”,这个技能要的是”一个能一直聊的算法”。前者消费结果,后者消费过程。你买的是不同的东西。
还有个现实问题:它强依赖 Claude 接力。如果你的客户端不支持长上下文或 Skill 调用,这套流程就断了。它本质上是”Claude 生态内的创作工具”,不是独立应用。出门即用之前,先确认你的环境跑得动。
可复现是一把双刃。它能归档、能印刷、能回溯,但也抹掉了一部分”意外之喜”。手写脚本时偶尔跑歪的一帧,反而成了最爱。这个技能把意外收进了种子空间,秩序感强了,野性弱了。
所以判断它好不好,标准不该是”出图漂不漂亮”,而是”它有没有逼你想清楚自己的审美”。漂亮是结果,想清楚才是这个技能真正在卖的东西。
把几个要害维度摊开看会更清楚:
| 维度 | 手写 p5.js | algorithmic-art 技能 |
|---|---|---|
| 起步成本 | 高,先搭骨架 | 低,模板起步 |
| 调参方式 | 改代码重跑 | 滑块实时 |
| 种子复现 | 自行实现 | 内建导航 |
| 风格统一 | 看个人 | 强品牌约束 |
| 定制上限 | 无限 | 受模板框定 |
左列是手写的那套,自由但重;右列是被它接管的部分,省事但有形。关键看你愿意用多少自由换多少省心。

资源地址
总结
给个直接的决策清单。你是下面这类人,就值得装:想把模糊审美变成可调可复现的生成艺术;愿意和同一个算法长期对话;接受 p5.js 作为底层、接受统一的品牌外壳。
你是下面这类人,就先别碰:只想快速出一张一次性好图;想要完全脱离 p5.js 的任意画风;对成品的视觉一致性有强烈的个人执念。它给的是框架和品味,不是魔法。
如果你已经有一套手写的 p5.js 工作流,它未必能替代,但大概率能补位。用它快速验证一个想法值不值得做,再决定要不要投入手写,是个性价比很高的用法。
这个技能最值钱的地方,不是它会画,而是它逼你在画之前先把”为什么美”想成可计算的信念。这点习惯,就算你最后没用它,也值得带走。
