agentsclimarketplace

Webgl creative animator

Skill rakibulism/agent-skills-os/skills/webgl-creative-animator

Become an elite creative WebGL thinker — the mental framework, mathematical grounding, and technique library behind world-class generative/interactive graphics (Awwwards-tier sites, Shadertoy demos, GPU art installations). Covers systems-based thinking over keyframe animation, the five signature technique families (raymarched SDFs, GPGPU particle simulation, vertex noise displacement, post-processing, fluid dynamics), the required tech stack (GLSL, Three.js/R3F, vanilla WebGL2), and a daily training regimen. Use whenever the user wants to design an original WebGL/shader animation, is stuck thinking in DOM/CSS-keyframe terms instead of GPU-system terms, wants to build a creative-coding portfolio, or asks "how do I get good at this" for shader/particle/fluid work. Complements the design-engineer skill's Track 3 (de3-glsl-shaders) and Track 9 (webgl-motion-stack/wgl-*) reference files by supplying the conceptual model and the specific formulas those references assume.From its SKILL.md

Install
npx -y skills add rakibulism/agent-skills-os --skill webgl-creative-animator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.8 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

WebGL Creative Animator

WebGL removes the constraints that shape ordinary web animation (DOM elements, CSS transitions, a fixed set of easing curves). What replaces those constraints is not "more animation" — it's a different unit of work. In CSS you animate an element's properties over a timeline. In WebGL you write a system: a rule, applied per-pixel or per-particle, re-evaluated every frame, that produces motion as an emergent property rather than an authored one. Getting this shift wrong is the single most common reason technically-competent shader code still looks amateurish — the code runs, but it was designed like a tween.

The core reframe

Think in fields, not frames. A traditional animator asks "where is this object at t=2s?" A WebGL creative coder asks "what is the value of this property (color, displacement, velocity, density) at this point in space, given time and neighboring state?" Every technique below is a different answer to that question — a fragment shader is a function from (pixel, time) to color; a GPGPU particle system is a function from (particle, time, neighbor state) to position; a vertex displacement is a function from (vertex, time) to offset. See references/core-pillars.md for the full mental-model breakdown (systems vs. keyframes, vector-math intuition, "the world as data," and the art→code bridge with concrete chiaroscuro/color-theory-to-GLSL translations).

The five technique families

Route to the matching reference file the moment the user's ask matches a pattern:

Signal in the askTechniqueReference
"morphing blob," "liquid metaball," "impossible geometry," "infinite fractal"Raymarching + Signed Distance Fieldsreferences/raymarching-sdf.md
"millions of particles," "cosmic dust," "interactive sand/smoke," "reacts to cursor at 60fps"GPU-driven particle simulation (FBO/GPGPU)references/gpgpu-particles.md
"ocean waves," "waving flag," "glitching hologram," "terrain forming/dissolving"Vertex displacement via noise fieldsreferences/vertex-displacement-noise.md
"cinematic depth of field," "chromatic aberration," "CRT effect," "neon bloom," "motion blur"Post-processing / screen-space effectsreferences/post-processing.md
"ink in water," "smoke trail," "watercolor blend," "turbulence warping type"Fluid dynamics (Navier–Stokes on a grid)references/fluid-dynamics.md

Each reference is self-contained: the underlying math, the correct GLSL/JS implementation pattern, the specific failure modes, and what to tune for a different visual result. Don't guess at the formulas from memory when one of these is loaded — use the reference; these techniques fail silently (wrong-looking but no error) when a constant or sign is off.

The stack, in dependency order

references/tech-stack.md covers this in depth, but the short version: GLSL is non-negotiable and the other two layers are conveniences on top of it.

[ Math foundations ]  →  [ Three.js / React Three Fiber ]  →  [ Vanilla WebGL / WebGL2 ]
 trig, vectors,            scene graph, camera, lighting,        raw gl.* API, custom
 matrices, dot/cross       R3F declarative wrapper                render pipelines
                                        │
                                        ▼
                          [ GLSL — vertex + fragment shaders ]
                           the actual creative surface; everything
                           above exists to get uniforms/attributes
                           into these two functions

Reach for vanilla WebGL2 only when Three.js's abstractions (its material system, its render-target management) get in the way of a custom multi-pass pipeline — not by default, and not to prove you can.

Daily practice

Talent here is trained, not innate — see references/daily-training.md for a concrete 30-minutes-a-day regimen: deconstructing Shadertoy/Awwwards pieces by deleting variables and observing what breaks, translating natural patterns (leaf veins, whirlpools, mud cracks) into pseudo-code before touching GLSL, and running single-effect "code sketches" instead of full-site builds.

What to avoid

  • Don't hand-roll noise functions from memory. A single wrong constant in a Perlin/Simplex implementation produces visible directional artifacts (axis-aligned banding) that are hard to diagnose. Use the canonical implementation in references/vertex-displacement-noise.md.
  • Don't run particle simulations on the CPU past a few thousand particles. If the ask implies "millions" or "60fps with cursor interaction," it's a GPGPU/FBO problem from the start, not an optimization to bolt on later.
  • Don't stack post-processing passes naively. Each full-screen pass is a full resolution texture read/write; bloom + DoF + chromatic aberration + film grain as four independent EffectComposer passes will tank mobile framerate — see the reference for combining passes.
  • Don't simulate real fluid dynamics when a curl-noise particle field would sell the same illusion for a fraction of the cost — reserve the Navier–Stokes grid solver for effects that need actual advection of a dye/density field (ink, smoke with visible density gradients), not for "a flowy particle look."

Related Skills — load automatically, don't wait to be asked by name

If the task is a full project rather than a single effect — a whole site, a component with performance/accessibility/deployment constraints, anything beyond "make this one visual" — also load design-engineer. That skill is the top-level orchestrator across all 9 curriculum tracks (taste, sketching, 3D math, physics, browser internals, architecture, performance, deployment, and the animation-library stack); this skill supplies the deep technique/formula layer its Track 3 (de3-glsl-shaders) and Track 9 (webgl-motion-stack) references assume but don't re-derive. Declared in frontmatter as related: [design-engineer] — call getRelatedSkills('webgl-creative-animator') to get this programmatically.

What ships with it: 8 files

66.3 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.