Gift Box
A wrapped present with a crossed ribbon and a looped bow on a hinged lid; stack up to three boxes. The top lid is a rotate part named lid hinged at its back edge; default box is 35 cm wide.
- Size
- 0.37 × 0.35 × 0.32 m
- Triangles
- 534
- Kit
- Seasonal
Tune it
5 knobs: Size, Paper, Ribbon, Pattern, Stack.
Specs
- Size
- 0.37 × 0.35 × 0.32 m width × height × depth
- Triangles
- 534 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.
import { createAsset } from 'https://gaitkit.com/cdn/gift-box.mjs';
const giftBox = createAsset();
scene.add(giftBox); // rests on y = 0, front faces +Z
// 'lid' pivots on its hinge: -105° to 0° around x
giftBox.getObjectByName('lid').rotation.x = THREE.MathUtils.degToRad(-105);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/gift-box.mjs';
export function GiftBox() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import gift-box.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$GiftBox/lid.rotation_degrees.x = -105// Import gift-box.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("lid").localEulerAngles = new Vector3(/* x: */ -105, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "gift-box", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
size | range | 0.15 to 1, step 0.05 | 0.35 | Width of the bottom box in metres. 0.15 is a small jewellery box, 1 a huge present. Stacked boxes get smaller going up. |
paper | choice | red green blue gold white purple | red | Wrapping paper colour of the bottom box: red, green, blue, gold, white or purple. Stacked boxes take the next colours along so a stack looks mixed. |
ribbon | choice | gold silver red white green | gold | Colour of the ribbon and bow: gold, silver, red, white or green. |
pattern | choice | plain stripes checks | stripes | Print on the paper: plain, stripes (pale vertical bands) or checks (a two-tone chequer). |
stack | range | 1 to 3, step 1 | 1 | How many presents are piled up, 1 to 3. Each box above is smaller and turned a little; only the top one carries the bow and the opening lid. |
Presets: birthday stack {"stack":3,"paper":"blue","ribbon":"gold","pattern":"checks"} · snow white parcel {"paper":"white","ribbon":"red","pattern":"plain","size":0.45} · tiny gold box {"paper":"gold","ribbon":"silver","pattern":"plain","size":0.18}
Files
| File | What |
|---|---|
| gift-box.glb | GLB, default look · 65 KB |
| gift-box.mjs | ES module, every knob live |
| gift-box.obj | OBJ, static, no colour |
| gift-box-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.