WVY-Blender-5m
A tiny language model designed to create animations in Blender.
WVY, designed by Starpower.
We're building tiny local models for creative tools: 3D, filmmaking, music production, and more. WVY-Blender-5m is our Blender experiment: a 5.25-million-parameter language model trained from scratch to turn everyday descriptions into editable, animated 3D scenes.
Describe a subject, a setting, and a little motion. WVY predicts scene instructions; the included Blender builder creates the geometry, materials, keyframes, lighting, and camera. Follow-up instructions can change the scene you already made.
5.25M parameters · 21 MB checkpoint · Local inference · Editable Blender scenes
See it in motion
These videos are actual Blender renders from this checkpoint and its procedural scene builder.
A robot dancing on a skateboard
City setting, character animation, object relationships, and an orbiting camera.
A fox jumping over a car
Object colors, snow, sunrise, character motion, and a tracking camera.
An alien riding a horse
Two subjects moving together in a farm environment with rain.
The exact prompts, decoded scene specifications, and checkpoint hash are included in demo_manifest.json. Each individual clip is five seconds long at 12 fps. These are selected examples, rather than a claim that every requested detail is always reproduced.
What you can do with it
| Capability | Examples |
|---|---|
| Build scenes from text | A dog walking in a park; a robot dancing on a skateboard |
| Create characters and objects | 126 supported types across people, animals, vehicles, furniture, lights, props, and shapes |
| Animate supported actions | Walking, running, jumping, dancing, flying, rolling, and other actions in the 29-action vocabulary |
| Put subjects together | Riding a horse, sitting on a couch, jumping over a car, moving around another subject |
| Change appearance | Colors, sizes, material finishes, hair, clothing, and supported character attributes |
| Direct the scene | 24 settings, weather, time of day, lighting, shot size, camera motion, lens presets, and depth of field |
| Edit with follow-up instructions | “Make the dog blue,” “add a tree,” “remove the car,” “zoom out” |
| Ask Blender questions | Routes questions to 119 written Blender knowledge topics |
| Continue in Blender | Keep real objects, materials, cameras, and animation keyframes in an editable scene |
The current system makes stylized procedural scenes from text. Its scene vocabulary and Blender builders define the available objects and actions. Image input, arbitrary new mesh generation, and numerical rotation commands are outside this checkpoint's current schema.
What it was trained on
WVY was trained from scratch on English prompts paired with a compact scene instruction language. The data was generated or written locally for this project.
| Current training corpus | Examples | Target |
|---|---|---|
| Scene descriptions | 540,000 | A complete new scene specification |
| Follow-up edits | 252,000 | Operations that change an existing scene |
| Blender questions | 320,000 | A Blender answer-topic ID |
| Total available pairs | 1,112,000 | Scene creation, editing, and question routing |
Scene examples combine object types, counts, colors, character attributes, actions, relationships, locations, weather, lighting, and camera instructions. Alternate phrasing, spelling variations, and some generated typos broaden the language examples. Blender questions expand hand-authored seeds around 119 topics; their answer paragraphs live in the included knowledge database.
The recorded initial run used a 900,000-pair corpus, followed by a continued-training run using the expanded 1,112,000-pair corpus. The logs record 12,000 initial updates and 4,500 continued updates with batch size 96. Corpus size describes available examples, rather than a guarantee that every row was presented in every run.
The training loop consumes text and instruction labels. The demonstration images, videos, meshes, and Blender files are outputs of the system, rather than visual training inputs.
For example:
Prompt: a red dog walking in a blue house
Target: <new> loc=house place=in lcolor=blue <ent> type=dog color=red act=walk
Prompt: make the dog blue
Target: <edit> <ent> type=dog color=blue
The neural network chooses scene-language tokens. The interpreter applies those tokens, and the procedural Blender code supplies geometry and animation. For Blender questions, the model selects a topic and the application retrieves the corresponding written answer.
Model details
| Property | Value |
|---|---|
| Published name | WVY-Blender-5m |
| Checkpoint lineage | WVY Blender V2 |
| Author | Starpower |
| Learned parameters | 5,252,608 |
| Architecture | Decoder-only causal Transformer |
| Transformer layers | 6 |
| Hidden size | 256 |
| Attention heads | 8 |
| Feed-forward width | 1,024, with GELU |
| Context window | 384 tokens |
| Vocabulary | 1,622 tokens |
| Tokenizer | Custom word-wise BPE prompt tokenizer plus fixed scene-language tokens |
| Output modes | New scene, edit operations, Blender answer-topic ID |
| Decoding | Greedy; up to 96 output tokens |
| Weight format | FP32 PyTorch state dictionary |
| Checkpoint size | 21,036,157 bytes, approximately 21 MB |
| Pretrained base model | None; trained from scratch |
The model can decode on a CPU. Creating and rendering the 3D scene also requires Blender; that work is separate from language-model inference.
Run it locally
Download this repository and install PyTorch. Blender is required for the scene-building step.
pip install torch
Run the included CLI:
python infer.py "a red dog walking in a blue house" --output scene.json
python infer.py "make the dog blue" --scene scene.json --output scene.json
blender --background --python build_scene.py -- scene.json scene.blend
On macOS, if Blender is not on your PATH:
/Applications/Blender.app/Contents/MacOS/Blender --background --python build_scene.py -- scene.json scene.blend
Or use the model directly:
from model import load, generate
from scenelang import parse_output
model, tokenizer = load("cpu")
tokens = generate(model, tokenizer, ["a red dog walking in a blue house"])[0]
scene = parse_output(tokens)
print(scene)
model.py, tokenizer.py, scenelang.py, tokenizer.json, blender_qa.json, and the checkpoint belong together. scene_builder.py runs inside Blender. infer.py can keep a previous scene JSON so edit instructions apply to that scene.
Evaluation notes
A separate creative stress test used this exact checkpoint on ten requests, including demanding multi-subject prompts and numerical edits. It passed 44 of 49 selected decoded-state checks and all selected checks on 5 of the 10 requests. All ten cases rendered, but rendering success does not prove prompt accuracy. Camera framing, omitted details, and numerical edits remain areas for improvement.
The recorded median CPU decoding time in that run was 18.463 ms using four threads. This is model decoding time only, on the test machine; it excludes Blender generation and rendering. The full stress-test summary is included in evaluation_summary.json.
The direction
We want creation tools to have small, focused models that can work locally and leave the artist with something editable. Blender is one part of that direction. Our wider goal includes 3D workflows, filmmaking, music production, and other creative software.
WVY designed by Starpower.
- Downloads last month
- 91
