algorithmic-art
作者 anthropicsalgorithmic-art 可協助你用 p5.js 創作原創生成藝術,採兩步驟流程:先撰寫演算法創作理念,再產出可執行的 .html 與 .js 檔案,並支援種子隨機、參數控制與互動式檢視器。
這個技能獲得 76/100,屬於值得收錄的穩健選項:它提供明確的觸發情境、實際可執行的多步驟流程,以及可重複利用的範本,能協助產出生成藝術成果。不過,使用者也應預期其中仍帶有一定創作上的模糊空間,往往需要手動調整,而不是一套邊界清楚、可直接照表操課的產製流程。
- Frontmatter 描述的觸發性很高,明確涵蓋程式藝術、生成藝術、flow fields、particle systems,以及兼顧著作權安全的原創性限制。
- SKILL.md 定義了具體的兩步驟流程:先撰寫演算法創作理念,再將其轉化為橫跨 .md、.html 與 .js 檔案的 p5.js 輸出。
- Repository 內含實用範本,涵蓋生成器結構與互動式 p5.js viewer,不只是泛用提示詞,能更有效提升實作落地性。
- 這份指引偏重概念且開放度高,因此輸出品質會比起精確的操作規則,更仰賴 agent 的創意判斷。
- SKILL.md 中沒有提供安裝或 quick-start 指令,支援檔案也以範本為主,因此部分執行細節需要由使用者自行推斷。
algorithmic-art 技能總覽
algorithmic-art 實際上會做什麼
algorithmic-art 技能會協助代理產出兩個彼此連動的成果:一份以 Markdown 撰寫的演算法藝術哲學,以及一份以 .html 和 .js 形式提供的 p5.js 實作。它適合處理這類需求:生成式藝術、flow fields、粒子系統、湧現式視覺、以 noise 為基礎的構圖,以及由程式驅動的圖像生成。
哪些人適合安裝這個技能
如果你要的不只是一次性的視覺提示詞,這個 algorithmic-art skill 會更適合你。它特別適合:
- 使用
p5.js的 creative coders - 需要可重現視覺生成流程的 agent 工作流
- 想要可調參數與以 seed 控制變化的使用者
- 製作瀏覽器互動藝術、而非靜態點陣圖輸出的團隊
如果你主要只是想從 text-to-image 模型拿到一張完成度高的單張圖片,這通常不是最對的工具。
這個技能真正解決的工作需求
多數使用者其實不是單純想要「用程式做藝術」。他們需要的是一套工作流,能把模糊的美學方向轉成:
- 一個連貫的生成式概念,
- 一個可執行的 sketch,
- 透過 seeded randomness 取得可重複的輸出,
- 以及可探索的控制方式,而不是每次都手動重寫。
這正是 algorithmic-art for Image Generation 的核心價值:它會推動代理去設計一個視覺系統,而不只是丟出一段裝飾性程式碼。
它和一般藝術提示詞有什麼不同
一般提示詞常常只會產出停留在表面的風格描述。algorithmic-art 則更強調:
- 一種有命名的計算美學或創作哲學
- 著重湧現行為,而不是字面上的圖像描繪
- 以
p5.js建立結構,並把參數集中管理 - 透過 seeded randomness 維持可重現性
- 以互動 viewer 模式測試多組 seed 與設定
如果你重視迭代、變體探索,以及可檢查的程式碼,這會比一般做法更實用。
安裝前要先知道的關鍵限制
這個技能有明確的設計取向。它假設:
- 以 JavaScript + p5.js 作為渲染環境
- 以瀏覽器輸出為主,而不是原生桌面圖形
- 強調原創作品,而非模仿在世藝術家
- 採取 90% algorithmic generation、10% essential parameters 的原則,也就是視覺結果應主要由系統自行生成
如果你的技術棧是 Processing、TouchDesigner、Three.js 或 Python notebooks,就要預期還需要做一段適配工作。
如何使用 algorithmic-art 技能
安裝情境與檔案位置
請在你偏好的 skills-enabled 環境中,從 Anthropic skills repository 安裝。常見做法如下:
npx skills add https://github.com/anthropics/skills --skill algorithmic-art
安裝完成後,相關檔案會位於 skills/algorithmic-art。
先讀這些檔案
如果想快速上手,建議照這個順序閱讀:
skills/algorithmic-art/SKILL.mdskills/algorithmic-art/templates/generator_template.jsskills/algorithmic-art/templates/viewer.htmlskills/algorithmic-art/LICENSE.txt
這個順序能讓你先理解預期工作流,再看程式結構,最後再看 viewer 外殼。
先理解這個兩階段工作流
把這個技能分成兩個階段使用,會最容易上手:
-
先建立哲學
撰寫一段簡短的風格/流派描述,定義這個系統的規則、張力與視覺邏輯。 -
再把它轉成程式
建立p5.jssketch,以及能暴露 seed 和關鍵參數的 viewer。
很多人失敗的原因,是略過哲學步驟,直接跳去畫圓、做粒子或加 noise。這樣最後通常只會得到很泛的生成效果。
algorithmic-art 技能需要什麼樣的輸入
好的輸入不需要很長,但要具體。請提供:
- 情緒基調
- 動態或結構類型
- 視覺限制條件
- 渲染媒介
- 不同 seed 之間應該改變什麼
好的輸入:
- 「Create a restrained monochrome flow-field piece that feels like erosion maps and wind traces. Favor sparse composition, curved motion, and subtle seed variation.」
弱的輸入:
- 「Make cool generative art.」
前者在不過度限制演算法的前提下,能給這個技能足夠明確的方向。
如何把模糊目標轉成可用的提示詞
一個好的 algorithmic-art usage 提示詞,通常包含五個部分:
- Intent:作品想喚起什麼感受
- System:粒子、fields、branching、grids、reaction-like motion 等哪種系統
- Constraints:色盤、密度、對稱性、畫布氛圍
- Variation model:seed 應該改變哪些面向
- Deliverables:
.md、.js、.html
範例:
「Use the algorithmic-art skill to invent an original philosophy around tidal memory and sediment drift. Implement it as p5.js with seeded randomness, parameter controls, and an interactive viewer. Use a muted coastal palette, avoid literal waves, and make each seed produce a recognizable but distinct composition.」
可以期待哪些輸出
一次成功的執行,通常應該產出:
- 一份哲學
.md檔 - 一份生成演算法
.js檔 - 一個包含
p5.js的 viewer.html檔 - 以及讓探索變得實際可行的參數與 seed 處理方式
從模板檔可以看出,viewer 應該盡量自成一體,並讓 seed 切換方式保持清楚可見。
如何正確使用模板
templates/generator_template.js 重點在結構,不在風格。你應該把它當成以下方向的指引:
- 用
params物件集中管理參數 - 一致地處理 seeded randomness
- 讓之後串接 UI 更容易
- 在除錯視覺變化時維持可重現性
templates/viewer.html 則是用來呈現 sketch 的外殼。核心版面與 seed 導覽可保留,但藝術邏輯與控制項應替換成符合你哲學設定的版本。
第一次做出成果的實用流程
一個成功率高的 algorithmic-art guide,通常會長這樣:
- 先寫一段一段式哲學描述。
- 只挑出 3–5 個可調參數。
- 定義 seed 會如何影響輸出。
- 先做出最簡單、能證明動態系統成立的 sketch。
- 等核心行為在視覺上已經連貫,再加控制項。
- 在打磨色彩與 UI 前,先測多組 seed。
這個順序能避免你在生成器本身還很弱時,就先把控制介面做得過度複雜。
哪些提示詞技巧能明顯提升輸出品質
你可以明確要求:
- 一個清楚的生成機制,而不只是「漂亮的視覺」
- 有預設值的具名參數
- seed 可重現性
- 明確的非目標,例如「avoid looking like wallpaper」或「avoid literal floral forms」
- 不同 seed 之間有清楚差異,但底層身份仍一致
這類要求,通常比籠統地說「做得更有藝術感」更能產出好程式碼與更有意識的美學結果。
常見的安裝與導入阻礙
最常見的摩擦點通常是:
- 期待它產出靜態圖片,而不是瀏覽器程式碼
- 只給風格類提示詞,沒有系統邏輯
- 太早要求太多控制項
- 沒有定義 seed 應該影響什麼
- 試圖過度貼近某位受版權保護的藝術家風格
如果你的使用情境有符合上述任何一點,建議先修正,再來評估這個技能是否好用。
algorithmic-art 技能 FAQ
algorithmic-art 適合初學者嗎?
適合,但前提是你願意閱讀簡單的 p5.js 程式碼並修改模板。如果你是完全新手,而且希望不經任何寫程式步驟就直接拿到成品,那它就沒那麼適合。模板確實降低了門檻,但不代表你可以完全不去理解參數、隨機性與渲染行為。
什麼時候該用 algorithmic-art,而不是一般提示詞?
當你想要的是:
- 可重複使用的程式碼
- 由不同 seed 產生的多組輸出
- 可探索的視覺系統
- 互動式控制
- 可分享、可調整的瀏覽器成品
這時就應該用 algorithmic-art。
如果你只需要一個快速的單張視覺概念,而且不在意底層生成器,那一般提示詞會更適合。
algorithmic-art 會直接生成靜態圖片嗎?
不會,至少那不是它的主要目標。它產出的是以程式碼驅動的藝術,通常會是互動式瀏覽器 sketch。你當然仍可以截取 frame 或匯出 render,但這個技能的核心是系統,而不是烘焙好的單張圖。
algorithmic-art for Image Generation 比較偏圖像生成,還是偏寫程式?
兩者都有,但路徑是先從程式開始。algorithmic-art for Image Generation 最適合的情境,是你的圖像本來就來自一個可重跑、可變化、可檢查的程序系統。如果你不希望工作流中出現程式碼,那這大概就不是你要的技能。
哪些視覺類型最適合?
最適合的風格包括:
- flow fields
- 粒子系統
- 由 noise 驅動的形體
- branching structures
- 參數式構圖
- 湧現式抽象視覺
它較不擅長的是寫實攝影感、角色插畫,或需要精準場景描繪的工作。
我一定要走哲學這一步嗎?
你可以跳過,但輸出品質通常會明顯下降。哲學步驟的價值,在於把一套連貫的美學系統,和一堆常見生成技巧拼盤區分開來。它能幫助代理挑出彼此真的屬於同一系統的規則。
如何改善 algorithmic-art 技能的使用效果
先強化哲學,不是先加更多效果
想提升 algorithmic-art 結果,最快的方式通常不是加特效,而是把主導概念寫得更準。一個好的哲學描述應該說清楚:
- 是哪些力量在塑造畫面
- 哪些變化是允許的
- 最重要的視覺張力是什麼
- 不同 seed 之間哪些部分應保持穩定
如果這些沒定義清楚,再多 shader、色盤或 UI 控制通常也幫助有限。
明確定義 seed 的行為
很多中等偏弱的結果,問題都出在 seed 設計太鬆散。你要明白告訴代理,seed 應該影響哪些面向:
- 構圖布局
- field direction
- 密度
- 色盤選擇
- 事件時序
- 分枝傾向
如果所有東西都同時大幅改變,輸出看起來就只會像隨機,而不是同一家族的變體。
參數少一點,但意義要更清楚
常見失敗模式之一,就是參數膨脹。建議優先使用 3–5 個真正有意義的控制項,例如:
particleCountnoiseScalecurveStrengthpaletteIndextrailAlpha
這樣 viewer 會更好操作,整個視覺系統也更容易理解。
明確要求「有變化,但仍保有視覺身份」
好的生成器,應該能產出彼此不同、但仍然像同一個家族的結果。你可以在提示詞中要求:
- 穩定的核心規則
- 受控的變化
- 不要讓不同 seed 崩成彼此無關的風格
光是這一條,常常就比一味要求更複雜,更能改善 algorithmic-art usage 的成果。
透過診斷視覺失敗點來迭代
拿到第一版輸出後,不要只說「再做得更好」。請直接指出哪裡失敗,例如:
- 「Too uniform; add local disruption.」
- 「Feels decorative, not emergent.」
- 「Seed changes are too subtle.」
- 「Palette dominates form.」
- 「Motion reads chaotic rather than tidal.」
這類回饋可以直接對應到程式修改方向,也會讓後續生成更有效。
不只改善 sketch,也要改善 viewer
附帶的 viewer 模板很重要,因為生成式藝術往往是透過探索來評估的。想提升 algorithmic-art skill 的輸出品質,請確認 viewer 至少支援:
- 快速切換 seed
- 清楚的參數分組
- 一鍵恢復預設值
- 足夠大的畫布空間,讓構圖能被讀清楚
- 控制區與作品區之間有乾淨明確的區隔
更好的 viewer,能讓你真正評估生成器,而不是只看單一 frame 瞎猜效果。
什麼情況下不該用 algorithmic-art
如果你的真正需求是以下任一種,就不要硬把 algorithmic-art 套上去:
- 精準的品牌插畫
- 字面式主題描繪
- 類照片輸出
- 非 JavaScript 的工作流
- 完全零程式碼的素材生成
這些情境下,改用其他技能或工具,通常會更快進入可交付狀態。
