Research Submarine
A small crewed research submarine on landing skids, with a big domed viewport at the bow, portholes, twin lamps, a conning tower with a hinged hatch (rotate part hatch), a ducted propeller (spin part propeller) and an optional manipulator arm. The bow faces +Z; default is 6 m long.
- Size
- 2.5 × 3.3 × 6.5 m
- Triangles
- 2,162
- Kit
- Underwater
Tune it
4 knobs: Paint, Size, Arm, Hatch.
Specs
- Size
- 2.5 × 3.3 × 6.5 m width × height × depth
- Triangles
- 2,162 of 6,000
- Draw calls
- 1 one vertex-colour material
- Loop clip
- 1 m of travel per cycle
- Moving parts
- 2 propeller · spin, hatch · rotate
- Knobs
- 4 3 presets
- Night lights
- 3 viewport, lamp, beacon
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.
import { createAsset } from 'https://gaitkit.com/cdn/submarine.mjs';
const submarine = createAsset();
scene.add(submarine); // rests on y = 0, front faces +Z
// 'hatch' pivots on its hinge: -110° to 0° around x
submarine.getObjectByName('hatch').rotation.x = THREE.MathUtils.degToRad(-110);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/submarine.mjs';
export function Submarine() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import submarine.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$Submarine/hatch.rotation_degrees.x = -110// Import submarine.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("hatch").localEulerAngles = new Vector3(/* x: */ -110, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "submarine", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
paint | choice | yellow orange white red | yellow | Hull colour: yellow (classic research sub), orange (high-visibility deep-sea vehicle), white (tourist sub) or red. The belly and fittings stay dark grey with a contrasting stripe. |
size | range | 0.6 to 1.6, step 0.05 | 1 | Uniform scale. 1 is 6 m long with a 1.9 m hull; 0.6 is a two-seat mini sub, 1.6 a big 10 m explorer. |
arm | toggle | on / off | true | A jointed manipulator arm with a claw under the bow, for grabbing samples. Off for a plain tourist sub. |
hatch | range | 0 to 1, step 0.05 | 0 | How far the top hatch on the conning tower is open: 0 shut, 1 swung fully open. Same as rotating the hatch part. |
Presets: deep explorer {"paint":"orange","size":1.3,"arm":true} · reef tourer {"paint":"white","arm":false,"size":1.5} · surfacing {"paint":"yellow","hatch":1}
Files
| File | What |
|---|---|
| submarine.glb | GLB, default look · 266 KB |
| submarine.mjs | ES module, every knob live |
| submarine.obj | OBJ, static, no colour |
| submarine-params.json | knob 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.