Bookshelf
An open bookcase filled with seeded rows of books of varied heights and colours, leaning books, flat stacks and a few objects (plant, vase, box). 30 cm deep, 36 cm between shelves; width, shelf count, fill and seed are knobs.
- Size
- 1.0 × 1.9 × 0.32 m
- Triangles
- 1,410
- Kit
- Interiors
Tune it
5 knobs: Width, Shelves, Fill, Wood, Seed.
Specs
- Size
- 1.0 × 1.9 × 0.32 m width × height × depth
- Triangles
- 1,410 of 6,000
- Draw calls
- 1 one vertex-colour material
- 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/bookshelf.mjs';
const bookshelf = createAsset();
scene.add(bookshelf); // rests on y = 0, front faces +Zimport { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/bookshelf.mjs';
export function Bookshelf() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import bookshelf.glb (download below). It is a static mesh, one material per colour.
add_child(preload("res://bookshelf.glb").instantiate())// Import bookshelf.glb with glTFast (com.unity.cloud.gltfast).
// Drop it in the scene: 1 unit = 1 metre, +Z is its front.Use the gaitkit MCP server: get_variant({ "id": "bookshelf", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
width | range | 0.6 to 1.8, step 0.1 | 1 | Width in metres. 0.6 is a narrow single bay, 1.0 a standard bookcase, 1.8 a wide unit split into two bays by a divider. |
shelves | range | 2 to 6, step 1 | 5 | Number of shelf rows (compartments). Height follows: 2 is a low 80 cm unit, 5 about 1.9 m, 6 about 2.25 m. |
fill | range | 0 to 1, step 0.1 | 0.75 | How full the shelves are. 0 is empty, 0.5 half-filled with room for objects, 1 packed tight with books. |
wood | choice | oak walnut white black | oak | Carcass finish: oak (honey), walnut (dark), white (painted) or black (lacquered). |
seed | range | 1 to 99, step 1 | 7 | Shuffles which books, colours, stacks and objects end up on each shelf. Same seed, same shelf. |
Presets: old library {"width":1.8,"shelves":6,"fill":1,"wood":"walnut","seed":12} · scandi shelf {"width":0.8,"shelves":4,"fill":0.5,"wood":"white","seed":3} · office archive {"width":1.2,"shelves":5,"fill":0.9,"wood":"black","seed":41}
Files
| File | What |
|---|---|
| bookshelf.glb | GLB, default look · 223 KB |
| bookshelf.mjs | ES module, every knob live |
| bookshelf.obj | OBJ, static, no colour |
| bookshelf-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.