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.tools
Use only on the Codex CLI for native image generation or image editing without an API key. Save final PNG files under ~/.cli-jaw/uploads, report web-ready absolute-path markdown, and send to Telegram or Discord only when explicitly requested.
tools
Ranked repository structure map via `cli-jaw map`. Use for codebase overview, structure map, symbol overview, unfamiliar codebase exploration, architecture orientation. Triggers: repo map, structure map, codebase overview, 와꾸, project structure, unfamiliar code.
tools
cli-jaw Design workspace: create, preview, run, and export design pages from the right sidebar. Covers panel UX, direct-write workflow, artifact lifecycle, wireframe generation, design system, and Open Design adapter.
development
MUST USE for infrastructure and delivery work — container builds, deploy pipelines, Kubernetes, Infrastructure as Code, SRE foundations, edge/serverless, ML infrastructure. Triggers: Dockerfile, K8s manifests, CI/CD pipeline, Terraform/IaC, release/deploy, devops/infra/deploy or release_cd task_tags.