Gaitkit Open the lab
Penguin, An upright penguin, 1.1 m tall for an emperor (down to 40 cm for a little blue), black back and white front with species colour patches. Walks on two short legs with flat webbed feet, waddling from side to side with flippers held out for balance and the head bobbing.
Creature · Walks on 2 legs

Penguin

An upright penguin, 1.1 m tall for an emperor (down to 40 cm for a little blue), black back and white front with species colour patches. Walks on two short legs with flat webbed feet, waddling from side to side with flippers held out for balance and the head bobbing.

Size
0.52 × 1.0 × 0.50 m
Triangles
1,010
Open in the lab Walk clip inside. The download carries the knobs you set here.

Tune it

4 knobs: Kind, Chick, Waddle, Size.

Specs

Size
0.52 × 1.0 × 0.50 m
width × height × depth
Triangles
1,010
of 6,000
Draw calls
1
one vertex-colour material
Legs
2
2 gait groups
Stride
13 cm
duty factor 0.6
Foot slide
0.00 mm
limit 1 mm
Walk clip
0.33 m/s
at playback speed 1
Moving parts
3
flipper_L · rotate, flipper_R · rotate, head · rotate
Knobs
4
3 presets
Night lights
0
none

Passed the validator: real scale, rests on y = 0, front faces +Z, deterministic, planted feet never slide past 1 mm.

Use it

Code for the specimen as it is set up above; it follows your knobs.

JavaScript
import { createAsset } from 'https://gaitkit.com/cdn/penguin.mjs';
import { walker } from 'https://gaitkit.com/runtime/walk.mjs';

const penguin = createAsset();
scene.add(penguin);                      // rests on y = 0, front faces +Z
const gait = walker(penguin, { ground: (x, z) => terrainHeight(x, z) });   // or omit ground for a flat floor

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  penguin.position.z = dist;
  gait.poseAt(dist);                  // feet stay planted, at any frame rate
  renderer.render(scene, camera);
});

More in the docs; agents can fetch all of this through MCP.

Knobs

KnobTypeValuesDefaultWhat it does
kindchoiceemperor king adelie rockhopper littleblueemperorSpecies: emperor (1.1 m, pale-yellow chest and golden ear patches), king (90 cm, bright orange ear and chest), adelie (70 cm, plain black and white with a white eye ring, pink feet), rockhopper (55 cm, spiky yellow eyebrows, red eyes, orange beak), littleblue (40 cm, slate-blue back).
chicktoggleon / offfalseA fluffy grey chick of the chosen kind: rounder, bigger head, downy grey body with a white face mask. Pair with a small size.
waddlerange0.5 to 2, step 0.11How far the body rocks from side to side with each step. 0.5 is a steady march; 2 is an exaggerated cartoon waddle.
sizerange0.3 to 2.5, step 0.051Uniform scale on top of the species height. 1 is real size; 0.4 with Chick on is a newly hatched chick; 2.5 is a giant mascot penguin.

Presets: emperor chick {"kind":"emperor","chick":true,"size":0.45} · rockhopper {"kind":"rockhopper","waddle":1.5} · king penguin {"kind":"king"}

Files

FileWhat
penguin.glbGLB, default look · 137 KB
penguin.mjsES module, every knob live
penguin.objOBJ, static, no colour
penguin-params.jsonknob schema, presets, night zones

Licence

Use it in games, apps, renders and client work, commercially and without credit. Do not resell it as an asset or train a 3D generator on it. The full licence.