Ceiling Lamp
A hanging ceiling light at real size: a metal dome pendant with a rolled rim, a fabric drum with a diffuser, an opal glass globe, a five-arm chandelier with candle bulbs, or a cluster of three pendants at staggered heights on a linear canopy. Each hangs on a cord or rod from a ceiling canopy and sways gently (rig sway, sway_0..2 for the cluster); the bulb, the lit inside of the shade and the globe glow at night. The model rests on y = 0 at the bottom of the lowest shade, and the top of the canopy is the ceiling: place it at ceiling height minus userData.mount.height. Four Home Furniture styles: scandi oak, mid-century walnut (brass), white modern (black), rustic pine (iron and green enamel).
- Size
- 0.41 × 0.89 × 0.41 m
- Triangles
- 834
Tune it
3 knobs: Type, Style, Drop.
Specs
- Size
- 0.41 × 0.89 × 0.41 m width × height × depth
- Triangles
- 834 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 1 sway · rotate
- Knobs
- 3 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/ceiling-lamp.mjs';
const ceilingLamp = createAsset();
scene.add(ceilingLamp); // rests on y = 0, front faces +Z
// 'sway' pivots on its hinge: -4° to 4° around z
ceilingLamp.getObjectByName('sway').rotation.z = THREE.MathUtils.degToRad(-4);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/ceiling-lamp.mjs';
export function CeilingLamp() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import ceiling-lamp.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$CeilingLamp/sway.rotation_degrees.z = -4// Import ceiling-lamp.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("sway").localEulerAngles = new Vector3(/* z: */ -4, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "ceiling-lamp", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
type | choice | dome drum globe chandelier cluster | dome | dome (a 40 cm metal dome with a rolled rim and a lit white inside), drum (a 45 cm fabric drum shade with a frosted diffuser underneath), globe (a 30 cm opal glass ball on a collar), chandelier (five curved arms with candle bulbs round a turned hub, 60 cm across), cluster (three small pendants at staggered heights from a 90 cm bar canopy, for a dining table or kitchen island). |
style | choice | scandi oak mid-century walnut white modern rustic pine | scandi oak | scandi oak (white painted metal, oak caps), mid-century walnut (brass with a mustard dome, walnut details), white modern (matt black), rustic pine (black iron with a green enamel dome and pine). Matches the other Home Furniture pieces. |
drop | range | 0.2 to 1.5, step 0.05 | 0.6 | Length of the cord or rod between the ceiling canopy and the shade, in metres. Total height is the drop plus the fitting (about 0.3 m, 0.55 m for the chandelier). |
Presets: brass dome {"type":"dome","style":"mid-century walnut","drop":0.5} · farmhouse chandelier {"type":"chandelier","style":"rustic pine","drop":0.4} · kitchen island cluster {"type":"cluster","style":"white modern","drop":0.9}
Files
| File | What |
|---|---|
| ceiling-lamp.glb Pro | GLB, default look · 87 KB |
| ceiling-lamp.mjs Pro | ES module, every knob live |
| ceiling-lamp.obj Pro | OBJ, static; colours in the .mtl |
| ceiling-lamp.mtl | OBJ colours; keep it next to the .obj |
| ceiling-lamp-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.