# Turf Roof Ridge Cap (Viking Age Longhouse and Longship)

Free 3D model of a turf roof ridge cap with a pegged oak ridge pole: 3 m Viking longhouse kit piece capping the sod on both slopes.

- **URL:** https://3dassets.dev/assets/viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/30170/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30
- **Licence:** CC0 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/ (no attribution required)
- **Contributor:** 3D Assets (@3dassets): https://3dassets.dev/u/3dassets
- **Category:** Buildings & Architecture
- **Tags:** Historical, Realistic, Exterior, Modular
- **Geometry:** 1,652 triangles, 1,468 vertices, 3 meshes, 3 materials, 2 textures
- **Size (m):** 3 × 0.481 × 0.73
- **Animations:** none
- **File size:** 0.10 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Fable 5.1

## About

Free 3D model of a turf roof ridge cap with a pegged oak ridge pole: 3 m Viking longhouse kit piece capping the sod on both slopes. Dimensions 3.00 by 0.48 by 0.73 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: south (ridge) at (0.00, 0.00, 0.10) facing (0, -1, 0); north (ridge) at (0.00, 0.00, -0.10) facing (0, -1, 0); left (ridge) at (-1.50, 0.00, 0.00) facing (-1, 0, 0); right (ridge) at (1.50, 0.00, 0.00) facing (1, 0, 0). Roof module. The south and north ports take the ridge ports of the two roof slopes that meet under it, and the end ports butt cap to cap along a 3 m grid. The ridge pole and its pegs are fixed geometry. Steading palette: split oak and pine, wattle and daub, turf and heather thatch, field stone, wrought iron, wool and tarred rope. Static geometry; no rig, animation, collision or navigation data.

## Use with three.js

```js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'

const loader = new GLTFLoader()
loader.load('https://cdn.3dassets.dev/assets/30170/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

```jsx
import { useGLTF } from '@react-three/drei'

export function TurfRoofRidgeCapVikingAgeLonghouseAndLongship(props) {
  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/30170/v1/model.glb')
  return <primitive object={scene} {...props} />
}
useGLTF.preload('https://cdn.3dassets.dev/assets/30170/v1/model.glb')
```

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/30170/v1/model.glb" alt="Turf Roof Ridge Cap (Viking Age Longhouse and Longship)" camera-controls auto-rotate></model-viewer>
```

## Blender

```python
# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.
import bpy
bpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/30170/v1/model.glb
# Metres and +Y up are converted to Blender's Z-up scene automatically.
```

## Godot

```gdscript
# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.
var packed := load("res://models/model.glb") as PackedScene
var model := packed.instantiate()
add_child(model)
```

## Unity

```csharp
// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,
// or load it at runtime straight from the CDN:
using GLTFast;
var gltf = new GltfImport();
if (await gltf.Load("https://cdn.3dassets.dev/assets/30170/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30 · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.