Gaitkit Open the lab
Castle Keep, A generator for the central keep of a castle: a 8 to 12 m square stone great tower on a 4 m grid, 2 to 5 floors (3.5 m each over a 4 m undercroft), pilaster buttresses, an outside stair to a first-floor door, corner turrets or a stair tower, and a crenellated top, a hipped roof or spires. The seed reshapes the footprint, side or back wings, windows and banner colour. Windows glow at night.
Building · Still

Castle Keep

A generator for the central keep of a castle: a 8 to 12 m square stone great tower on a 4 m grid, 2 to 5 floors (3.5 m each over a 4 m undercroft), pilaster buttresses, an outside stair to a first-floor door, corner turrets or a stair tower, and a crenellated top, a hipped roof or spires. The seed reshapes the footprint, side or back wings, windows and banner colour. Windows glow at night.

Size
11.9 × 19.1 × 18.3 m
Triangles
3,640
Open in the lab Ready for any engine. The download carries the knobs you set here.

Tune it

5 knobs: Floors, Turrets, Roof, Stone, Seed.

Specs

Size
11.9 × 19.1 × 18.3 m
width × height × depth
Triangles
3,640
of 6,000
Draw calls
1
one vertex-colour material
Knobs
5
3 presets
Night lights
2
window, torch

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/castle-keep.mjs';

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

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

Knobs

KnobTypeValuesDefaultWhat it does
floorsrange2 to 5, step 13Storeys above the 4 m undercroft, 3.5 m each: 2 is a squat hall keep about 11 m to the walk, 5 a great tower about 21.5 m.
turretschoicefour corners front pair stair tower nonefour cornersfour corners (round turrets rising past the roofline at every corner), front pair (only the two front corners), stair tower (one tall round tower in the middle of the back face), none (a plain block).
roofchoicebattlements hipped spiresbattlementsbattlements (flat fighting top behind crenellations, turrets crenellated too), hipped (a tall slate roof inside the parapet), spires (hipped roof plus tall cone spires on every turret, fairy-tale look).
stonechoicelimestone granite sandstone slate redstonelimestoneStone for the whole kit: limestone (pale warm grey, classic), granite (neutral grey), sandstone (warm tan, desert fort), slate (dark blue-grey, grim northern hold), redstone (red-brown). Use the same value on every Castle piece so they match.
seedrange1 to 60, step 13Reshapes the keep: footprint (8 or 12 m each way), wings (none, a lower back wing or twin side wings), which floors get large windows, block shading and banner colour. Same seed, same keep.

Presets: norman great tower {"floors":4,"turrets":"four corners","roof":"battlements","stone":"limestone","seed":3} · fairy-tale palace {"floors":3,"turrets":"four corners","roof":"spires","stone":"limestone","seed":14} · border tower house {"floors":4,"turrets":"stair tower","roof":"hipped","stone":"slate","seed":8}

Files

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