{"data":{"id":"30170","slug":"viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30","title":"Turf Roof Ridge Cap (Viking Age Longhouse and Longship)","summary":"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.","description":"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.","status":"published","url":"https://3dassets.dev/assets/viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30","cdnUrl":"https://cdn.3dassets.dev/assets/30170/v1/model.glb","downloadUrl":"https://3dassets.dev/download/viking-age-longhouse-and-longship-turf-roof-ridge-cap-ecbdea30","thumbnailUrl":"https://cdn.3dassets.dev/assets/30170/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/30170/v1/poster.webp","blurhash":"U27dRJ-.0h#mNO^%%KE300E8}?tNxl029c-V","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":104500,"triangles":1652,"vertices":1468,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-1.5,0.000014694252565561339,-0.36475722525711846],"max":[1.5,0.4813619257554411,0.36475722525711846]},"sizeMeters":[3,0.481,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:12:46.378Z","updatedAt":"2026-09-08T05:12:46.482Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/30170/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TurfRoofRidgeCapVikingAgeLonghouseAndLongship(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/30170/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/30170/v1/model.glb')","modelViewer":"<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":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/30170/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/30170/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}}