// how it works
Anatomy decides how it moves
Creature Factory is a toy: you build an absurd creature in the lab, bring it to life and watch what it does. The parts aren't just decoration: each one changes the creature's mass, supports or brain, and physics does the rest. Nobody programmed “the creature with lopsided legs walks diagonally”: it just happens.
Legs
They only push when the foot touches the ground, during the stance phase. More legs, more balance; long legs, big strides and a higher centre of gravity.
Wheels
Separate rigid bodies attached with motorised hinges: they really roll. Only on one side? The creature spins in circles.
Thrusters
They push away from the flame, from their exact position: crooked ones make it turn or take off. Fuel is limited.
Eyes
With two or more eyes the creature can see the goal. With one, it misjudges. Without eyes, it wanders aimlessly.
Antennae
They detect obstacles ahead and make it steer around them. Without them it bumps into everything… and gets frustrated.
Weight
Every part weighs something. A weight on its head or a golden crown changes the centre of gravity and stability.
Under the hood
- Anchor system: every body is an implicit surface. A part is stored as a direction from the centre; the anchor point and orientation are computed on the surface, which also generates the 3D mesh.
- Physics with Rapier (WebAssembly): the body and its parts form a single rigid body with real mass; wheels are attached with motors.
- Behaviour: a simple brain decides where to go based on the senses it has; locomotion tries to do it with whatever the anatomy allows.
- Procedural animation: googly pupils, springy antennae, wagging tails and flickering flames, with no external models or textures.
Your creatures are yours
- They're saved in your browser (IndexedDB). No accounts, no server.
- You can export them to a JSON file and import them on another device.
- The share link carries the compressed creature inside the URL itself, in the part that is never sent to the server.
- Screenshots are generated on your device.