Gaitkit Open the lab
Pirate Galleon, A 24 m three-masted galleon with a tall stepped stern castle, raised forecastle, beakhead and long bowsprit, a broadside of cannons behind hinged gunports, square sails on the fore and main mast and a lateen on the mizzen. The bow points +Z; it rides the water surface (altitude 0) and bobs, rolls and pitches gently as it sails. The keel rests on y = 0 and the waterline is about 2 m up (userData.waterline). Stern lanterns and cabin windows glow at night.
Vehicle · Swims

Pirate Galleon

A 24 m three-masted galleon with a tall stepped stern castle, raised forecastle, beakhead and long bowsprit, a broadside of cannons behind hinged gunports, square sails on the fore and main mast and a lateen on the mizzen. The bow points +Z; it rides the water surface (altitude 0) and bobs, rolls and pitches gently as it sails. The keel rests on y = 0 and the waterline is about 2 m up (userData.waterline). Stern lanterns and cabin windows glow at night.

Size
9.4 × 24.1 × 30.1 m
Triangles
3,850
Open in the lab Loop clip inside. The download carries the knobs you set here.

Tune it

5 knobs: Hull paint, Sails, Sail colour, Cannons, Flag.

Specs

Size
9.4 × 24.1 × 30.1 m
width × height × depth
Triangles
3,850
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
18 m
of travel per cycle
Altitude
0 m
below the surface
Moving parts
4
bob · slide, roll · rotate, pitch · rotate, flag · rotate
Knobs
5
3 presets
Night lights
2
lantern, window

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/pirate-ship.mjs';

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

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  pirateShip.position.set(0, groundY + pirateShip.userData.altitude, dist);
  pirateShip.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
hullchoiceblack and gold oxblood oak navy sea greenblack and goldHull colour scheme: black and gold (black hull, gold gunport band, pale tallowed bottom), oxblood (dark red), oak (bare varnished wood), navy (blue with a cream band), sea green.
sailschoicefull furledfullfull (every sail set and bellied out by a following wind, plus a jib) or furled (sails rolled tight on their yards, as at anchor).
sailColorchoicecanvas white black red stripedcanvasSail cloth: canvas (warm off-white), white, black, red or striped (canvas with red horizontal stripes). Plain cloth, no emblems.
cannonsrange0 to 7, step 15Gunports per side along the main deck, each with an open lid and a cannon muzzle. 0 gives a merchant galleon with a plain band.
flagchoiceblack red red and gold blue and white green and whiteblackColour of the plain flag at the mainmast head and the pennants: black, red, red and gold stripes, blue and white stripes, green and white stripes.

Presets: black flag raider {"hull":"black and gold","sailColor":"black","flag":"black","cannons":7} · navy flagship {"hull":"navy","sailColor":"white","flag":"blue and white","cannons":6} · at anchor {"hull":"oak","sails":"furled","cannons":3,"flag":"red and gold"}

Files

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