Gaitkit Open the lab
Fishing Boat, A 14 m stern trawler with a high bow, a wheelhouse with windows all round, a mast with a turning radar, an A-frame gantry and net drum over an open working deck, and optional outrigger booms and a deck load of nets and fish crates. Sits on the water surface (keel at y = 0, waterline about 1.4 m up), rolling gently; propeller and radar turn with distance; windows and lights glow at night.
Vehicle · Swims

Fishing Boat

A 14 m stern trawler with a high bow, a wheelhouse with windows all round, a mast with a turning radar, an A-frame gantry and net drum over an open working deck, and optional outrigger booms and a deck load of nets and fish crates. Sits on the water surface (keel at y = 0, waterline about 1.4 m up), rolling gently; propeller and radar turn with distance; windows and lights glow at night.

Size
11.1 × 10.8 × 14.2 m
Triangles
2,505
Open in the lab Loop clip inside. The download carries the knobs you set here.

Tune it

4 knobs: Paint, Outriggers, Deck load, Length.

Specs

Size
11.1 × 10.8 × 14.2 m
width × height × depth
Triangles
2,505
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
8 m
of travel per cycle
Altitude
0 m
below the surface
Moving parts
6
outrigger_L · rotate, outrigger_R · rotate, propeller · spin, radar · spin, boat · rotate, pitch · rotate
Knobs
4
3 presets
Night lights
3
window, nav, floodlight

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/fishing-boat.mjs';

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

let dist = 0;
renderer.setAnimationLoop(() => {
  dist += speed * clock.getDelta();
  fishingBoat.position.set(0, groundY + fishingBoat.userData.altitude, dist);
  fishingBoat.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
paintchoiceblue red green black yellowblueHull colour: blue, red, green, black (with a red sheer strake) or yellow. The wheelhouse stays white or cream and the bottom is red antifouling.
outriggerstoggleon / offtrueTwo long outrigger booms raised in a V from the mast, with stays. Off for a plain stern trawler.
catchtoggleon / offtrueNets heaped on the working deck, a stack of blue fish crates and orange buoys. Off = a cleared, empty deck.
lengthrange9 to 22, step 0.514Length in metres; everything scales with it. 9 is a small inshore boat, 14 a typical coastal trawler, 22 a big offshore one.

Presets: harbour red {"paint":"red","catch":true} · night trawler {"paint":"black","outriggers":true,"length":18} · inshore {"paint":"green","outriggers":false,"catch":false,"length":10}

Files

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