Gaitkit Open the lab
Pirate Sloop, A fast 11 m single-masted sloop: a sleek flush-decked hull with a long bowsprit, a gaff mainsail on a swung-out boom, a jib, a low aft cabin and small deck guns poking through the rail. The bow points +Z; it rides the water surface (altitude 0) and bobs, rolls and pitches a little livelier than a galleon. The keel rests on y = 0; the waterline is about 1 m up (userData.waterline). The stern lantern and cabin windows glow at night.
Vehicle · Swims

Pirate Sloop

A fast 11 m single-masted sloop: a sleek flush-decked hull with a long bowsprit, a gaff mainsail on a swung-out boom, a jib, a low aft cabin and small deck guns poking through the rail. The bow points +Z; it rides the water surface (altitude 0) and bobs, rolls and pitches a little livelier than a galleon. The keel rests on y = 0; the waterline is about 1 m up (userData.waterline). The stern lantern and cabin windows glow at night.

Size
4.4 × 14.6 × 15.7 m
Triangles
1,670
Open in the lab Loop clip inside. The download carries the knobs you set here.

Tune it

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

Specs

Size
4.4 × 14.6 × 15.7 m
width × height × depth
Triangles
1,670
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
9 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/sloop.mjs';

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

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  sloop.position.set(0, groundY + sloop.userData.altitude, dist);
  sloop.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
hullchoicewhite and blue tarred teal oak mustardtarredHull colour scheme: white and blue (white topsides, blue stripe, red bottom), tarred (black with a red stripe), teal, oak (bare varnished wood), mustard (ochre with a black stripe).
sailschoicefull furledfullfull (mainsail and jib set, boom swung out to port) or furled (mainsail lashed on the boom along the centreline, jib stowed, as at anchor).
sailColorchoicecanvas white black tan stripedcanvasSail cloth: canvas (warm off-white), white, black, tan (tanned red-brown working sails) or striped (canvas with blue bands). Plain cloth, no emblems.
gunsrange0 to 4, step 13Small deck guns per side, firing through ports in the rail. 0 is an unarmed trading sloop.
flagchoiceblack red red and gold blue and white green and whiteredColour of the plain flag at the masthead: black, red, red and gold stripes, blue and white stripes, green and white stripes.

Presets: smuggler {"hull":"tarred","sailColor":"black","flag":"black","guns":2} · island trader {"hull":"white and blue","sailColor":"tan","guns":0,"flag":"blue and white"} · moored {"hull":"teal","sails":"furled","guns":2,"flag":"green and white"}

Files

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