Back to browse
GitHub Repository

Real-time 3D character animation engine with 8 elemental shaders, 160+ gestures, WebGL rendering, and emotional state system

18 starsJavaScript

Emotive Engine – I wrote 8 elemental shaders to prove one pattern works

by emotiveengine·Mar 10, 2026·1 point·3 comments

AI Analysis

●●SolidEye CandyWizardryNiche Gem

Eight elemental shaders from scratch—ice uses Snell's law refraction with dispersion.

Strengths
  • GPU-instanced models with custom GLSL shaders for each element system.
  • Replicable architecture pattern—every element follows the same factory template.
  • Electricity shader uses 3-scale 3D Voronoi edge-distance calculations.
Weaknesses
  • Niche use case—animated mascots aren't needed by most applications.
  • 12 stars after 6 months suggests limited real-world adoption so far.
Category
Target Audience

Frontend developers, game developers, UI designers adding animated mascots

Similar To

Three.js · Rive · Lottie

Post Description

Live demo (click any gesture, no install): https://joshtol.github.io/emotive-engine/examples/3d/element...

Open-source character animation engine, MIT licensed. About 6 months of work. Renders animated mascots in Canvas 2D or WebGL 3D.

For v3.4.1 I wrote 8 elemental shader systems from scratch: fire, water, ice, electricity, earth, nature, light, void. Each one has its own GLSL fragment shader, GPU-instanced models, an overlay that paints onto the mascot mesh, bloom control, and atmospherics. Ice does Snell's law refraction with chromatic dispersion. Electricity is 3-scale 3D Voronoi edge-distance. Fire decouples color from alpha so additive stacking doesn't wash out.

I didn't need 8. I built them to see if the architecture actually repeats. Every element follows the same template: factory, instanced material, overlay shader, gesture configs, registration. 161 gestures across all 8, composed from about 12 archetypes (crown, helix, vortex, barrage, pillar, etc).

The idea is that you can clone one element, swap colors and models, and have something working in days. If you write shaders, go deep on the material. If you don't, the defaults are fine.

Hit shuffle in the demo. Press G for the GPU monitor.

`npm install @joshtol/emotive-engine`

Similar Projects

AI/MLMid

I built a tool to animate static characters into dancers consistently

The site sells a specific trick — consistent character motion and physics-aware animation across frames — and surfaces sensible UI controls (model, resolution, duration, credits) instead of hiding them. Biggest gap: the landing leans on confident claims (style lock, realistic physics, multimodal inputs) but the preview area is empty and there are no on-page demos or technical notes to prove it; show side-by-side before/after clips, latency numbers, or model details and this jumps from neat to convincing.

WizardrySlick
cby821555203
113mo ago
Design●●●Banger

Generative Art Shaders

Infinite procedural art via function composition; mesmerizing to explore, surprisingly deep.

Rabbit HoleWizardryEye Candy
0xdada
103mo ago