Lifeguard Tower
A beach lifeguard post: a painted hut on stilts (deck at 1.8 m, about 5.5 m long with its ramp) with a big sea-facing window toward +Z, a hinged side door, a railing and a roof flag, or a 2.5 m tall wooden lifeguard chair with a ladder and a sunshade. The window glows at night.
- Size
- 5.9 × 5.9 × 2.9 m
- Triangles
- 696
- Kit
- Outdoors
Tune it
5 knobs: Style, Paint, Flag, Rescue gear, Door open.
Specs
- Size
- 5.9 × 5.9 × 2.9 m width × height × depth
- Triangles
- 696 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 1 door · rotate
- Knobs
- 5 3 presets
- Night lights
- 1 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.
import { createAsset } from 'https://gaitkit.com/cdn/lifeguard-tower.mjs';
const lifeguardTower = createAsset();
scene.add(lifeguardTower); // rests on y = 0, front faces +Z
// 'door' pivots on its hinge: -100° to 0° around y
lifeguardTower.getObjectByName('door').rotation.y = THREE.MathUtils.degToRad(-100);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/lifeguard-tower.mjs';
export function LifeguardTower() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import lifeguard-tower.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$LifeguardTower/door.rotation_degrees.y = -100// Import lifeguard-tower.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("door").localEulerAngles = new Vector3(/* y: */ -100, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "lifeguard-tower", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
style | choice | hut chair | hut | hut (an enclosed lookout cabin on stilts with a ramp, deck and railing) or chair (an open high wooden chair with a ladder and a sunshade, as at a pool or a quiet beach). |
paint | choice | yellow red sky teal white | yellow | Main paint colour: yellow, red, sky (light blue), teal or white. Trim is white, or teal on a white hut. |
flag | choice | red yellow red and yellow none | red and yellow | Beach safety flag on the pole: red (no swimming), yellow (take care), red and yellow (patrolled swimming zone), or none. |
buoy | toggle | on / off | true | Hang an orange rescue tube on the railing (hut) or a ring buoy on the chair. |
door | range | 0 to 1, step 0.05 | 0 | Opens the hut side door (a hinged part named door): 0 shut, 1 swung fully open. |
Presets: surf patrol {"style":"hut","paint":"red","flag":"red and yellow"} · pastel beach {"style":"hut","paint":"sky","flag":"yellow","door":1} · pool chair {"style":"chair","paint":"white","flag":"none"}
Files
| File | What |
|---|---|
| lifeguard-tower.glb | GLB, default look · 115 KB |
| lifeguard-tower.mjs | ES module, every knob live |
| lifeguard-tower.obj | OBJ, static, no colour |
| lifeguard-tower-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.