Viking Longhouse
A Norse longhouse with gently bowed long walls under a low hipped roof of turf, thatch or wooden shingles, a smoke hole on the ridge over the hearth, a hinged plank door in the +Z long wall and optional slanting outer buttress posts. 6.5 m wide and 14 to 40 m long; the hearth glows through the smoke hole and doorway at night.
- Size
- 25.0 × 7.5 × 9.7 m
- Triangles
- 2,460
Tune it
5 knobs: Length, Roof, Walls, Door open, Buttress posts.
Specs
- Size
- 25.0 × 7.5 × 9.7 m width × height × depth
- Triangles
- 2,460 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 1 door · rotate
- Knobs
- 5 3 presets
- Night lights
- 1 hearth
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/viking-longhouse.mjs';
const vikingLonghouse = createAsset();
scene.add(vikingLonghouse); // rests on y = 0, front faces +Z
// 'door' pivots on its hinge: -100° to 0° around y
vikingLonghouse.getObjectByName('door').rotation.y = THREE.MathUtils.degToRad(-100);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/viking-longhouse.mjs';
export function VikingLonghouse() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import viking-longhouse.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$VikingLonghouse/door.rotation_degrees.y = -100// Import viking-longhouse.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": "viking-longhouse", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
length | range | 14 to 40, step 1 | 24 | Length of the hall in metres. 14 is a small farmhouse; 24 a large farm; 40 a chieftain's hall. Width stays 6.5 m. |
roof | choice | turf thatch shingle | turf | turf (thick grass-grown sod, Iceland and Norway), thatch (straw or reed, Denmark) or shingle (overlapping wooden shingles, rich halls). |
walls | choice | stave wattle turf | stave | stave (vertical oak planks), wattle (woven wattle plastered with pale daub between dark posts) or turf (thick stacked sod walls, as in Iceland). |
door | range | 0 to 1, step 0.05 | 0 | How far the plank door in the middle of the +Z wall swings open (0 shut, 1 wide open). Same as rotating the door part. |
posts | toggle | on / off | true | Slanting timber posts propping the long walls from outside, as on the great ring-fortress halls. |
Presets: chieftain hall {"length":36,"roof":"shingle","walls":"stave","posts":true} · icelandic turf house {"length":16,"roof":"turf","walls":"turf","posts":false} · danish farmstead {"length":22,"roof":"thatch","walls":"wattle","posts":false,"door":0.6}
Files
| File | What |
|---|---|
| viking-longhouse.glb | GLB, default look · 347 KB |
| viking-longhouse.mjs | ES module, every knob live |
| viking-longhouse.obj | OBJ, static, no colour |
| viking-longhouse-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.