Gaitkit Open the lab
Bard, A 1.75 m travelling bard in a wide-brimmed hat with a long swept-back feather, a two-tone doublet with puffed sleeves, a short shoulder cape and tall boots, with a lute either slung on the back or held ready to play across the belly. Lute position, outfit colours, presentation and art style are knobs.
Character · Walks on 2 legs

Bard

A 1.75 m travelling bard in a wide-brimmed hat with a long swept-back feather, a two-tone doublet with puffed sleeves, a short shoulder cape and tall boots, with a lute either slung on the back or held ready to play across the belly. Lute position, outfit colours, presentation and art style are knobs.

Size
0.96 × 1.8 × 0.93 m
Triangles
2,397
Open in the lab Walk clip inside. The download carries the knobs you set here.

Tune it

4 knobs: Style, Lute, Outfit, Presentation.

Specs

Size
0.96 × 1.8 × 0.93 m
width × height × depth
Triangles
2,397
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
7
upperarm_L · rotate, forearm_L · rotate, upperarm_R · rotate, forearm_R · 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/bard.mjs';
import { walker } from 'https://gaitkit.com/runtime/walk.mjs';

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

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  bard.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).
lutechoiceback handsbackWhere the lute is: slung diagonally on the back while the arms swing, or held across the belly ready to play (right hand at the strings, left hand on the neck).
outfitchoicescarlet plum teal saffronscarletDoublet, sleeve puffs, hat, feather and cape colours: scarlet (red and gold, white feather), plum (purple, gold feather), teal (teal and cream, red feather) or saffron (mustard and wine, green feather).
presentationchoicemasculine feminine neutralmasculineBody shape and grooming: masculine (moustache, short hair), feminine (long hair, narrower waist) or neutral.

Presets: tavern singer {"lute":"hands","outfit":"scarlet"} · court minstrel {"lute":"back","outfit":"plum","presentation":"feminine","style":"realistic"} · wandering poet {"lute":"hands","outfit":"teal","presentation":"neutral","style":"chibi"}

Files

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