Research, Design & Development
Explore my works  here

Creative coding animation techniques span math, physics, generative art, and real-time graphics.


Trigonometric Motion (Oscillation & Loops)

Core idea: Use sin() and cos() for smooth periodic motion.

Common uses

  • Floating UI elements
  • Orbital motion
  • Waveforms
  • Lissajous curves
  • Loopable animations

Example (JS):

const x = centerX + Math.cos(time) * radius;
const y = centerY + Math.sin(time) * radius;

GLSL:

float wave = sin(uv.x * 10.0 + uTime);

Why it’s powerful:

  • Perfect for seamless loops
  • Cheap computation
  • Predictable motion

Perlin / Simplex Noise (Organic Motion)

Core idea: Replace predictable sine waves with controlled randomness.

Used for:

  • Flow fields
  • Smoke / fog
  • Terrain
  • Wavy distortions
  • Blob animations
  • Camera drift

Concept:

x += noise(x * scale, y * scale, time) * amplitude;

In shaders:

float n = snoise(vec3(uv * 2.0, uTime));

Why it’s powerful:

  • Natural motion
  • Infinite variation
  • Smooth randomness (not jittery)

You’ve already leaned toward real Perlin noise in your Three.js experiments — this is where creative coding really shines.


Easing Functions (Motion Design Feel)

Core idea: Map linear time into expressive motion.

Instead of:

position = start + progress * distance;

Use:

progress = easeInOutCubic(t);

Common easing:

  • easeInQuad
  • easeOutExpo
  • easeInOutCubic
  • spring-based motion

Essential for:

  • UI animation
  • Scroll-based motion
  • Cinematic camera moves

Physics-Based Animation

Core idea: Simulate forces instead of scripting positions.

Techniques:

  • Verlet integration
  • Springs & dampers
  • Gravity fields
  • Collision systems
  • Boids (flocking)

Example:

velocity += force;
position += velocity;
velocity *= 0.98; // friction

Best for:

  • Particle systems
  • Cloth / ropes
  • Interactive systems
  • Reactive UI motion

Shader-Based Distortion & Post-Processing

Core idea: Animate pixels instead of objects.

Common effects:

  • UV distortion
  • Chromatic aberration
  • Bloom
  • Glitch
  • Pixel sorting
  • Scanlines
  • Afterimage trails

Example distortion:

uv.x += sin(uv.y * 10.0 + uTime) * 0.02;

This pairs perfectly with your Three.js + EffectComposer setups.


Procedural Geometry Deformation

Move vertices instead of objects:

vec3 pos = position;
pos.z += sin(pos.x * 5.0 + uTime) * 0.2;

Used for:

  • Wavy tubes
  • Audio-reactive meshes
  • Morphing forms
  • Abstract landscapes

Flow Fields

Particles follow directional vectors generated from noise.

Concept:

angle = noise(x * scale, y * scale) * Math.PI * 2;
velocity.x = Math.cos(angle);
velocity.y = Math.sin(angle);

Results:

  • Mesmerizing line art
  • Organic swarms
  • Ink-like systems

Advanced Hybrid Techniques

Combine:

  • Noise + vertex displacement
  • Physics + flow fields
  • Camera path + easing + noise
  • Post-processing + temporal feedback

Hybrid:

  • Perlin-noise animated tube
  • Camera moving along spline
  • Subtle chromatic aberration
  • Afterimage pass for ghost trails
  • Film grain overlay

That’s peak creative coding aesthetic.