Nightstand
A bedside table at real size (about 60 cm tall, 40 cm deep, 40 to 60 cm wide) with 0 to 3 drawers that slide out (drawer_0..) or an open shelf, in the four Home Furniture styles: scandi oak (round knobs, tapered legs), mid-century walnut (grip groove with a brass lip, splayed legs), white modern (black bar pull, hairpin legs) or rustic pine (raised panel, iron cup pull, bun feet). On top: a linen-shaded table lamp with a book and glasses, or a stack of books with an alarm clock and a small plant. The lamp glows at night.
- Size
- 0.50 × 1.0 × 0.45 m
- Triangles
- 1,524
Tune it
5 knobs: Style, Width, Drawers, Legs, On top.
Specs
- Size
- 0.50 × 1.0 × 0.45 m width × height × depth
- Triangles
- 1,524 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 1 drawer_0 · slide
- Knobs
- 5 3 presets
- Night lights
- 1 lamp
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/nightstand.mjs';
const nightstand = createAsset();
scene.add(nightstand); // rests on y = 0, front faces +Zimport { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/nightstand.mjs';
export function Nightstand() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import nightstand.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
add_child(preload("res://nightstand.glb").instantiate())// Import nightstand.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": "nightstand", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
style | choice | scandi oak mid-century walnut white modern rustic pine | scandi oak | scandi oak (pale oak, round black knob, tapered legs, white ceramic lamp), mid-century walnut (dark walnut, grip groove with a brass lip, splayed legs, mustard lamp), white modern (matt white, black bar pull, hairpin legs, black lamp), rustic pine (honey pine, raised panel, iron cup pull, bun feet, stoneware lamp). Matches the other Home Furniture pieces. |
width | range | 0.4 to 0.6, step 0.05 | 0.48 | Width in metres, 0.4 to 0.6. Depth stays 40 cm. |
drawers | range | 0 to 3, step 1 | 1 | 0 (two open shelves), 1 (a drawer over an open shelf), 2 or 3 (a stack of drawers, no shelf). The body is always about 40 cm tall. |
legs | choice | auto tapered splayed hairpin plinth bun | auto | auto (the style's own legs), tapered, splayed (angled with brass caps), hairpin (black steel wire), plinth (a recessed base) or bun (turned bun feet). |
decor | choice | lamp books none | lamp | lamp (a table lamp with a linen shade, a book and reading glasses; glows at night), books (a stack of books, an alarm clock and a small plant), none (bare top). |
Presets: hotel bedside {"style":"mid-century walnut","drawers":1,"decor":"lamp"} · cottage night table {"style":"rustic pine","drawers":2,"decor":"books"} · studio minimal {"style":"white modern","drawers":0,"width":0.4,"decor":"lamp"}
Files
| File | What |
|---|---|
| nightstand.glb Pro | GLB, default look · 223 KB |
| nightstand.mjs Pro | ES module, every knob live |
| nightstand.obj Pro | OBJ, static; colours in the .mtl |
| nightstand.mtl | OBJ colours; keep it next to the .obj |
| nightstand-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.