A Motion lab
Choreograph a sentence.
Split text accessibly, pick a curve, set the stagger, then play or scrub the timeline by hand.
splitText · timeline · stagger · cubicBezier · springEase
Every frame has a reason.
Six benches from Creative Engineering — our open-source agent skill and the
@snowbros/* libraries — running in this page. Change a parameter; the code
changes with you.
A Motion lab
Split text accessibly, pick a curve, set the stagger, then play or scrub the timeline by hand.
splitText · timeline · stagger · cubicBezier · springEase
Every frame has a reason.
B Interaction lab
Three primitives, each usable by pointer, touch and keyboard. On touch screens the pointer-only effects step aside instead of misfiring.
magnetic · tilt · spotlight · createSpringValue
magnetic() · pressable() With a mouse the target leans toward the pointer within 80 px and springs home; on touch it squashes under your thumb. 0 activations
Tilt with the pointer, or use the arrow keys while focused. Escape levels it.
tilt() + spotlight() Perspective tilt and a light that follows the pointer. Keyboard: focus the pass, use arrow keys.
Press and hold with pointer, Space or Enter for one second.
createSpringValue() Hold for one second — release early and the spring rewinds. Works with Space and Enter.
C Space lab
The hero crystal, in a stage of its own. It draws a frame only when something changes — watch the counter stay still when you do.
withFallback · createStage · createOrbitInertia · createParticleField
Drag or use arrow keys to rotate
D Interface lab
Functional motion: under 250 ms, no bounce, never blocking input.
flip · animate · functional tokens
E Effects lab
No images on this page. Everything you see here is generated in code and turns static when you ask for less motion.
imageReveal · flowField · scramble · drawPath
scramble — hover, focus or press
drawPath — the lattice, plotted when it enters view
F Physics lab
Real rigid bodies: crystals fall, stack and collide. Drag to throw, tap to drop another, Space adds one, arrows shake the box. The engine loads only when you ask for it — and stops computing the moment the pile settles.
Rapier (WASM) · stepPhysics · soundCues
Loads Rapier · ≈ 1.3 MB gzip · on demand
System
Dependencies never point upward. Select a package to see exactly what it brings with it.
Agent
Adapters
Capabilities
Foundation
Start
Discover
You are here.
The benches above and the studio site around them — all built with the toolkit, in the open.
See how this site is builtInstall
Give your agent the skill.
git clone https://github.com/snowbros-labs/creative-engineering
cp -r creative-engineering/skills/snowbros-creative ~/.claude/skills/
npm install @snowbros/core @snowbros/motion
Integrate
Start from the project you have.
The skill inspects your stack first and works with what is already there — GSAP, Motion, R3F, your design system. Ask it:
/snowbros-creative audit the motion on this page and fix the worst three issues
Contribute
Make the lattice bigger.
Patterns, platform guides, adapters and fixes are welcome. Everything is dual-licensed MIT or Apache-2.0.
We build with these tools for clients, and we keep them open for everyone else.