algorithmic-art/SKILL.md
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
npx skillsauth add lidge-jun/cli-jaw-skills algorithmic-artInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Algorithmic philosophies are computational aesthetic movements expressed through code. Output: .md (philosophy), .html (interactive viewer), .js (generative algorithm).
Two-step process:
.md).html + .js)Create a philosophy for a generative art movement — not static images or templates.
What to create: An algorithmic worldview expressed through computational processes, emergent behavior, mathematical beauty, seeded randomness, noise fields, organic systems, particles, flows, fields, forces, and parametric variation.
Relationship to user input: The user's request is a foundation, not a constraint. Use it as a starting point for creative freedom.
Name the movement (1–2 words): e.g. "Organic Turbulence", "Quantum Harmonics"
Articulate the philosophy (4–6 paragraphs) covering:
Guidelines:
See references/philosophy-examples.md for condensed examples.
Output the philosophy as a .md file.
Before implementing, identify the subtle conceptual thread from the original request.
The concept is a niche reference embedded within the algorithm — not literal, always sophisticated. Someone familiar with the subject feels it intuitively; others simply experience a masterful composition. Think of a jazz musician quoting another song through algorithmic harmony.
The algorithmic philosophy provides the computational language. The conceptual seed provides the soul — quiet DNA woven into parameters, behaviors, and emergence patterns.
With philosophy and conceptual seed established, express them through code.
Before writing any HTML:
templates/viewer.html using the Read toolFixed (keep exactly as-is):
Variable (customize per artwork):
setup/draw/classes)params objectSeeded Randomness (Art Blocks Pattern):
let seed = 12345;
randomSeed(seed);
noiseSeed(seed);
Same seed always produces identical output.
Parameters — follow the philosophy:
let params = {
seed: 12345,
// Parameters that control YOUR algorithm:
// Quantities, scales, probabilities, ratios,
// angles, thresholds — whatever the system needs
};
Design parameters around tunable system properties, not "pattern types."
Algorithm — express the philosophy:
Let the philosophy dictate what to build. Think "how to express this philosophy through code?" rather than "which pattern should I use?"
Canvas Setup:
function setup() {
createCanvas(1200, 1200);
}
function draw() {
// Generative algorithm — static (noLoop) or animated
}
Build the sidebar following templates/viewer.html structure:
control-group per parameter:
<div class="control-group">
<label>Parameter Name</label>
<input type="range" id="param" min="..." max="..." step="..." value="..."
oninput="updateParam('param', this.value)">
<span class="value-display" id="param-value">...</span>
</div>
All parameters need UI controls. All controls update in real-time.
.md filetemplates/viewer.htmlThe HTML embeds everything inline: p5.js (CDN), algorithm, parameter controls, UI. Works in claude.ai artifacts or any browser with no setup.
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.7.0/p5.min.js"></script>
<style>/* All styling inline */</style>
</head>
<body>
<div id="canvas-container"></div>
<div id="controls"><!-- Parameter controls --></div>
<script>/* All p5.js code inline */</script>
</body>
</html>
Seed navigation is built into every artifact (prev/next/random buttons). For highlighted variations:
The algorithm stays consistent; each seed reveals different facets of its potential.
templates/viewer.html — Starting point for all HTML artifacts. Comments mark fixed vs variable sections.templates/generator_template.js — Reference for p5.js best practices: parameter organization, seeded randomness, class structure. Embed algorithms inline in HTML (not as separate .js files).references/philosophy-examples.md — Condensed philosophy examples for reference.development
Native Web UI structured renderer schemas for compose-block drafts, search-results cards, dataframe tables, chart-json charts, and diff output
tools
Unified search hub. Route any web/real-time/X lookup through a 4-tier escalation: built-in web search → cli-jaw browser CDP → progrok Grok OAuth → web-ai (Grok Expert / GPT Pro). Use for: search, 검색, web search, latest news, real-time info, X/Twitter, fact lookup, deep research.
development
UI/UX intent discovery, design vocabulary, product personalities, UX state patterns, typography line break judgment, favicon/product logo design, and logo trust section design. Use when user design direction is vague, when building onboarding/empty/error states, when setting up favicons or product logos, or when referencing a product aesthetic.
development
Canonical owner of module boundary rules, circular dependency detection/prevention, implicit coupling taxonomy, barrel/re-export discipline, and boundary-only defensive programming. Referenced by dev, dev-code-reviewer, dev-backend, dev-frontend stubs.