Gaitkit Open the lab
Space Freighter, A blocky industrial space freighter, about 50 m long with three cargo slots: a cockpit module up front, an open truss spine with cargo containers or tanks clamped round it, and an engine block with glowing thrusters and radiator fins; landing legs optional. The comms dish turns and the thrusters pulse as it flies; windows, thrusters and running lights glow at night; it cruises 15 m up.
Vehicle · Flies

Space Freighter

A blocky industrial space freighter, about 50 m long with three cargo slots: a cockpit module up front, an open truss spine with cargo containers or tanks clamped round it, and an engine block with glowing thrusters and radiator fins; landing legs optional. The comms dish turns and the thrusters pulse as it flies; windows, thrusters and running lights glow at night; it cruises 15 m up.

Size
23.5 × 13.0 × 67.2 m
Triangles
1,940
Open in the lab Loop clip inside. The download carries the knobs you set here.

Tune it

5 knobs: Scheme, Cargo, Cargo slots, Thrusters, Landing legs.

Specs

Size
23.5 × 13.0 × 67.2 m
width × height × depth
Triangles
1,940
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
20 m
of travel per cycle
Altitude
15 m
above the ground
Moving parts
5
hull · slide, dish · spin, engine_flame_0 · spin, engine_flame_1 · spin, engine_flame_2 · spin
Knobs
5
3 presets
Night lights
4
engine, window, beacon, nav

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/space-freighter.mjs';

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

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

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

Knobs

KnobTypeValuesDefaultWhat it does
schemechoiceindustrial rust white greyindustrialColours: industrial (safety yellow and black, blue thrusters), rust (worn brown hauler, orange thrusters), white (clean corporate white and blue) or grey (gunmetal with orange trim).
cargochoicecontainers tanks mixedcontainersWhat is clamped to the spine: containers (big coloured boxes), tanks (round fuel or gas tanks with banded ends) or mixed (alternating slots).
slotsrange1 to 5, step 13How many cargo slots along the spine, each holding four pods round it. 1 is a short 25 m tug, 5 a 76 m long hauler.
enginesrange2 to 4, step 13Number of main thrusters on the engine block, 2 to 4.
legstoggleon / offtrueFour landing legs with pads, for setting down on a pad or planet. Off = legs retracted; it then rests on its lowest cargo pods.

Presets: fuel tanker {"cargo":"tanks","scheme":"white","slots":4} · rust bucket {"scheme":"rust","cargo":"mixed","slots":2,"engines":2} · long hauler {"slots":5,"engines":4,"legs":false}

Files

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