Gaitkit Open the lab
Road Tile, A tileable road piece for a city grid: straight, corner, T-junction, crossroads, zebra crosswalk or dead-end, with 2 or 4 lanes, curbed sidewalks or grass verges and painted lines. 2-lane pieces are exactly 10 x 10 m (7 m road, 1.5 m sidewalks), 4-lane pieces 20 x 20 m (14 m road, 3 m sidewalks), so they fill one or four 10 m grid cells. The road meets each open edge centred, so pieces snap edge to edge; rotate in 90 degree steps. userData.tile lists the open edges (N = -Z, E = +X, S = +Z, W = -X).
Prop · Still

Road Tile

A tileable road piece for a city grid: straight, corner, T-junction, crossroads, zebra crosswalk or dead-end, with 2 or 4 lanes, curbed sidewalks or grass verges and painted lines. 2-lane pieces are exactly 10 x 10 m (7 m road, 1.5 m sidewalks), 4-lane pieces 20 x 20 m (14 m road, 3 m sidewalks), so they fill one or four 10 m grid cells. The road meets each open edge centred, so pieces snap edge to edge; rotate in 90 degree steps. userData.tile lists the open edges (N = -Z, E = +X, S = +Z, W = -X).

Size
10.0 × 0.27 × 10.0 m
Triangles
486
Open in the lab Ready for any engine. The download carries the knobs you set here.

Tune it

4 knobs: Piece, Lanes, Sidewalk, Lines.

Specs

Size
10.0 × 0.27 × 10.0 m
width × height × depth
Triangles
486
of 6,000
Draw calls
1
one vertex-colour material
Knobs
4
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/road-tile.mjs';

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

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

Knobs

KnobTypeValuesDefaultWhat it does
piecechoicestraight corner t-junction crossroads crosswalk dead-endcrossroadsstraight (runs N-S), corner (bend joining S and E), t-junction (E-W through road with a side road to S), crossroads (all four edges), crosswalk (straight with a zebra crossing and tactile paving), dead-end (road from S ending in a round turning bulb).
laneschoice2 422 lanes of 3.5 m on a 10 m tile, or 4 lanes of 3.5 m on a 20 m tile (a 2 x 2 block of grid cells). Do not mix them on one edge.
sidewalktoggleon / offtrueRaised paved sidewalks with a 15 cm concrete curb. Off gives low grass verges at road level (suburban or rural edge) and white edge lines.
lineschoicedashed double yellow nonedashedRoad markings: dashed (white dashed centre line, European style), double yellow (solid double yellow centre, American style), none (unmarked lane). Lane dividers on 4 lanes are dashed white; junction arms get stop lines.

Presets: downtown crossing {"piece":"crosswalk","lanes":4,"lines":"double yellow"} · country bend {"piece":"corner","sidewalk":false,"lines":"dashed"} · cul-de-sac {"piece":"dead-end","lines":"none"}

Files

FileWhat
road-tile.glbGLB, default look · 38 KB
road-tile.mjsES module, every knob live
road-tile.objOBJ, static, no colour
road-tile-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.