Gaitkit Open the lab
Viking Longship, A clinker-built Norse longship with high scrolled stem and stern posts, a row of painted round shields along each rail, a square striped sail on a single mast and a side steering oar on the starboard quarter. Travels on the water surface (altitude 0): every oar sweeps through a rowing stroke as it moves and the hull rides a gentle swell. 12 to 30 m long; bow toward +Z.
Vehicle · Swims

Viking Longship

A clinker-built Norse longship with high scrolled stem and stern posts, a row of painted round shields along each rail, a square striped sail on a single mast and a side steering oar on the starboard quarter. Travels on the water surface (altitude 0): every oar sweeps through a rowing stroke as it moves and the hull rides a gentle swell. 12 to 30 m long; bow toward +Z.

Size
11.6 × 11.1 × 23.2 m
Triangles
3,672
Open in the lab Loop clip inside. The download carries the knobs you set here.

Tune it

5 knobs: Length, Sail, Sail colour, Shields, Oars out.

Specs

Size
11.6 × 11.1 × 23.2 m
width × height × depth
Triangles
3,672
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
5.5 m
of travel per cycle
Altitude
0 m
below the surface
Moving parts
26
hull · slide, oar_L0 · rotate, oar_L1 · rotate, oar_L2 · rotate, oar_L3 · rotate, oar_L4 · rotate, oar_L5 · rotate, oar_L6 · rotate, oar_L7 · rotate, oar_L8 · rotate, oar_L9 · rotate, oar_L10 · rotate, oar_L11 · rotate, oar_R0 · rotate, oar_R1 · rotate, oar_R2 · rotate, oar_R3 · rotate, oar_R4 · rotate, oar_R5 · rotate, oar_R6 · rotate, oar_R7 · rotate, oar_R8 · rotate, oar_R9 · rotate, oar_R10 · rotate, oar_R11 · rotate, steering_oar · rotate
Knobs
5
3 presets
Night lights
0
none

Passed the validator: real scale, rests on y = 0, front faces +Z, deterministic.

Use it

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

JavaScript
import { createAsset } from 'https://gaitkit.com/cdn/viking-longship.mjs';

const vikingLongship = createAsset();
scene.add(vikingLongship);                      // rests on y = 0, front faces +Z

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  vikingLongship.position.set(0, groundY + vikingLongship.userData.altitude, dist);
  vikingLongship.userData.tick(dist);            // the body waves with the distance
  renderer.render(scene, camera);
});

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

Knobs

KnobTypeValuesDefaultWhat it does
lengthrange12 to 30, step 122Length in metres. 12 is a small coastal boat; 22 a typical warship with about 13 oars a side; 30 a great royal longship. Beam, mast and oar count scale with it.
sailchoiceset furled nonesetset (square sail spread on the yard and bellied forward by the wind), furled (sail rolled up along the yard) or none (mast unstepped, rowing only).
sailColorchoicered stripes blue stripes plain wool checksred stripesPattern of the woollen sail: red stripes, blue stripes, plain wool (undyed) or checks (red and white chequer).
shieldschoiceyellow black red white blue white mixed noneyellow blackPaint of the round shields hung along the rails: yellow black and red white alternate two colours in halves, blue white likewise, mixed uses six colours, none leaves the rails bare.
oarstoggleon / offtrueOars run out through the oar ports and sweep through a rowing stroke as the ship travels. Off ships the oars (sailing or moored); the hull still rides the swell.

Presets: raiding party {"length":22,"sail":"set","sailColor":"red stripes","shields":"mixed","oars":true} · royal longship {"length":30,"sail":"set","sailColor":"checks","shields":"yellow black","oars":true} · river boat under oars {"length":14,"sail":"none","shields":"none","oars":true}

Files

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