General Store
A frontier general store with a false front and blank signboard, big display windows, a front door on a hinge (door rotates about y) and a boardwalk porch under a striped canvas awning, stacked with barrels, crates, flour sacks and tools. Windows and the porch lantern glow at night.
- Size
- 7.7 × 9.1 × 11.3 m
- Triangles
- 2,828
- Kit
- Wild West
Tune it
5 knobs: Paint, Storeys, Awning, Goods, Seed.
Specs
- Size
- 7.7 × 9.1 × 11.3 m width × height × depth
- Triangles
- 2,828 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 1 door · rotate
- Knobs
- 5 3 presets
- Night lights
- 2 window, lamp
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/general-store.mjs';
const generalStore = createAsset();
scene.add(generalStore); // rests on y = 0, front faces +Z
// 'door' pivots on its hinge: -100° to 0° around y
generalStore.getObjectByName('door').rotation.y = THREE.MathUtils.degToRad(-100);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/general-store.mjs';
export function GeneralStore() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import general-store.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$GeneralStore/door.rotation_degrees.y = -100// Import general-store.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("door").localEulerAngles = new Vector3(/* y: */ -100, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "general-store", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
paint | choice | faded blue mustard weathered cream oxblood | faded blue | Clapboard colourway: faded blue, mustard (ochre), weathered (bare boards), cream, oxblood (barn red). |
storeys | choice | 1 2 | 2 | One storey (low shop) or two (shop with living quarters above). |
awning | color | any colour | #a8483a | Stripe colour of the canvas awning (alternates with cream). #a8483a red, #3e6b5a green, #3e5566 blue, #c08a3a ochre. |
goods | range | 0 to 12, step 1 | 8 | How many goods sit on the porch: barrels, crates, flour sacks, a pickaxe and a broom. 0 is a bare porch. |
seed | range | 1 to 40, step 1 | 3 | Rearranges the goods on the porch. Same seed always builds the same store. |
Presets: trading post {"paint":"weathered","storeys":1,"awning":"#c08a3a","goods":12} · town mercantile {"paint":"cream","awning":"#3e6b5a","goods":6} · closed shop {"paint":"oxblood","goods":0,"awning":"#3e5566"}
Files
| File | What |
|---|---|
| general-store.glb | GLB, default look · 403 KB |
| general-store.mjs | ES module, every knob live |
| general-store.obj | OBJ, static, no colour |
| general-store-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.