From asi
Generates algorithmic art using p5.js with seeded randomness, Perlin noise, flow fields, particle systems, recursive trees, and color palettes for reproducible results.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asi:algorithmic-artThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create generative art with code using p5.js, featuring seeded randomness for reproducibility.
Create generative art with code using p5.js, featuring seeded randomness for reproducibility.
// Use seed for reproducible results
function setup() {
randomSeed(42);
noiseSeed(42);
}
// Perlin noise for organic patterns
let x = noise(frameCount * 0.01) * width;
let y = noise(frameCount * 0.01 + 1000) * height;
let cols, rows, scale = 20;
let particles = [];
let flowfield;
function setup() {
createCanvas(800, 800);
cols = floor(width / scale);
rows = floor(height / scale);
flowfield = new Array(cols * rows);
for (let i = 0; i < 1000; i++) {
particles.push(new Particle());
}
}
function draw() {
let yoff = 0;
for (let y = 0; y < rows; y++) {
let xoff = 0;
for (let x = 0; x < cols; x++) {
let angle = noise(xoff, yoff) * TWO_PI * 2;
let v = p5.Vector.fromAngle(angle);
flowfield[x + y * cols] = v;
xoff += 0.1;
}
yoff += 0.1;
}
particles.forEach(p => {
p.follow(flowfield);
p.update();
p.show();
});
}
function branch(len) {
line(0, 0, 0, -len);
translate(0, -len);
if (len > 4) {
push();
rotate(PI / 6);
branch(len * 0.67);
pop();
push();
rotate(-PI / 6);
branch(len * 0.67);
pop();
}
}
class Particle {
constructor() {
this.pos = createVector(random(width), random(height));
this.vel = createVector(0, 0);
this.acc = createVector(0, 0);
this.maxSpeed = 4;
}
follow(flowfield) {
let x = floor(this.pos.x / scale);
let y = floor(this.pos.y / scale);
let force = flowfield[x + y * cols];
this.acc.add(force);
}
update() {
this.vel.add(this.acc);
this.vel.limit(this.maxSpeed);
this.pos.add(this.vel);
this.acc.mult(0);
}
show() {
stroke(255, 5);
point(this.pos.x, this.pos.y);
}
}
// Define palette
const palette = ['#264653', '#2a9d8f', '#e9c46a', '#f4a261', '#e76f51'];
// Random from palette
fill(random(palette));
noLoop() for static pieces, save with save('art.png')blendMode(ADD)This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
algorithms: 19 citations in bib.duckdbThis skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826
The skill participates in triads satisfying:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.
npx claudepluginhub plurigrid/asi --plugin asiCreates generative art using noise functions, flow fields, particle systems, fractals, L-systems, and procedural generation in JavaScript with p5.js. Useful for creative coding and mathematical visualizations.
Creates algorithmic art using p5.js with seeded randomness, noise fields, particle systems, and interactive parameter exploration. Invoke when users request generative art or code-based art creation.
Creates algorithmic art philosophies in Markdown and interactive p5.js sketches (HTML/JS) for generative art, flow fields, particle systems using seeded randomness.