algorithmic-art (Anthropic)
p5.js로 시드 기반 난수와 대화형 매개변수 탐색을 활용해 독창적인 생성 예술을 만듭니다.
algorithmic-art: 모든 그룹이 규칙 검사를 통과했지만(4.5 / 4.8 / 5.0), 실제 철학 문서를 작성한 것은 스킬 사용군과 한 문장 프롬프트군뿐이며, 스킬 사용 시 토큰을 2배 사용합니다.
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
- 토큰 및 시간 비용
- 2.0
- 설치 및 이식성
- 4.0
- 안전성
- 4.0
보안 리뷰
안전정적 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 수동 검토: 설치 안전. 스캔이 깨끗하다고 해서 스킬이 안전하다는 증거는 아닙니다.
설치
npx skills@latest add anthropics/skills --skill algorithmic-art
고정 커밋: ca45fc496a3436251f191354091d557da31c15b5
테스트일: 2026-11-02
테스트한 과제
- 플로 필드 아트 — p5.js로 생성 예술을 만드세요: 수천 개 입자의 플로 필드입니다. 탐색 가능하게(시드 고정, 조절 가능) 만드세요. 현재 폴더에 파일로 전달하세요.
- 입자 시스템 아트 — p5.js로 알고리즘 아트 작품을 만드세요: 여러 어트랙터 주위를 도는 입자들이 궤적을 남깁니다. 시드를 고정하고 상호작용할 수 있어야 합니다. 현재 폴더에 파일로 전달하세요.
- 열린 브리프 — 조수 웅덩이에서 영감을 받은 독창적인 알고리즘 아트 작품을 p5.js로 만드세요. 시드 기반 난수와 파라미터 조절 기능을 포함하세요. 현재 폴더에 파일로 전달하세요.
장점
- 스킬 이름을 언급하지 않았는데도 적용되었습니다. 스킬 사용군 실행 6/6회에서 스킬 파일을 읽었습니다.
- 스킬 사용 시 높은 절대 품질: 5.0/5.
단점
- 스킬 없이보다 토큰을 1.99배 사용합니다.
- 테스트 참고: p5 라이브러리를 CDN에서 불러오는데 네트워크가 꺼진 샌드박스에서는 접근할 수 없어, 생성된 페이지는 규칙으로만 검사했고 렌더링하지는 않았습니다.
- 과제·그룹당 n=2이며, 약 1점 미만의 차이는 노이즈입니다.
리뷰
Codex CLI 0.166 (gpt-6-astra, low reasoning)을 전용 Windows 테스트 PC에서 실행했고, 실행마다 새 임시 프로젝트와 임시 HOME/TMPDIR/캐시를 사용했습니다. 스킬 설치(스킬 사용군), 미설치(대조군), 미설치 상태에서 스킬의 핵심 요구사항만 한 문장으로 압축해 프롬프트에 덧붙인 경우(한 문장 프롬프트군)로 나눴으며, 과제·그룹당 2회씩 실행했습니다. 네트워크는 끄고 /tmp 쓰기는 차단했습니다. 프롬프트에는 스킬 이름을 언급하지 않았습니다(아래에 적은 경우 제외). 과제는 수천 개 입자의 플로 필드, 궤도·하모닉 작품, '조수 웅덩이'를 소재로 한 열린 브리프 세 가지이며, 모두 p5.js를 사용하고 시드를 고정하며 조정 가능한 결과물을 파일로 만들도록 요청했습니다. 스킬 사용군은 대조군과 같은 프롬프트를 사용합니다(스킬은 설명이 일치해 자동으로 적용됩니다). 한 문장 프롬프트군에는 '먼저 짧은 알고리즘 철학을 쓰고, 이어서 대부분 생성적이고 시드가 고정되며 HTML 뷰어에서 파라미터를 조절할 수 있는 코드를 작성하라'는 문장을 추가했습니다.
3개 그룹 비교
| 그룹 | 평균 점수 (0-5) | 실행당 토큰 |
|---|---|---|
| 스킬 없음 | 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로 제너레이티브 아트를 만드는 2단계 절차를 제시합니다. 먼저 '알고리즘 철학'(이름 붙인 미학 운동, 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 심사자는 없습니다.
결과
세 번째 군에 전달한 한 문장 프롬프트: "먼저 짧은 알고리즘 철학(이름 붙인 미학 운동)을 쓰고, 대부분이 생성 알고리즘이며 시드 기반 난수 생성기를 사용해 같은 시드로 같은 작품이 재현되고 대화형 HTML 뷰어에 매개변수 조절 기능을 노출하는 p5.js 코드로 표현하세요."
| 작업 | 대조군 점수 | 한 문장 프롬프트 | 스킬 사용 | 대조군 토큰 | 한 문장 프롬프트 토큰 | 스킬 사용 토큰 | 스킬 읽음 |
|---|---|---|---|---|---|---|---|
| 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). 실행당 토큰: 115k 대 229k(1.99배), 시간: 181초 대 165초. 한 문장 프롬프트 군: 4.76(한 문장 프롬프트 대비 스킬의 이득 +0.24, 스킬 없음 대비 한 문장 프롬프트의 이득 +0.24). 한 문장 프롬프트의 실행당 토큰은 145k이므로 스킬은 한 문장 프롬프트의 1.58배 비용을 씁니다.
무슨 일이 있었나
- 대조군도 기본은 이미 갖추고 있었습니다. 6/6회 실행에서 뷰어 HTML, 시드가 적용된 스케치, 슬라이더를 만들었습니다. 점수 차이는 거의 전부 '철학' 검사에서 나왔습니다. 대조군은 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를 전혀 사용하지 않았습니다.
- 스킬은 요청하지 않은 산출물도 추가했습니다. 내보내기/저장 코드(스킬 사용군의 뷰어에서 download/saveCanvas 참조가 각각 5, 8, 3회, 대조군은 1회), 추가 파일(실행당 8.3개, 대조군 4개), 그리고 2회 실행에서는 템플릿을 이어 붙이는 도우미 스크립트(build_art.py, verify.cjs)까지 만들었습니다.
- 비용: 스킬 사용 시 실행당 229k 토큰으로 대조군 115k, 한 문장 프롬프트 145k의 약 2.0배, 1.6배입니다. 스킬 사용군은 따로 지시받지 않고도 6/6회 실행에서 스킬을 읽었습니다.
- 한 문장 프롬프트 군의 한 실행을 제외한 모든 군이 p5.js를 CDN에서 불러왔기 때문에 오프라인 샌드박스에서는 어떤 작품도 렌더링할 수 없었습니다. 그림의 품질은 비교하지 않았습니다.
항목별 점수
| 항목 | 점수 | 근거 |
|---|---|---|
| 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와 템플릿 2개, 스크립트는 없습니다. 300줄로 길지만 자체 완결적입니다. |
| 5. 효율성 | 2 | 토큰 1.99배(실행당 229k 대 115k), 시간 0.91배(165초 대 181초). |
| 6. 안전성·위생 | 4 | 스캐너 이상 없음(0/0/0). 뷰어 템플릿은 열 때 p5.js와 Google Fonts를 네트워크에서 가져옵니다. |
이 테스트의 한계
- 규칙 기반 검사만 사용했습니다(파일 존재, 시드 함수, 슬라이더 마크업, 단어 수). 가중치가 있는 검사 15개 중 14개를 거의 모든 실행이 통과해 검사 집합에 천장 효과가 있으며, 작품 자체의 순위는 매길 수 없습니다.
- 렌더링 없음: p5.js를 CDN에서 가져오는데 오프라인 샌드박스가 이를 차단해 어떤 스케치도 브라우저에서 실행하지 못했습니다.
- '철학' 검사는 150단어 이상의 .md 파일이면 무엇이든 통과시키므로 긴 README도 통과할 수 있습니다. 여기서는 별도 철학 파일도 세는 방식으로 보완했습니다(결과 참조).
- 작업·군당 n = 2: 약 1점 미만의 차이는 노이즈입니다.
- 규칙 기반 채점은 검사가 볼 수 있는 것만 측정합니다. 취향이나 결과가 최선인지는 판단할 수 없습니다.
보안
security.md를 참조하세요. 스캔: CRITICAL 0 / HIGH 0 / MEDIUM 0. 판정: 실행해도 안전(네트워크 차단 샌드박스). 깨끗한 스캔 결과가 스킬의 안전성을 증명하지는 않습니다.
결론
이 스킬은 2부 구성 산출물(이름 붙인 철학 + 시드 기반의 조정 가능한 뷰어)과 추가 내보내기 기능을 안정적으로 만들어 냅니다. 다만 한 문장 지시만으로도 토큰의 60%로 거의 같은 검사를 통과합니다. 바로 이 워크플로와 스타일이 필요할 때 설치할 만하며, 검사로 입증할 수 있는 품질 도약은 아닙니다.
트랜스크립트
실행 로그: algorithmic-art (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 열: 작업, 그룹-회차, 점수(0-5), 토큰, 초, 통과한 검사, 에이전트가 연 스킬 파일. t1-flow control-1: 점수 5.0, 토큰 94113, 초 128.8, 검사 5/5, 연 파일 없음 t1-flow control-2: 점수 5.0, 토큰 187333, 초 213.0, 검사 5/5, 연 파일 없음 t1-flow oneliner-1: 점수 5.0, 토큰 171520, 초 171.9, 검사 5/5, 연 파일 없음 t1-flow oneliner-2: 점수 5.0, 토큰 146539, 초 224.4, 검사 5/5, 연 파일 없음 t1-flow treatment-1: 점수 5.0, 토큰 235460, 초 165.8, 검사 5/5, 연 파일 algorithmic-art t1-flow treatment-2: 점수 5.0, 토큰 233310, 초 163.5, 검사 5/5, 연 파일 algorithmic-art t2-orbits control-1: 점수 3.57, 토큰 59459, 초 160.7, 검사 4/5, 연 파일 없음 t2-orbits control-2: 점수 5.0, 토큰 101021, 초 168.0, 검사 5/5, 연 파일 없음 t2-orbits oneliner-1: 점수 5.0, 토큰 107085, 초 225.1, 검사 5/5, 연 파일 없음
18회 실행, 아티팩트 3개
샘플 출력
SOTA · With the skill: index.html (t1-flow, run 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]