Kitchen Counter
A straight kitchen run of 60 cm base units at real counter height (90 cm): cabinet doors on hinges, drawers that slide out, an oven door that drops open, an inset sink with a tap and a four-ring hob, on a tiled splashback with optional wall cabinets and a cooker hood.
- Size
- 2.4 × 2.1 × 0.64 m
- Triangles
- 2,252
- Kit
- Interiors
Tune it
4 knobs: Units, Cabinets, Worktop, Wall cabinets.
Specs
- Size
- 2.4 × 2.1 × 0.64 m width × height × depth
- Triangles
- 2,252 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 15 drawer_0 · slide, drawer_1 · slide, drawer_2 · slide, door_0 · rotate, door_1 · rotate, door_2 · rotate, door_3 · rotate, drawer_3 · slide, oven_door · rotate, wall_door_4 · rotate, wall_door_5 · rotate, wall_door_6 · rotate, wall_door_7 · rotate, wall_door_8 · rotate, wall_door_9 · rotate
- Knobs
- 4 3 presets
- Night lights
- 0 none
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/kitchen-counter.mjs';
const kitchenCounter = createAsset();
scene.add(kitchenCounter); // rests on y = 0, front faces +Z
// 'door_0' pivots on its hinge: -100° to 0° around y
kitchenCounter.getObjectByName('door_0').rotation.y = THREE.MathUtils.degToRad(-100);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/kitchen-counter.mjs';
export function KitchenCounter() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import kitchen-counter.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$KitchenCounter/door_0.rotation_degrees.y = -100// Import kitchen-counter.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("door_0").localEulerAngles = new Vector3(/* y: */ -100, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "kitchen-counter", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
units | range | 2 to 6, step 1 | 4 | Number of 60 cm base units, 2 to 6 (1.2 to 3.6 m long). Always a sink and a hob with an oven; longer runs add door cupboards and drawer stacks. |
cabinets | choice | white sage navy oak charcoal | sage | Cabinet front colour: white, sage (green), navy, oak (wood) or charcoal. Painted fronts get brass pulls, white and oak get black. |
worktop | choice | oak quartz granite concrete | oak | Worktop: oak (butcher block), quartz (white stone), granite (black) or concrete (grey). |
uppers | toggle | on / off | true | Wall cabinets above the counter (with doors that open) and a chimney cooker hood over the hob. Off leaves a lower tiled splashback only. |
Presets: cottage kitchen {"units":5,"cabinets":"sage","worktop":"oak","uppers":true} · city kitchenette {"units":3,"cabinets":"charcoal","worktop":"concrete","uppers":false} · navy shaker {"units":6,"cabinets":"navy","worktop":"quartz","uppers":true}
Files
| File | What |
|---|---|
| kitchen-counter.glb | GLB, default look · 341 KB |
| kitchen-counter.mjs | ES module, every knob live |
| kitchen-counter.obj | OBJ, static, no colour |
| kitchen-counter-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.