Water Cooler
A floor-standing office water cooler at real size (1.43 m with its bottle): a chamfered cabinet with a recessed dispensing niche, hot (red, child-lock) and cold (blue) push taps under a hood, a drip tray with a grille, a cupboard door, side vents and a rear cooling coil. A ribbed 19-litre bottle sits upside down in the collar, filled to any level, or the plumbed bottleless version has a capped top. A paper-cup tube hangs on the side; the power lights and the night light over the drip tray glow after dark.
- Size
- 0.41 × 1.4 × 0.44 m
- Triangles
- 1,728
Tune it
4 knobs: Colourway, Type, Water level, Cup dispenser.
Specs
- Size
- 0.41 × 1.4 × 0.44 m width × height × depth
- Triangles
- 1,728 of 6,000
- Draw calls
- 1 one vertex-colour material
- Knobs
- 4 3 presets
- Night lights
- 1 led
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/water-cooler.mjs';
const waterCooler = createAsset();
scene.add(waterCooler); // rests on y = 0, front faces +Zimport { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/water-cooler.mjs';
export function WaterCooler() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import water-cooler.glb (download below). It is a static mesh, one material per colour.
add_child(preload("res://water-cooler.glb").instantiate())// Import water-cooler.glb with glTFast (com.unity.cloud.gltfast).
// Drop it in the scene: 1 unit = 1 metre, +Z is its front.Use the gaitkit MCP server: get_variant({ "id": "water-cooler", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
colorway | choice | office black beige scifi | office | office (off-white cabinet, grey niche), black (black cabinet with a silver niche), beige (1980s retro beige and brown), scifi (pale panels, dark niche and a cyan night light). |
type | choice | bottle bottleless | bottle | bottle (a big blue 19-litre bottle upside down on top) or bottleless (plumbed in: a taller cabinet with a rounded top cap and a filter light, no bottle). |
water | range | 0 to 1, step 0.05 | 0.7 | How full the bottle is, 0 (empty, pale) to 1 (full). The water sits in the neck end, which points down. |
cups | toggle | on / off | true | A tube of paper cups clipped to the right side of the cabinet. |
Presets: break room {"colorway":"office","water":0.45} · retro lobby {"colorway":"beige","water":0.9,"cups":false} · starship hydration {"colorway":"scifi","type":"bottleless"}
Files
| File | What |
|---|---|
| water-cooler.glb | GLB, default look · 200 KB |
| water-cooler.mjs | ES module, every knob live |
| water-cooler.obj | OBJ, static; colours in the .mtl |
| water-cooler.mtl | OBJ colours; keep it next to the .obj |
| water-cooler-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.