Make ideas
move differently.
Design cinematic motion, generative worlds, and audio-reactive visuals in one powerful creative workspace—no installs, no rigid templates.

Studio film featuring kinetic typography, creative coding, an audio-reactive sculpture, and the Holographic Liquid Silk preset. Playback is silent.
Motion design
without the friction.
Motion Lab brings the immediacy of a visual editor together with the freedom of creative code. Experiment fast, direct every detail, and build work that doesn’t look like everyone else’s.
A real motion canvas
Combine patterns, typography, video, audio, and code in one layered, non-destructive scene.
Animate every detail
Set keyframes, shape easing, and tune timing on a precise multi-layer timeline.
Make sound visible
Map audio signals to motion parameters and build visuals that react to every beat.
Creative code, built in
Author reusable visual systems in the code editor, then control them like native layers.
const field = createField({ density: 0.84, motion: audio.energy,});Make it. Refine it. Own it.
The work is yours
A place where your experiments become finished work—without losing creative control along the way.
- Always editable
- Keep refining your projects.
- Ready to render
- Take your motion beyond the canvas.
- Yours to create with
- Your artwork belongs to you.
Made to move.
Made to be yours.
From expressive typography to cinematic compositions, explore what you can create in Motion Lab.
Move with intent
Kinetic typography & colorA little character
Expressive letterformsBeyond the frame
Layered title sequenceYour ideas. A whole new frame of mind.
Explore Motion LabThe creative community
Good ideas grow when they’re shared.
Create something original. Share your code. Discover new possibilities built by other creators.
Explore Community PluginsRibbon Waves
v1.0.0Animated ribbon-wave generator with editable controls.
function render(api, params) {
const { ctx, width, height, time } = api;
const lines = params.lines ?? 24;
const amplitude = params.amplitude ?? 120;
const colorA = params.colorA ?? '#8BE9FD';
const colorB = params.colorB ?? '#FF79C6';
const gradient = ctx.createLinearGradient(0, 0, width, height);
gradient.addColorStop(0, colorA);
gradient.addColorStop(1, colorB);
ctx.strokeStyle = gradient;
- Create
- Write reusable code with editable controls.
- Share
- Publish your plugins for others to discover.
- Discover
- Explore public plugins and readable source.
Give your ideas
some motion.
Open Motion Lab and turn a spark into something people can feel.
Create your first project