THREE-MOTIONBRICKS
A robot built
out of motion
bricks.
NVIDIA MotionBricks in three.js. Give it four recent poses and a target; a 195M-parameter model fills in the steps between them, right in your browser.
Worlds
Pick a block. Each one is a page you can open full screen and share.
same model, seven bodies: G1 · H1 · T1 · OP3 · RobotExpressive · Astronaut · Polybot
How it moves
No clips, no state machine of animations. Three bricks, over and over.
1
Context
The last four poses the robot played: root, rotation and 29 joint angles each.
2
Target
Where it should end up, and how: a standing, walking or running pose placed on the way to your click.
3
Motion
0.6–1.9 s of 30 Hz motion between them, asked for while the last one plays, so the stride never waits.
Build
Only needs three. Bring the G1, a Unitree H1, a Booster T1, or any Mixamo character.
import {MotionBricksCharacter, MOTIONBRICKS_DEFAULTS} from 'three-motionbricks'
const g1 = new MotionBricksCharacter()
g1.setRobot((await new GLTFLoader().loadAsync(MOTIONBRICKS_DEFAULTS.robot)).scene)
scene.add(g1.object)
await g1.load()
g1.moveTo(new THREE.Vector3(3, 0, -2), 'run')
// every frame
g1.update(clock.getDelta())