Vignesh K.
← Projects
Personal R&D · 2026 · Motion design

QAnimator

Motion design, written entirely in code. Launch films, product explainers, social ads and data stories, rendered by my own engine from a brief, with no stock and no generative video.

  • Procedural motion engine
  • Kinetic typography system
  • 24 scene transitions
  • AI author pipeline
  • Fine-tuned Qwen2.5-Coder 7B
  • Frame-exact renders
Model on Hugging Face ↗
Frames from four QAnimator concept pieces

Generative video gives you a clip you cannot open: change one word and you roll the dice again, and the logo comes back slightly wrong. QAnimator goes the other way. A film is code and data, so the brand holds in every frame, every element can be edited, and the same file renders identically every time.

I built the rendering engine, a motion-graphics kit (kinetic type, charts, UI, maps, transitions), the authoring pipeline that turns a brief into a finished film, and a desktop studio to review and tweak it. The four pieces below are concept work for invented brands.

A launch film for a product that does not exist

01

A launch film for a product that does not exist

Orin One, a concept desk lamp. It assembles itself as a blueprint, resolves into a matte render, and then follows a day: cool daylight at seven, focused light at one, amber at half past seven. The lamp, its light and every card are drawn by code, frame by frame.

A fintech explainer with a working UI

02

A fintech explainer with a working UI

Veyra, a concept payments app. The phone screens are live: the amount counts up, the real rate and fee cards slide in, the button is pressed, three checks tick, the money lands. Then a dotted world map lights up route by route.

A social ad set, built for the scroll

03

A social ad set, built for the scroll

Kiln, a concept coffee roaster. Three twelve-second vertical spots: a hook, a stat and an offer. Big type slams on the beat, the bag drops in with a burst, tasting notes pop, and every spot signs off with the same lockup.

Campaign results as a story

04

Campaign results as a story

A quarterly report film for a concept client. Reach rolls up on an odometer while the line climbs, channel bars rise with the winner in coral, the donut sweeps to one in three, and it ends on a single recommendation.

Why it matters for a studio

On-brand in every frame

Colours, type and layout are data, so a brand system is applied once and holds across every shot and every cut-down. Nothing drifts between versions the way generated video does.

Revisions are edits

Change a line of copy, a colour or a timing and re-render in minutes. The same file renders identically every time, so the approved cut is exactly what ships.

One toolkit, every format

16:9 launch films and 9:16 social cuts come from the same kit and the same brand system, so a campaign looks like one campaign across a launch page, Reels and a pitch deck.

Brand-safe by construction

No generative imagery, no stock footage, no scraped art. Fonts are open-licensed. The brands on this page are invented for the demo.

From a brief to a film

AI author + procedural engine

Brief

A paragraph and the brand basics. The AI author proposes the concept, the script and the list of elements the film needs.

Storyboard

Scenes, timing, camera, type and transitions as an editable plan. Nothing is rendered until it reads right.

Film

The engine animates and renders the final film with sound, and checks its own frames for problems like unreadable text or cropped subjects.

Range

Narrated science explainer
Frames from a narrated Big Bang to Earth explainer

The same engine also makes narrated explainers: a 78-second film from the Big Bang to the blue Earth, with captions timed to the narrator word by word and every claim sourced.

My own model

Fine-tuned on RunPod

v1 · public

qanimator-rig-7b

Qwen2.5-Coder-7B fine-tuned with QLoRA to write the engine's drawing code: one JavaScript module per asset. It runs locally at about 50 tokens a second on an 8 GB laptop GPU.

huggingface.co/vigneshk0702/qanimator-rig-7b ↗

v2 · private

Character designer

Trained on about 15,000 examples. It turns a reference sheet or a sentence into a complete, animatable character in 3 to 11 seconds, 8 to 23 times faster than a frontier model on the same briefs, at no API cost.

Kept private while the next version trains.

Fine-tuned vs frontier

Same six briefs · one run each

The fair question is whether a frontier model could do the same job. It can. So I gave both the same six character briefs: my fine-tuned 7B running locally, and Claude Opus 5.5 through its API. Both results are drawn by the same engine.

15×

faster overall

33 s for all six against 505 s. Per brief, 8 to 23 times faster.

$0

per character

Runs on my own GPU. No API calls, and no brief leaves the machine.

~150

tokens out

A compact spec my character kit draws, against ~8,700 tokens of drawing code from the frontier model.

2 · 3 · 1

match · partial · miss

Mine, judged against each brief. The frontier model scored 5 · 1 · 0.

Qwik

Chibi tiger cub, striped tail, purple bandana with a “Q”

Qwik by my fine-tuned model
Mine11 s

partial · Stripes and bandana colour off

Qwik by Claude Opus
Claude Opus87 s

match

Bik

Round bee, huge eyes, glowing antennae and a lantern belly

Bik by my fine-tuned model
Mine8 s

partial · No glowing lantern belly

Bik by Claude Opus
Claude Opus133 s

match

Rusty

Fox cub, pointy ears, cream belly, fluffy white-tipped tail

Rusty by my fine-tuned model
Mine4 s

match

Rusty by Claude Opus
Claude Opus80 s

match

Hoot

Wise little owl, huge round eyes, cream chest, green scarf

Hoot by my fine-tuned model
Mine4 s

match

Hoot by Claude Opus
Claude Opus80 s

match

Lily

Happy green frog, eyes on top of her head, pink bow

Lily by my fine-tuned model
Mine3 s

partial · No bow; eyes not on top

Lily by Claude Opus
Claude Opus70 s

partial · Bow is orange, not pink

Gloop

Purple-blue blob monster, antennae, huge eyes, wide grin

Gloop by my fine-tuned model
Mine3 s

miss · Wrong colour and body shape

Gloop by Claude Opus
Claude Opus55 s

match

What it shows. The frontier model is more faithful to the brief. Mine is an order of magnitude faster, costs nothing per call and never leaves the machine, and because it only writes a small spec that the engine's character kit draws, it is always on-style. In the pipeline each does what it is good at: the local model for fast drafts and volume, the frontier model as the fallback when a draft misses.

Method: six briefs, one run each, the same text for both (two briefs also came with a reference sheet). The two models do different jobs by design: mine writes a character spec, the frontier model wrote full drawing code. Match, partial and miss are my own judgement. Next: a 50-brief blind test.

Every frame on this page was rendered by QAnimator on my own machine. Orin, Veyra, Kiln, Aster Oat and Tallow & Finch are invented for this demo; any resemblance to real brands is coincidental.

Ask me about it → vignesh0702@gmail.com