Gaitkit Sign in Open the lab
Donut Box, A cardboard bakery box of donuts at real size (half-dozen box 30 cm, dozen box 39 cm wide): ring donuts with a pale fried belt, icing that drips over the edge, rainbow sprinkles and chocolate drizzle, plus sugared jam donuts, on a waxed-paper liner; the lid with its tuck flap swings open on a back hinge (lid, rotate rig).
Prop · 1 moving part

Donut Box

A cardboard bakery box of donuts at real size (half-dozen box 30 cm, dozen box 39 cm wide): ring donuts with a pale fried belt, icing that drips over the edge, rainbow sprinkles and chocolate drizzle, plus sugared jam donuts, on a waxed-paper liner; the lid with its tuck flap swings open on a back hinge (lid, rotate rig).

Size
0.31 × 0.27 × 0.21 m
Triangles
1,240
Kit
Food
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: Donuts, Glaze, Lid open, Box, Seed.

Specs

Size
0.31 × 0.27 × 0.21 m
width × height × depth
Triangles
1,240
of 6,000
Draw calls
1
one vertex-colour material
Moving parts
1
lid · 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/donut-box.mjs';

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

// 'lid' pivots on its hinge: -115° to 0° around x
donutBox.getObjectByName('lid').rotation.x = THREE.MathUtils.degToRad(-115);

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

Knobs

KnobTypeValuesDefaultWhat it does
countrange1 to 12, step 16How many donuts are left: 1 to 6 come in a half-dozen box (3 x 2), 7 to 12 in a dozen box (4 x 3); empty cells show the liner.
glazechoiceassorted sprinkles chocolate strawberry glazedassortedassorted (a seeded mix of icings, sprinkles, drizzle and a sugared jam donut), sprinkles (every donut iced with rainbow sprinkles), chocolate (all chocolate, some with white drizzle), strawberry (pink icing, some with sprinkles), glazed (classic shiny sugar-glazed rings).
openrange0 to 1, step 0.050.8How far the lid is open as built: 0 closed, 1 thrown back past upright (115 degrees). The lid part also animates.
boxchoicekraft white pink mintkraftBox colour: kraft (brown cardboard with a red label), white, pink or mint; the inside is plain card.
seedrange1 to 60, step 15Reshuffles which donut gets which icing and topping, which cells are empty and how each donut sits.

Presets: office dozen {"count":12,"glaze":"assorted","box":"kraft","open":0.85,"seed":5} · pink party box {"count":6,"glaze":"sprinkles","box":"pink","open":0.75,"seed":12} · last one left {"count":1,"glaze":"chocolate","box":"white","open":0.9,"seed":3}

Files

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