Use p5.js/canvas for local procedural character effects: particles, weather, squash/stretch, walk cycles, and environmental motion.
SkillScore82Maintained
Automatic
◆Frontend / UI pack
Last verified 8/17/2026
What it changes
Passed 18 of 22 test cases with the skill, and 15 of 22 without it.
Without skill68%
With skill82%
Checks it passed that the model alone missed
Calls createCanvas(1920, 1080) inside the setup function
Defines canvas dimensions once in setup() and renders frame updates inside draw()
Computes scale transformation directly from time-based sine or cosine expressions
and 1 more in the full report
4 fixed14 passed either way3 still failing1 broke
Pass-rate lift
+14 pp
Tokens
-18%
Agent turns
0%
Response time
-30%
Model gemini-3.6-flashMeasured 8/17/2026v118 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 4
Prompt
I am creating a 2D character helper background effect where a mascot gently bobs up and down on a canvas. What is the standard setup and loop structure for achieving this character-supporting motion without losing frame determinism?
What was checked, without and with the skill
Checked
Without skill
With skill
Uses trigonometric sine or cosine functions driven by millis() or time inside draw() to offset the vertical position
Passed
Passed
Defines canvas dimensions once in setup() and renders frame updates inside draw()
Missed
Passed
case-03 · gemini-3.6-flash · 8/17/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md41 linessingle file
Canvas Procedural Animation
Use this skill when p5.js or Canvas is used for character-supporting motion:
rain, snow, leaves, feathers, ambient particles, squash/stretch, or procedural
walk cycles.
Proven Pattern
p5.js runs setup once and redraws continuously through draw(). Keep animation
state deterministic from time/frame values when rendering previews.
function setup() {
createCanvas(1920, 1080);
}
function draw() {
const t = millis() / 1000;
clear();
drawCharacter(width / 2, height / 2 + sin(t * 8) * 8);
}
Use For
Particle/weather overlays.
Environmental motion.
Simple procedural bodies.
Effects that do not need individually authored SVG parts.
Avoid For
Complex facial acting where SVG/layered rig parts are easier to inspect.
Final renders that need exact frame determinism unless the runtime exposes
frame-index control.