Duration: 2 h 30 min.
Focus: Translating visual rhythm and motion into procedural logic through p5.js, then extending those human-coded aesthetics into AI-generated video interpretations, inspired by Rafael Rozendaal’s Internet (2002).
Mode: Browser-based (p5.js Web Editor + Replicate) — pairs or small groups of 2–3.
| Block | Activity | Duration |
|---|---|---|
| 1 | Foundations: Net Art & Motion Logic | 20 min |
| 2 | VibeCoding Demo & Warm-up | 15 min |
| Break | 10 min | |
| 3 | Team VibeCoding Exercise | 30 min |
| 4 | AI Video Interpretation | 15 min |
| 5 | Showcase & Reflection | 20 min |
| Total | 2 h 30 min |
Demonstrate a minimal sketch:
let dots = [];
function setup() {
createCanvas(600, 600);
for (let i = 0; i < 80; i++)
dots.push(createVector(random(width), random(height)));
}
function draw() {
background(0, 10);
stroke(255);
for (let p of dots) {
p.x += sin(frameCount * 0.01 + p.y * 0.01);
p.y += cos(frameCount * 0.01 + p.x * 0.01);
point(p.x, p.y);
}
}
Show how adjusting stroke(), sin() speed, or number of dots changes the vibe.
Invite students to suggest:
“Make it calmer.” “Add chaos.” “Shift the color toward neon.” “Fade more slowly.”
Record the effect of each description → numeric change.
Objective: Recreate the feel of Internet through parameter manipulation, not replication.
Structure
Focus Areas
| Aspect | Prompt-style Guidance |
|---|---|
| Composition | “Like a constellation — sparse but connected.” |
| Motion | “Oscillate like breathing, not chaos.” |
| Color | “Digital glow on black — cold light.” |
| Tempo | “Start slow, accelerate, then stillness.” |
Output: looping p5 sketch + saved first and last frames.
Goal: Use AI to “interpret” the transition between the two frames.
Steps
saveFrame() or screenshot).👉 Full step-by-step setup, p5 account instructions, and submission details:
VibeCoding Class Flow
Gallery Format
Discussion Prompts
Optional Audience Highlights