Gaitkit Sign in Open the lab
Display Case, A 98 cm glass-topped shop counter (1.2 m wide by default, 0.9 to 1.8 m): a chamfered base cabinet with inset panels and a recessed plinth, a glass case with corner posts, framed top and front glass, a velvet or tray deck and a stepped back riser, a strip lamp under the front rail that lights the goods at night, and sliding glass doors on the staff side (-Z, rigged sliding_door). Seeded goods: jewellery (ring pads, necklace busts, watch cushions), bakery cakes and pastries, phones and gadgets on stands, or perfume bottles.
Prop · 1 moving part

Display Case

A 98 cm glass-topped shop counter (1.2 m wide by default, 0.9 to 1.8 m): a chamfered base cabinet with inset panels and a recessed plinth, a glass case with corner posts, framed top and front glass, a velvet or tray deck and a stepped back riser, a strip lamp under the front rail that lights the goods at night, and sliding glass doors on the staff side (-Z, rigged sliding_door). Seeded goods: jewellery (ring pads, necklace busts, watch cushions), bakery cakes and pastries, phones and gadgets on stands, or perfume bottles.

Size
1.2 × 0.98 × 0.59 m
Triangles
1,534
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

4 knobs: Finish, Width, Contents, Seed.

Specs

Size
1.2 × 0.98 × 0.59 m
width × height × depth
Triangles
1,534
of 6,000
Draw calls
1
one vertex-colour material
Moving parts
1
sliding_door · slide
Knobs
4
3 presets
Night lights
2
lamp, 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.

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

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

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

Knobs

KnobTypeValuesDefaultWhat it does
finishchoicemodern boutique retro neonboutiquemodern (pale grey cabinet with brushed aluminium frame), boutique (walnut with brass frame), retro (dark mahogany, brass and a green felt band), neon (graphite with a glowing cyan strip round the base).
widthrange0.9 to 1.8, step 0.11.2Counter length in metres (0.9 to 1.8). Depth 55 cm and height 98 cm stay fixed so cases line up into a run.
contentschoicejewelry bakery gadgets perfume emptyjewelryWhat is on display: jewelry (rings on pads, necklaces on busts, watches on cushions over navy velvet), bakery (cakes, tarts, croissants and donuts), gadgets (phones, watches and earbud cases on stands), perfume (lathed bottles with caps) or empty.
seedrange1 to 40, step 15Shuffles which goods sit where and their colours.

Presets: jeweller {"finish":"boutique","contents":"jewelry","width":1.2} · patisserie {"finish":"modern","contents":"bakery","width":1.6,"seed":9} · phone kiosk {"finish":"neon","contents":"gadgets","width":1,"seed":3}

Files

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