Gaitkit Open the lab
Knight, A 1.75 m armoured knight who marches with a longsword held upright in the right hand and a heater shield on the left forearm: steel breastplate, pauldrons, vambraces and greaves over a coloured surcoat, a cape, and a closed great helm with a plume that can come off to show the face. Colours, helmet, cape and art style are knobs; the sword sits in grip_R.
Character · Walks on 2 legs

Knight

A 1.75 m armoured knight who marches with a longsword held upright in the right hand and a heater shield on the left forearm: steel breastplate, pauldrons, vambraces and greaves over a coloured surcoat, a cape, and a closed great helm with a plume that can come off to show the face. Colours, helmet, cape and art style are knobs; the sword sits in grip_R.

Size
0.99 × 1.9 × 1.3 m
Triangles
2,436
Open in the lab Walk clip inside. The download carries the knobs you set here.

Tune it

4 knobs: Style, Colours, Helmet, Cape.

Specs

Size
0.99 × 1.9 × 1.3 m
width × height × depth
Triangles
2,436
of 6,000
Draw calls
1
one vertex-colour material
Legs
2
2 gait groups
Stride
44 cm
duty factor 0.6
Foot slide
0.00 mm
limit 1 mm
Walk clip
1.095 m/s
at playback speed 1
Moving parts
5
upperarm_L · rotate, forearm_L · rotate, spine · rotate, chest · rotate, neck · 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/knight.mjs';
import { walker } from 'https://gaitkit.com/runtime/walk.mjs';

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

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  knight.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
stylechoicerealistic stylized chibi blockystylizedArt style of the whole figure: realistic (about 7 heads tall), stylized (5.5 heads, chunky game look), chibi (big head, 1.1 m) or blocky (voxel boxes). The armour and gear follow the style.
colourschoiceazure crimson emerald sableazureSurcoat, cape, shield and plume colours: azure (blue and gold, red plume), crimson (red and gold, white plume), emerald (green, gold plume) or sable (black armour, black cape, dark red plume).
helmettoggleon / offtrueA closed great helm with an eye slit and a plume. Off shows the face and short hair.
capetoggleon / offtrueA long cape from the shoulders to the calves.

Presets: black knight {"colours":"sable","helmet":true,"style":"realistic"} · squire {"colours":"emerald","helmet":false,"cape":false} · tiny champion {"colours":"crimson","style":"chibi","helmet":false}

Files

FileWhat
knight.glbGLB, default look · 262 KB
knight.mjsES module, every knob live
knight.objOBJ, static, no colour
knight-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.