algorithmic-art (Anthropic)
使用 p5.js 創作原創生成藝術,支援固定隨機種子與互動式參數探索。
algorithmic-art:所有組別都通過規則檢查(4.5 / 4.8 / 5.0),但只有技能與一句話提示會寫出真正的創作理念文件;技能會多花 2 倍的 Token
Codex CLI · gpt-6-astra
22.5 / 30
相對未使用技能的提升:+0.48 · 視情況推薦 · 18 次執行
視情況推薦:提升幅度 +0.48 低於 +1.0。推薦條件為總分至少 22/30、產出品質至少 3.5、提升幅度至少 +1.0。
SOTA
透過使用 Codex 測試。
涵蓋 Codex, Claude Code
Codex CLI 0.166(SOTA 等級):18 次評分執行。依我們的等級規則,在這裡通過也涵蓋 Claude Code;但這不代表第二等級的結果。
分數
每個維度為 0 到 5 分,六個維度相加即為滿分 30 的總分。每個維度都是 5 分最好。成本 5 分代表便宜又快速;安裝 5 分代表容易安裝。
- 觸發可靠性
- 5.0
- 相對未使用技能的提升
- 2.5
- 產出品質
- 5.0
- Token 與時間成本
- 2.0
- 安裝與可攜性
- 4.0
- 安全性
- 4.0
安全審查
安全靜態掃描:0 CRITICAL / 0 HIGH / 0 MEDIUM。人工審查:可安全安裝。掃描結果乾淨,不代表技能一定安全。
安裝
npx skills@latest add anthropics/skills --skill algorithmic-art
固定 Commit: ca45fc496a3436251f191354091d557da31c15b5
測試日期: 2026-11-02
我們測了什麼
- 流場藝術 — 用 p5.js 創作生成藝術:數千個粒子的流場。讓作品可以探索(可設定種子、可調整)。以檔案形式交付到目前資料夾。
- 粒子系統藝術 — 用 p5.js 創作一件演算法藝術作品:粒子繞著數個吸引子運行並留下軌跡。可設定種子且可互動。檔案放在目前資料夾。
- 開放式命題 — 以潮池為靈感,用 p5.js 創作一件原創的演算法藝術作品,具備可設定種子的隨機性與參數控制。檔案放在目前資料夾。
優點
- 技能即使未被點名也會被採用:6/6 次實驗組執行都讀取了技能檔案。
- 使用技能後的絕對品質很高:5.0 / 5。
缺點
- Token 用量是未使用技能的 1.99 倍。
- 測試注意事項:p5 函式庫從 CDN 載入,關閉網路的沙箱無法連上,因此產生的頁面只以規則檢查,並未實際渲染。
- 每個任務的每個組別 n=2;約 1 分以內的差異屬於雜訊。
評測
Codex CLI 0.166(gpt-6-astra,低推理)在專用的 Windows 測試電腦上執行,每次執行都使用全新的暫存專案與暫存 HOME/TMPDIR/快取;技能已安裝(實驗組)、未安裝(對照組),或未安裝但把技能的核心要求壓縮成一句話附加到提示詞(一句話提示組)。每個任務的每個組別執行 2 次,關閉網路,封鎖 /tmp 寫入。提示詞從未提及技能(除下方註明的措辭外)。三個任務:數千個粒子的流場、軌道/諧波作品,以及開放式的「潮池」命題;全都要求使用 p5.js,並以檔案形式交付可設定種子且可調整的產出。技能組使用與對照組相同的提示詞(技能會依描述比對被採用)。一句話提示組多加一句:先寫一段簡短的演算法理念,再寫主要為生成式、可設定種子、並在 HTML 檢視器中提供參數控制的程式碼。
三組對照
| 組別 | 平均分數(0-5) | 每次執行 Token 用量 |
|---|---|---|
| 未使用技能 | 4.52 | 115k |
| 一句話提示 | 4.76 | 145k |
| 使用技能 | 5.0 | 229k |
以 Codex CLI 執行 18 次,採規則式檢查評分,不經 LLM 評審。總分 22.5 / 30,評級為 視情況推薦。
揭露事項:p5 程式庫是從 CDN 載入,關閉網路的沙箱無法連線,因此產生的頁面只以規則檢查,並未實際渲染。
判定:視情況而定(22.5 / 30)。 來源:anthropics/skills,skills/algorithmic-art,固定於提交 ca45fc4。安裝:npx skills@latest add anthropics/skills --skill algorithmic-art。授權條款: Apache-2.0 / Anthropic 條款(請見技能內的 LICENSE.txt)。
這是什麼
anthropics/skills 的 algorithmic-art 技能:一套用 p5.js 創作生成式藝術的兩步驟流程:先寫一份「演算法哲學」(一個有名稱的美學流派,4-6 段),再把它表達成帶種子的 p5.js 程式碼,放進以技能內 viewer.html 與 generator_template.js 打造的互動式 HTML 檢視器。授權條款見 LICENSE.txt(此技能採 Apache 式授權)。
我們如何測試
在專用 Windows 測試 PC 上使用 Codex CLI 0.166(gpt-6-astra,低推理),每次執行都使用全新的暫存專案與暫存 HOME/TMPDIR/快取,安裝技能(實驗組)、未安裝(對照組),或未安裝但將技能核心要求濃縮成一句話附加在提示詞後(一句話提示組),每個任務每組執行 2 次,網路關閉,/tmp 寫入封鎖。提示詞從未提及技能(以下註明的措辭除外)。
三項任務:數千個粒子的流場、軌道/諧波作品,以及開放的「潮池」命題,全都要求以 p5.js 製作、可設種子且可調整的檔案輸出。技能組使用與對照組相同的提示詞(技能會依描述比對自動觸發)。一句話提示組多加一句:先寫一段簡短的演算法哲學,再寫出以生成式演算法為主、帶種子、並在 HTML 檢視器中提供參數控制的程式碼。
- 流場藝術 — 用 p5.js 創作生成式藝術:數千個粒子的流場。讓作品可探索(可設種子、可調整)。以檔案形式交付到目前資料夾。
- 粒子系統藝術 — 用 p5.js 創作一件演算法藝術作品:粒子繞著數個吸引子運行並留下軌跡。可設種子且可互動。檔案放在目前資料夾。
- 開放命題 — 以潮池為靈感,用 p5.js 創作一件原創的演算法藝術作品,具備可設種子的隨機性與參數控制。檔案放在目前資料夾。
評分方式為程式化檢查(隱藏測試/預埋問題召回/限制條件檢查/視情況進行渲染與 OCR),每次執行 0–5 分。沒有任何 LLM 評審決定分數。
結果
提供給第三組的一句話提示:「先寫一段簡短的演算法哲學(一個有名稱的美學流派),再把它表達成 p5.js 程式碼:以生成式演算法為主、使用帶種子的隨機產生器,讓同一個種子能重現同一件作品,並在互動式 HTML 檢視器中提供參數控制。」
| 任務 | 對照組分數 | 一句話提示 | 使用技能 | 對照組 Token 數 | 一句話提示 Token 數 | 使用技能 Token 數 | 技能讀取 |
|---|---|---|---|---|---|---|---|
| t1-flow | 5.0 | 5.0 | 5.0 | 140k | 159k | 234k | 2/2 |
| t2-orbits | 4.29 | 4.29 | 5.0 | 80k | 126k | 248k | 2/2 |
| t3-original | 4.29 | 5.0 | 5.0 | 124k | 148k | 203k | 2/2 |
平均分數:未使用技能 4.52,使用技能 5.0(差異 +0.48)。每次執行 Token 數:115k 對 229k(1.99 倍);時間 181 秒對 165 秒。一句話提示組:4.76(技能相較一句話提示的增益:+0.24;一句話提示相較無技能的增益:+0.24);一句話提示每次執行 145k Token,因此技能的成本是一句話提示的 1.58 倍。
實際發生了什麼
- 對照組本來就能做出基本盤:檢視器 HTML、帶種子的 sketch 與滑桿,6/6 次執行都做到。分數差距幾乎都來自哲學檢查:對照組只寫了 README(126-226 字),有 2 次未達 150 字門檻,且 6 次對照組執行都沒有產出獨立的哲學檔案。平均:對照組 4.52、一句話提示 4.76、技能 5.00。
- 技能讓哲學步驟穩定可靠:6/6 次實驗組執行都寫了 philosophy.md(410-520 字),一句話提示組也 6/6 寫了(290-460 字)。18 次執行中唯一的種子失敗,是一次一句話提示組執行(t2-orbits),完全沒用 randomSeed/noiseSeed。
- 技能會多產出未被要求的內容:匯出/儲存程式碼(實驗組檢視器中有 5、8、3 處 download/saveCanvas 引用,對照組只有 1 處)、額外檔案(每次執行 8.3 個檔案,對照組 4 個),以及 2 次執行中的輔助腳本(build_art.py、verify.cjs),用來把範本拼接起來。
- 成本:技能每次執行 229k Token,對照組 115k、一句話提示 145k,約 2.0 倍與 1.6 倍。實驗組在 6/6 次執行中都在未被指示的情況下讀了技能。
- 除了一次一句話提示組執行外,各組都從 CDN 載入 p5.js,因此在離線沙箱中無法渲染任何作品;畫面的品質並未比較。
各面向分數
| 面向 | 分數 | 原因 |
|---|---|---|
| 1_輸出品質 | 5.0 | 使用技能時平均分數 5.00/5(程式化檢查,見各任務 表格)。 |
| 2_相較無技能的提升 | 2.48 | 相較未使用技能的 4.52,+0.48 分(每項任務 n=2;約 1 分以下 屬於雜訊)。 |
| 3_觸發 | 5.0 | 技能檔案在 6/6 次實驗組執行中被讀取。 |
| 4_指令可攜性 | 4 | SKILL.md 加上兩份範本;沒有腳本。篇幅長(300 行)但 自成一體。 |
| 5_效率 | 2 | 1.99 倍 Token(每次執行 229k 對 115k)與 0.91 倍時間(165 秒對 181 秒)。 |
| 6_安全性與衛生 | 4 | 掃描器無發現(0/0/0)。檢視器範本在開啟時會從網路載入 p5.js 與 Google Fonts。 |
這項測試的限制
- 僅有規則式檢查(檔案存在、種子函式、滑桿標記、字數);15 項加權檢查中有 14 項幾乎每次執行都通過,因此檢查集有天花板效應,無法替作品本身排名。
- 未渲染:p5.js 來自 CDN,離線沙箱會封鎖,因此沒有任何 sketch 在瀏覽器中跑過。
- 「哲學」檢查接受任何 150 字以上的 .md,所以冗長的 README 也能過關;此處另外計入獨立的哲學檔案(見發現)。
- 每項任務每組 n = 2:約 1 分以下的差異屬於雜訊。
- 規則式評分只能衡量檢查看得到的東西;無法判斷品味,也無法判斷結果是否為最佳解。
安全性
見 security.md。掃描:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:可安全執行(網路關閉的沙箱)。乾淨的掃描結果不能證明技能安全。
總結
這項技能能穩定產出雙部分交付物(具名哲學加上帶種子、可調整的檢視器)以及額外的匯出功能,但一句話指示就能在只花 60% Token 的情況下通過幾乎相同的檢查。若你想要那套確切的工作流程與風格,值得安裝;但這不是檢查能證明的品質躍進。
完整紀錄
執行日誌:algorithmic-art (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 欄位:任務、組-輪次、得分(0-5)、token、秒、通過的檢查、代理開啟的 skill 檔案。 t1-flow control-1: 得分 5.0, token 94113, 秒 128.8, 檢查 5/5, 未開啟 t1-flow control-2: 得分 5.0, token 187333, 秒 213.0, 檢查 5/5, 未開啟 t1-flow oneliner-1: 得分 5.0, token 171520, 秒 171.9, 檢查 5/5, 未開啟 t1-flow oneliner-2: 得分 5.0, token 146539, 秒 224.4, 檢查 5/5, 未開啟 t1-flow treatment-1: 得分 5.0, token 235460, 秒 165.8, 檢查 5/5, 開啟 algorithmic-art t1-flow treatment-2: 得分 5.0, token 233310, 秒 163.5, 檢查 5/5, 開啟 algorithmic-art t2-orbits control-1: 得分 3.57, token 59459, 秒 160.7, 檢查 4/5, 未開啟 t2-orbits control-2: 得分 5.0, token 101021, 秒 168.0, 檢查 5/5, 未開啟 t2-orbits oneliner-1: 得分 5.0, token 107085, 秒 225.1, 檢查 5/5, 未開啟
18 次執行、3 個產出檔案
範例產出
SOTA · 装了 skill:index.html(t1-flow,第 1 次,Codex)
<!DOCTYPE html> <!-- THIS IS A TEMPLATE THAT SHOULD BE USED EVERY TIME AND MODIFIED. WHAT TO KEEP: ✓ Overall structure (header, sidebar, main content) ✓ Anthropic branding (colors, fonts, layout) ✓ Seed navigation section (always include this) ✓ Self-contained artifact (everything inline) WHAT TO CREATIVELY EDIT: ✗ The p5.js algorithm (implement YOUR vision) ✗ The parameters (define what YOUR art needs) ✗ The UI controls (match YOUR parameters) Let your philosophy guide the implementation. The world is your oyster - be creative! --> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tidal Memory ? Particle Flow</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.7.0/p5.min.js"></script> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Lora:wght@400;500&display=swap" rel="stylesheet"> <style> /* Anthropic Brand Colors */ :root { --anthropic-dark: #141413; --anthropic-light: #faf9f5; --anthropic-mid-gray: #b0aea5; --anthropic-light-gray: #e8e6dc; --anthropic-orange: #d97757; --anthropic-blue: #6a9bcc; --anthropic-green: #788c5d; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Poppins', sans-serif; background: linear-gradient(135deg, var(--anthropic-light) 0%, #f5f3ee 100%); min-height: 100vh; color: var(--anthropic-dark); } .container { display: flex; min-height: 100vh; padding: 20px; gap: 20px; } /* Sidebar */ .sidebar { width: 320px; flex-shrink: 0; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); padding: 24px; border-radius: 12px; box-shadow: 0 10px 30px rgba(20, 20, 19, 0.1); overflow-y: auto; overflow-x: hidden; } .sidebar h1 { font-family: 'Lora', serif; font-size: 24px; font-weight: 500; color: var(--anthropic-dark); margin-bottom: 8px; } .sidebar .subtitle { color: var(--anthropic-mid-gray); font-size: 14px; margin-bottom: 32px; line-height: 1.4; } /* Control Sections */ .control-section { margin-bottom: 32px; } .control-section h3 { font-size: 16px; font-weight: 600; color: var(--anthropic-dark); margin-bottom: 16px; display: flex; align-items: center; gap: 8px; } .control-section h3::before { content: '•'; color: var(--anthropic-orang [... excerpt: first 3200 of 20646 characters]