Bike Rack
A row of bicycle parking along X: steel hoops (Sheffield stands), a serpentine wave rack or low wheel-slot stands, with 0 to 6 parked bicycles in seeded colours. Real scale: bikes are 1.75 m long, hoops 0.85 m tall; the row tiles along X (userData.tile).
- Size
- 3.2 × 0.98 × 1.7 m
- Triangles
- 1,444
- Kit
- City Street
Tune it
5 knobs: Style, Spaces, Bikes, Finish, Seed.
Specs
- Size
- 3.2 × 0.98 × 1.7 m width × height × depth
- Triangles
- 1,444 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/bike-rack.mjs';
const bikeRack = createAsset();
scene.add(bikeRack); // rests on y = 0, front faces +Zimport { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/bike-rack.mjs';
export function BikeRack() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import bike-rack.glb (download below). It is a static mesh, one material per colour.
add_child(preload("res://bike-rack.glb").instantiate())// Import bike-rack.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": "bike-rack", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
style | choice | hoops wave slots | hoops | hoops (inverted-U steel stands, two bikes lean on each), wave (one serpentine tube, bikes roll into the dips), slots (low ground frame that grips the front wheel). |
spaces | range | 2 to 6, step 1 | 4 | How many parking places the rack has, 2 to 6 (hoops 0.9 m apart, wave dips 0.75 m, slots 0.7 m). |
bikes | range | 0 to 6, step 1 | 2 | How many bicycles are parked, 0 (empty rack) to 6; capped at the number of spaces. Seeded spaces fill first. |
finish | choice | steel black green blue yellow | steel | Rack finish: steel (galvanised), black, green, blue, yellow (high visibility). |
seed | range | 1 to 99, step 1 | 2 | Which spaces are taken, the bike frame colours, and city bikes with baskets versus sport bikes with drop bars. |
Presets: busy campus {"style":"hoops","spaces":6,"bikes":6,"seed":7} · empty wave {"style":"wave","spaces":5,"bikes":0,"finish":"yellow"} · shop front slots {"style":"slots","spaces":5,"bikes":2,"finish":"black"}
Files
| File | What |
|---|---|
| bike-rack.glb | GLB, default look · 198 KB |
| bike-rack.mjs | ES module, every knob live |
| bike-rack.obj | OBJ, static, no colour |
| bike-rack-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.