Gaitkit Sign in Open the lab
Sink Unit, A kitchen sink base unit at counter height (90 cm, 60 cm deep; 60, 100 or 120 cm wide): a chamfered worktop with an inset steel or black composite sink and a ribbed drainer, or a white ceramic farmhouse sink with an apron front, a gooseneck mixer (a bridge tap with cross handles on the retro finish), a dish rack with plates, soap and a sponge, and cupboard doors that swing open (door_0, door_1, ...) onto the waste trap and cleaning bottles.
Prop · 2 moving parts

Sink Unit

A kitchen sink base unit at counter height (90 cm, 60 cm deep; 60, 100 or 120 cm wide): a chamfered worktop with an inset steel or black composite sink and a ribbed drainer, or a white ceramic farmhouse sink with an apron front, a gooseneck mixer (a bridge tap with cross handles on the retro finish), a dish rack with plates, soap and a sponge, and cupboard doors that swing open (door_0, door_1, ...) onto the waste trap and cleaning bottles.

Size
1.0 × 1.2 × 0.64 m
Triangles
1,242
Open in the lab

ProPro download.

Also as , a .zip with the .obj and its .mtl.

Ready for any engine. The download carries the knobs you set here.

Tune it

5 knobs: Width, Basin, Finish, Handles, Open.

Specs

Size
1.0 × 1.2 × 0.64 m
width × height × depth
Triangles
1,242
of 6,000
Draw calls
1
one vertex-colour material
Moving parts
2
door_0 · rotate, door_1 · rotate
Knobs
5
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.

JavaScript
import { createAsset } from 'https://gaitkit.com/cdn/sink-unit.mjs';

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

// 'door_0' pivots on its hinge: -100° to 0° around y
sinkUnit.getObjectByName('door_0').rotation.y = THREE.MathUtils.degToRad(-100);

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

Knobs

KnobTypeValuesDefaultWhat it does
sizechoicesingle drainer doubledrainersingle (60 cm, one bowl), drainer (100 cm, a bowl and a ribbed draining board with a dish rack) or double (120 cm, two bowls and a narrow drainer, four doors).
basinchoicesteel composite ceramicsteelsteel (inset stainless bowls with a flange), composite (the same in matt black granite composite) or ceramic (a deep white farmhouse sink with an apron front over shorter doors).
finishchoicewhite stainless black retrowhiteCabinet finish and matching worktop: white (oak top), stainless (all steel, a catering look), black (grey stone top, black tap) or retro (pastel mint, cream laminate with a chrome edge, a bridge tap).
handlechoicebar edge leverbarbar (steel bar pulls), edge (slim pull lips along the top of the doors) or lever (chunky chrome retro pulls).
openrange0 to 1, step 0.050How far the cupboard doors are open as built: 0 closed, 1 wide open (100 degrees).

Presets: family kitchen {"size":"drainer","basin":"steel","finish":"white"} · farmhouse sink {"size":"double","basin":"ceramic","finish":"black","open":0.4} · retro diner {"size":"single","basin":"steel","finish":"retro","handle":"lever"}

Files

FileWhat
sink-unit.glb ProGLB, default look · 181 KB
sink-unit.mjs ProES module, every knob live
sink-unit.obj ProOBJ, static; colours in the .mtl
sink-unit.mtlOBJ colours; keep it next to the .obj
sink-unit-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.