Gaitkit Sign in Open the lab
Shopping Basket, A supermarket hand basket at real size (43 x 30 cm, 22 cm deep): a tapered moulded-plastic lattice basket with a thick rim, corner posts and runners, a chrome wire basket, or a woven wicker market basket with a cloth liner. Two U-shaped handles pivot on the end walls (rigged handle_0 and handle_1, rotate x) and stand up to meet over the middle or fold flat outward; a seeded load of fruit, bottles, cartons, bread and cans sits inside.
Prop · 2 moving parts

Shopping Basket

A supermarket hand basket at real size (43 x 30 cm, 22 cm deep): a tapered moulded-plastic lattice basket with a thick rim, corner posts and runners, a chrome wire basket, or a woven wicker market basket with a cloth liner. Two U-shaped handles pivot on the end walls (rigged handle_0 and handle_1, rotate x) and stand up to meet over the middle or fold flat outward; a seeded load of fruit, bottles, cartons, bread and cans sits inside.

Size
0.46 × 0.39 × 0.33 m
Triangles
1,530
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: Style, Colour, Handles, Items, Seed.

Specs

Size
0.46 × 0.39 × 0.33 m
width × height × depth
Triangles
1,530
of 6,000
Draw calls
1
one vertex-colour material
Moving parts
2
handle_0 · rotate, handle_1 · 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/shopping-basket.mjs';

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

// 'handle_0' pivots on its hinge: -20° to 100° around x
shoppingBasket.getObjectByName('handle_0').rotation.x = THREE.MathUtils.degToRad(-20);

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

Knobs

KnobTypeValuesDefaultWhat it does
stylechoiceplastic wire wickerplasticplastic (moulded lattice basket in the colour, supermarket style), wire (chrome wire grid with coloured handle grips) or wicker (woven willow market basket with a cloth liner in the colour folded over the rim).
colorchoicered green blue black orangeredred, green, blue, black or orange: the plastic body, the wire basket's handle grips, or the wicker basket's cloth liner.
handleschoiceup foldedupup (both handles raised to meet over the middle, ready to carry) or folded (laid flat outward over the long sides, for stacking).
itemsrange0 to 7, step 15How many groceries are in the basket, 0 (empty) to 7.
seedrange1 to 60, step 12Shuffles which groceries are in the basket and where they sit.

Presets: grocery run {"style":"plastic","color":"red","handles":"up","items":6,"seed":2} · farmers market {"style":"wicker","color":"green","handles":"up","items":4,"seed":9} · basket stack {"style":"plastic","color":"blue","handles":"folded","items":0}

Files

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