{"data":{"id":116,"slug":"trench-line-1917","title":"Trench Line 1917","summary":"Modular period earthworks, dugouts, no man’s land, trench kit and rear-area transport.","description":"Trench line 1917 in the trench realistic family. Thirty modular trench pieces on a 3.0 m bay, fire bays, traverses, communication runs, junctions, three revetment styles, duckboards, fire steps, parapet and parados, sumps, ladders and a ramp exit; twelve dugouts and shelters; eighteen no man’s land pieces including craters, wire belts on a 6.0 m bay and a derelict early tank; twenty-two pieces of period kit; and twelve rear-area items including a light rail on a 1.1 m panel, horse-drawn carts and period vehicles. All designs are original with generic markings only, no national insignia, regimental marks or real model names, and every notice, label and map is blank. Two composed demonstrations. Static CC0 geometry prepared for human review; no rigs or animation.","url":"https://3dassets.dev/packs/trench-line-1917","coverUrl":"https://cdn.3dassets.dev/assets/8719/v1/poster.webp","assetCount":97,"aiGenerated":true,"aiGeneratedAssetCount":97,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":4399184,"totalTriangles":91584,"starterScene":{"id":"8719","slug":"trench-line-1917-front-line-sector-8e5e88ec-starter-scene","title":"Front Line Sector (Trench Line 1917)","summary":"Composed example for Trench Line 1917.","description":"Front-line sector demonstration: four fire bays stepped by traverses with a fire step, duckboards and sandbag parapet, a communication trench running back to an officer dugout entrance and aid post, ladders and a ramp exit, and a wire belt across cratered ground in front. Static layout of pack instances; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-front-line-sector-8e5e88ec-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/8719/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-front-line-sector-8e5e88ec-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/8719/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8719/v1/poster.webp","blurhash":"U584b+?b00t3xuM|M{xt009F~pkEE1%L-:IV","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"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":747808,"triangles":18470,"vertices":37487,"meshes":82,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-12.700000047683716,-2.1,-18.33000011444092],"max":[15.562549352645874,4.215499401092529,20.174999952316284]},"sizeMeters":[28.263,6.315,38.505],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.991Z","updatedAt":"2026-09-06T14:03:14.611Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8719/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FrontLineSectorTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8719/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8719/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8719/v1/model.glb\" alt=\"Front Line Sector (Trench Line 1917)\" 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/8719/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/8719/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"8624","slug":"trench-line-1917-fire-bay-straight-64969cfe","title":"Fire Bay Straight (Trench Line 1917)","summary":"Front-line fire bay with a fire step, revetted cheeks and a sandbag parapet.","description":"Fire bay 3.0 m long: a 1.2 m cut 2.1 m deep with corrugated revetment, duckboards, a chalk fire step at 0.55 m and two courses of parapet sandbags. Dimensions 3.00 x 3.05 x 3.51 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-fire-bay-straight-64969cfe","cdnUrl":"https://cdn.3dassets.dev/assets/8624/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-fire-bay-straight-64969cfe","thumbnailUrl":"https://cdn.3dassets.dev/assets/8624/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8624/v1/poster.webp","blurhash":"U5E{Rm^,00RO_N%g%M%100IU%L-;009FM{WA","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":70684,"triangles":1368,"vertices":4104,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.0000064219707252011204,-1.5499244666890468],"max":[1.5,3.050001247159751,1.9600290323422849]},"sizeMeters":[3,3.05,3.51],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:52.385Z","updatedAt":"2026-09-06T14:00:53.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8624/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireBayStraightTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8624/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8624/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8624/v1/model.glb\" alt=\"Fire Bay Straight (Trench Line 1917)\" 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/8624/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/8624/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8626","slug":"trench-line-1917-traverse-corner-8c27f407","title":"Traverse Corner (Trench Line 1917)","summary":"Right-angle traverse where the trench steps to break enfilade.","description":"Traverse corner turning 90 degrees with a solid earth traverse block, revetted cheeks, duckboards and a sandbag parapet. Dimensions 4.00 x 2.85 x 4.21 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-traverse-corner-8c27f407","cdnUrl":"https://cdn.3dassets.dev/assets/8626/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-traverse-corner-8c27f407","thumbnailUrl":"https://cdn.3dassets.dev/assets/8626/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8626/v1/poster.webp","blurhash":"U7DvJ]s+00%M~q4oIA_2009ZnhxtIo%MRiRj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":68452,"triangles":1332,"vertices":3996,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.7999999523162842,0,-2.009872728991298],"max":[2.200000047683716,2.8498931862151258,2.200000047683716]},"sizeMeters":[4,2.85,4.21],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:53.647Z","updatedAt":"2026-09-06T14:00:54.377Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8626/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TraverseCornerTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8626/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8626/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8626/v1/model.glb\" alt=\"Traverse Corner (Trench Line 1917)\" 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/8626/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/8626/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8625","slug":"trench-line-1917-communication-trench-df0e6515","title":"Communication Trench (Trench Line 1917)","summary":"Narrower zig-free communication run with hurdle revetment.","description":"Communication trench 3.0 m long: a 1.0 m cut 1.8 m deep with woven hurdle revetment, duckboards and low earth lips. Dimensions 3.00 x 2.40 x 2.60 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-communication-trench-df0e6515","cdnUrl":"https://cdn.3dassets.dev/assets/8625/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-communication-trench-df0e6515","thumbnailUrl":"https://cdn.3dassets.dev/assets/8625/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8625/v1/poster.webp","blurhash":"U9FFTz-;00%L~p%2NHWU00IVIVWVWBofM|Io","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":71224,"triangles":1404,"vertices":4212,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.0000064219707252011204,-1.3000427259132663],"max":[1.5,2.4000504091848156,1.3000427259132663]},"sizeMeters":[3,2.4,2.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:53.399Z","updatedAt":"2026-09-06T14:00:54.372Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8625/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommunicationTrenchTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8625/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8625/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8625/v1/model.glb\" alt=\"Communication Trench (Trench Line 1917)\" 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/8625/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/8625/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8631","slug":"trench-line-1917-sap-end-525b2d3e","title":"Sap End (Trench Line 1917)","summary":"Blind end of a sap with a firing loophole plate.","description":"Sap end 3.0 m long closing a trench run, with frame revetment, duckboards, a sandbagged head and an iron loophole plate. Dimensions 3.71 x 3.05 x 3.10 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-sap-end-525b2d3e","cdnUrl":"https://cdn.3dassets.dev/assets/8631/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-sap-end-525b2d3e","thumbnailUrl":"https://cdn.3dassets.dev/assets/8631/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8631/v1/poster.webp","blurhash":"UDFFTx~V00%0%Mf+WCog009aNLR.D%f4xYM{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":52724,"triangles":1008,"vertices":3024,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.5125000476837158,-0.00006414666896037424,-1.5499748405940321],"max":[2.200000047683716,3.0500378683320837,1.5499389450996546]},"sizeMeters":[3.713,3.05,3.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:54.020Z","updatedAt":"2026-09-06T14:00:54.379Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8631/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SapEndTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8631/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8631/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8631/v1/model.glb\" alt=\"Sap End (Trench Line 1917)\" 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/8631/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/8631/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8627","slug":"trench-line-1917-trench-junction-t-8f34b738","title":"Trench Junction T (Trench Line 1917)","summary":"Three-way trench junction where a spur meets a straight run.","description":"Trench junction T joining a 3.0 m straight to a perpendicular spur, revetted with duckboards throughout. Dimensions 3.60 x 2.10 x 3.60 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-junction-t-8f34b738","cdnUrl":"https://cdn.3dassets.dev/assets/8627/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-junction-t-8f34b738","thumbnailUrl":"https://cdn.3dassets.dev/assets/8627/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8627/v1/poster.webp","blurhash":"U5DcBi~q00tR^*t7D+oJ00IAoLMySKWBM{Rk","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":87944,"triangles":1752,"vertices":5256,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.7999999523162842,-0.0000064219707252011204,-1.7999999523162842],"max":[1.7999999523162842,2.1000063266032933,1.7999999523162842]},"sizeMeters":[3.6,2.1,3.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:52.692Z","updatedAt":"2026-09-06T14:00:53.314Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8627/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchJunctionTTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8627/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8627/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8627/v1/model.glb\" alt=\"Trench Junction T (Trench Line 1917)\" 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/8627/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/8627/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8628","slug":"trench-line-1917-trench-junction-cross-18d06442","title":"Trench Junction Cross (Trench Line 1917)","summary":"Four-way trench crossing with revetted cheeks all round.","description":"Trench junction cross joining four 3.0 m runs, revetted with duckboards on both axes. Dimensions 3.60 x 2.10 x 3.60 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-junction-cross-18d06442","cdnUrl":"https://cdn.3dassets.dev/assets/8628/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-junction-cross-18d06442","thumbnailUrl":"https://cdn.3dassets.dev/assets/8628/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8628/v1/poster.webp","blurhash":"U5DlvH~p00Ny~VR+IUt700D%RkRPE1xZRRNG","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":111608,"triangles":2244,"vertices":6732,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.7999999523162842,-0.0000064219707252011204,-1.7999999523162842],"max":[1.7999999523162842,2.1000063266032933,1.7999999523162842]},"sizeMeters":[3.6,2.1,3.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:52.464Z","updatedAt":"2026-09-06T14:00:53.329Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8628/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchJunctionCrossTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8628/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8628/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8628/v1/model.glb\" alt=\"Trench Junction Cross (Trench Line 1917)\" 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/8628/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/8628/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8629","slug":"trench-line-1917-revetment-corrugated-6a4f0c87","title":"Revetment Wall (Corrugated Iron) (Trench Line 1917)","summary":"Standalone revetment panel in rusted corrugated iron sheets behind driven stakes.","description":"Revetment wall panel 3.0 m long and 2.10 m tall in rusted corrugated iron sheets behind driven stakes; lines one cheek of a trench bay. Dimensions 2.96 x 2.10 x 0.17 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-revetment-corrugated-6a4f0c87","cdnUrl":"https://cdn.3dassets.dev/assets/8629/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-revetment-corrugated-6a4f0c87","thumbnailUrl":"https://cdn.3dassets.dev/assets/8629/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8629/v1/poster.webp","blurhash":"U7EV4u^j00$$=|~Bnk5701Rk^%RjtQ%LS1IU","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":17980,"triangles":336,"vertices":1008,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.4774999618530273,0.000008677200783901995,-0.724910739352808],"max":[1.4774999618530273,2.0999912274317847,-0.5537812549259445]},"sizeMeters":[2.955,2.1,0.171],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:52.671Z","updatedAt":"2026-09-06T14:00:53.398Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8629/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RevetmentWallCorrugatedIronTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8629/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8629/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8629/v1/model.glb\" alt=\"Revetment Wall (Corrugated Iron) (Trench Line 1917)\" 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/8629/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/8629/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8630","slug":"trench-line-1917-revetment-hurdle-a486a2fe","title":"Revetment Wall (Woven Hurdle) (Trench Line 1917)","summary":"Standalone revetment panel in woven hazel hurdles behind driven stakes.","description":"Revetment wall panel 3.0 m long and 2.10 m tall in woven hazel hurdles behind driven stakes; lines one cheek of a trench bay. Dimensions 2.97 x 2.10 x 0.14 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-revetment-hurdle-a486a2fe","cdnUrl":"https://cdn.3dassets.dev/assets/8630/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-revetment-hurdle-a486a2fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/8630/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8630/v1/poster.webp","blurhash":"UBF=py%g00a%-=~Vof9a00t7_2RjW-kCWURj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":22564,"triangles":432,"vertices":1296,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.4850000143051147,0.00003835515143268964,-0.6899111878492828],"max":[1.4850000143051147,2.0999615494811357,-0.5537812549259445]},"sizeMeters":[2.97,2.1,0.136],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:52.742Z","updatedAt":"2026-09-06T14:00:53.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8630/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RevetmentWallWovenHurdleTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8630/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8630/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8630/v1/model.glb\" alt=\"Revetment Wall (Woven Hurdle) (Trench Line 1917)\" 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/8630/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/8630/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8632","slug":"trench-line-1917-revetment-frame-6523cb84","title":"Revetment Wall (Timber Frame) (Trench Line 1917)","summary":"Standalone revetment panel in sawn boards on a timber frame with corner posts.","description":"Revetment wall panel 3.0 m long and 2.10 m tall in sawn boards on a timber frame with corner posts; lines one cheek of a trench bay. Dimensions 3.00 x 2.10 x 0.21 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-revetment-frame-6523cb84","cdnUrl":"https://cdn.3dassets.dev/assets/8632/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-revetment-frame-6523cb84","thumbnailUrl":"https://cdn.3dassets.dev/assets/8632/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8632/v1/poster.webp","blurhash":"UBG8+Oj=00WAxt~pV@9G00t7?Gaft7t5oeIo","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":11056,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5125000476837158,-0.00006414666896037424,-0.7599495263072675],"max":[1.4850000143051147,2.100064051301529,-0.553758838656264]},"sizeMeters":[2.998,2.1,0.206],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:55.033Z","updatedAt":"2026-09-06T14:00:55.925Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8632/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RevetmentWallTimberFrameTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8632/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8632/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8632/v1/model.glb\" alt=\"Revetment Wall (Timber Frame) (Trench Line 1917)\" 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/8632/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/8632/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8633","slug":"trench-line-1917-duckboard-floor-a126d8bf","title":"Duckboard Floor (Trench Line 1917)","summary":"Slatted duckboard run on bearers.","description":"Duckboard floor 3.0 m long and 1.14 m wide: slatted boards on two timber bearers, standing 0.26 m proud of the trench floor. Dimensions 2.95 x 0.18 x 1.14 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-duckboard-floor-a126d8bf","cdnUrl":"https://cdn.3dassets.dev/assets/8633/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-duckboard-floor-a126d8bf","thumbnailUrl":"https://cdn.3dassets.dev/assets/8633/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8633/v1/poster.webp","blurhash":"U7C6lY%f00t7-;^*jYD*00WC~VIV4n01SL?Z","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":24816,"triangles":480,"vertices":1440,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.4759999513626099,0.0000897878445858813,-0.5699584150087315],"max":[1.4759999513626099,0.18502278260325722,0.5699584150087315]},"sizeMeters":[2.952,0.185,1.14],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:54.984Z","updatedAt":"2026-09-06T14:00:55.940Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8633/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DuckboardFloorTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8633/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8633/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8633/v1/model.glb\" alt=\"Duckboard Floor (Trench Line 1917)\" 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/8633/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/8633/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8634","slug":"trench-line-1917-fire-step-912d91ef","title":"Fire Step (Trench Line 1917)","summary":"Cut and boarded fire step for a trench cheek.","description":"Fire step 3.0 m long, 0.55 m tall and 0.56 m deep: a chalk cut faced with boards on four driven stakes. Dimensions 3.00 x 0.55 x 0.56 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-fire-step-912d91ef","cdnUrl":"https://cdn.3dassets.dev/assets/8634/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-fire-step-912d91ef","thumbnailUrl":"https://cdn.3dassets.dev/assets/8634/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8634/v1/poster.webp","blurhash":"UCECj}%L9Fxbxt~pt7M{00WA^+WBM|00M{xu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":7696,"triangles":120,"vertices":360,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.000043494836467788955,-0.2799768059327982],"max":[1.5,0.5499893185216834,0.2799768059327982]},"sizeMeters":[3,0.55,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:55.187Z","updatedAt":"2026-09-06T14:00:56.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8634/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireStepTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8634/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8634/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8634/v1/model.glb\" alt=\"Fire Step (Trench Line 1917)\" 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/8634/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/8634/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8635","slug":"trench-line-1917-parapet-sandbags-e278be7c","title":"Parapet Sandbags (Trench Line 1917)","summary":"Three staggered courses of parapet sandbags.","description":"Parapet sandbag run 3.0 m long and 0.60 m tall in three staggered courses of alternating tone. Dimensions 3.10 x 0.60 x 0.62 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-parapet-sandbags-e278be7c","cdnUrl":"https://cdn.3dassets.dev/assets/8635/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-parapet-sandbags-e278be7c","thumbnailUrl":"https://cdn.3dassets.dev/assets/8635/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8635/v1/poster.webp","blurhash":"UAD]h.?b01xv?b~pxuIU00af_3Rj9Z00M|%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":12144,"triangles":216,"vertices":648,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.6299999952316284,0.00009583854062639174,-0.3100289941347016],"max":[1.4700000286102295,0.5999041853012315,0.3100289941347016]},"sizeMeters":[3.1,0.6,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:55.169Z","updatedAt":"2026-09-06T14:00:56.114Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8635/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParapetSandbagsTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8635/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8635/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8635/v1/model.glb\" alt=\"Parapet Sandbags (Trench Line 1917)\" 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/8635/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/8635/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8636","slug":"trench-line-1917-parados-7496c32e","title":"Parados (Trench Line 1917)","summary":"Rear bank of a trench with a sandbag crest.","description":"Parados 3.0 m long, 1.3 m thick and 1.10 m tall: an earth bank behind a trench with a sandbag crest and chalk spoil. Dimensions 3.00 x 1.10 x 1.30 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-parados-7496c32e","cdnUrl":"https://cdn.3dassets.dev/assets/8636/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-parados-7496c32e","thumbnailUrl":"https://cdn.3dassets.dev/assets/8636/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8636/v1/poster.webp","blurhash":"U6EVmC?b00jD?c~pRiD%00Ip.8IU4T9GxuM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":26520,"triangles":504,"vertices":1512,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00005034361970640555,-0.6499069185460982],"max":[1.5,1.100000611920889,0.6499069185460982]},"sizeMeters":[3,1.1,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:55.096Z","updatedAt":"2026-09-06T14:00:56.120Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8636/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParadosTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8636/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8636/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8636/v1/model.glb\" alt=\"Parados (Trench Line 1917)\" 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/8636/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/8636/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8638","slug":"trench-line-1917-drainage-sump-2d0b657d","title":"Drainage Sump (Trench Line 1917)","summary":"Boarded drainage sump under a lifting grating.","description":"Drainage sump 1.2 m square and 0.5 m deep, boarded and part filled with water, under a slatted lifting grating. Dimensions 1.20 x 0.55 x 1.20 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-drainage-sump-2d0b657d","cdnUrl":"https://cdn.3dassets.dev/assets/8638/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-drainage-sump-2d0b657d","thumbnailUrl":"https://cdn.3dassets.dev/assets/8638/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8638/v1/poster.webp","blurhash":"U8Ef7w_200Rj~pRjD*xt00D*xZae01xuxtIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":8936,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000011903539738355312,-0.6000000238418579],"max":[0.6000000238418579,0.5500044189201384,0.6000000238418579]},"sizeMeters":[1.2,0.55,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:55.926Z","updatedAt":"2026-09-06T14:00:56.967Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8638/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrainageSumpTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8638/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8638/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8638/v1/model.glb\" alt=\"Drainage Sump (Trench Line 1917)\" 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/8638/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/8638/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8637","slug":"trench-line-1917-trench-ladder-7e9d6634","title":"Trench Ladder (Trench Line 1917)","summary":"Timber scaling ladder for a trench parapet.","description":"Trench ladder 2.4 m long and 0.5 m wide with eight rungs, leaned against a parapet. Dimensions 0.55 x 2.39 x 0.70 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-ladder-7e9d6634","cdnUrl":"https://cdn.3dassets.dev/assets/8637/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-ladder-7e9d6634","thumbnailUrl":"https://cdn.3dassets.dev/assets/8637/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8637/v1/poster.webp","blurhash":"U49@3A%L004:~Ujc9aX39ZNH-p%1E4RlxWxW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":13368,"triangles":256,"vertices":768,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2750353066344306,0,-0.3794262833725265],"max":[0.2750353066344306,2.390472650527954,0.32421178890574487]},"sizeMeters":[0.55,2.39,0.704],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:56.054Z","updatedAt":"2026-09-06T14:00:56.963Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8637/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchLadderTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8637/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8637/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8637/v1/model.glb\" alt=\"Trench Ladder (Trench Line 1917)\" 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/8637/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/8637/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8639","slug":"trench-line-1917-ramp-exit-f45c9984","title":"Ramp Exit (Trench Line 1917)","summary":"Boarded ramp climbing out of a trench to ground level.","description":"Ramp exit 4.2 m long: nine boarded steps climbing 2.0 m from the trench floor to ground level between revetted cheeks. Dimensions 4.26 x 2.26 x 3.30 m (X x Y x Z). Ramp bay: origin centred at ground level, 4.2 m long; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ramp-exit-f45c9984","cdnUrl":"https://cdn.3dassets.dev/assets/8639/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ramp-exit-f45c9984","thumbnailUrl":"https://cdn.3dassets.dev/assets/8639/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8639/v1/poster.webp","blurhash":"U6D+*l~W00WC-:xvWVWT00IU%MIVIUs*WCMy","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":21520,"triangles":384,"vertices":1152,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.130000114440918,-0.00016022216747280105,-1.6519615650177002],"max":[2.130000114440918,2.259983574007065,1.6519615650177002]},"sizeMeters":[4.26,2.26,3.304],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:56.006Z","updatedAt":"2026-09-06T14:00:56.974Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8639/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RampExitTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8639/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8639/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8639/v1/model.glb\" alt=\"Ramp Exit (Trench Line 1917)\" 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/8639/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/8639/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8641","slug":"trench-line-1917-ammunition-shelf-3317d1c7","title":"Ammunition Shelf (Trench Line 1917)","summary":"Timber shelf cut into a trench cheek holding ammunition tins.","description":"Ammunition shelf 0.9 m wide at 1.10 m on two posts, holding three rusted tins. Dimensions 0.90 x 1.46 x 0.34 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ammunition-shelf-3317d1c7","cdnUrl":"https://cdn.3dassets.dev/assets/8641/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ammunition-shelf-3317d1c7","thumbnailUrl":"https://cdn.3dassets.dev/assets/8641/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8641/v1/poster.webp","blurhash":"U7Cijb~T00D+^+%29t9a04E5j^s,SdxtsmIW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":5936,"triangles":72,"vertices":216,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0,-0.16997741180012396],"max":[0.44999998807907104,1.460016789799822,0.16997741180012396]},"sizeMeters":[0.9,1.46,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:57.752Z","updatedAt":"2026-09-06T14:00:58.573Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8641/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmmunitionShelfTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8641/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8641/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8641/v1/model.glb\" alt=\"Ammunition Shelf (Trench Line 1917)\" 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/8641/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/8641/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8640","slug":"trench-line-1917-orders-board-03710a9e","title":"Orders Board (Trench Line 1917)","summary":"Small timber notice board with blank paper sheets.","description":"Orders board 0.62 m wide and 0.96 m tall on a trench post, carrying three blank sheets. Dimensions 0.62 x 0.96 x 0.21 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-orders-board-03710a9e","cdnUrl":"https://cdn.3dassets.dev/assets/8640/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-orders-board-03710a9e","thumbnailUrl":"https://cdn.3dassets.dev/assets/8640/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8640/v1/poster.webp","blurhash":"UAFO_e~n0000-:%LM_D*00D+?v-;n$s.WXNK","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":4652,"triangles":60,"vertices":180,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.30999968788587207,0,-0.09996398592444906],"max":[0.30999968788587207,0.9599999785423279,0.11001983839554313]},"sizeMeters":[0.62,0.96,0.21],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:57.982Z","updatedAt":"2026-09-06T14:00:58.512Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8640/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OrdersBoardTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8640/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8640/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8640/v1/model.glb\" alt=\"Orders Board (Trench Line 1917)\" 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/8640/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/8640/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8642","slug":"trench-line-1917-water-butt-c0ede735","title":"Water Butt (Trench Line 1917)","summary":"Rusted iron water butt with a wire handle.","description":"Water butt 0.60 m across and 0.66 m tall in rusted iron, part filled, with a hoop and wire handle. Dimensions 0.65 x 0.75 x 0.65 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-water-butt-c0ede735","cdnUrl":"https://cdn.3dassets.dev/assets/8642/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-water-butt-c0ede735","thumbnailUrl":"https://cdn.3dassets.dev/assets/8642/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8642/v1/poster.webp","blurhash":"U697FVS~00wI~pt79FM{01t7^*IVIAofx]ax","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":17428,"triangles":312,"vertices":936,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0,-0.32499998807907104],"max":[0.32499998807907104,0.7459992588732384,0.32499998807907104]},"sizeMeters":[0.65,0.746,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:57.764Z","updatedAt":"2026-09-06T14:00:58.634Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8642/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterButtTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8642/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8642/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8642/v1/model.glb\" alt=\"Water Butt (Trench Line 1917)\" 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/8642/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/8642/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8644","slug":"trench-line-1917-drying-rack-5844d083","title":"Drying Rack (Trench Line 1917)","summary":"Improvised rack of stakes hung with wet kit.","description":"Drying rack 1.3 m wide and 1.9 m tall: four driven stakes under a cross bar hung with six pieces of wet kit. Dimensions 1.30 x 1.91 x 0.12 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-drying-rack-5844d083","cdnUrl":"https://cdn.3dassets.dev/assets/8644/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-drying-rack-5844d083","thumbnailUrl":"https://cdn.3dassets.dev/assets/8644/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8644/v1/poster.webp","blurhash":"U6CG3.?G009G~o-:D*9G4pbE-oaiMxxbt8IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":10404,"triangles":180,"vertices":540,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6500280035037955,0,-0.05629660082237399],"max":[0.6500280035037955,1.905651569366455,0.06497634778789604]},"sizeMeters":[1.3,1.906,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:58.026Z","updatedAt":"2026-09-06T14:00:58.869Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8644/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryingRackTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8644/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8644/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8644/v1/model.glb\" alt=\"Drying Rack (Trench Line 1917)\" 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/8644/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/8644/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8643","slug":"trench-line-1917-brazier-2ed5ec0f","title":"Brazier (Trench Line 1917)","summary":"Small trench brazier on a timber block.","description":"Brazier 0.36 m across and 0.55 m tall: a rusted iron pot on a timber block with a grate and poker. Dimensions 0.36 x 0.94 x 0.36 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-brazier-2ed5ec0f","cdnUrl":"https://cdn.3dassets.dev/assets/8643/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-brazier-2ed5ec0f","thumbnailUrl":"https://cdn.3dassets.dev/assets/8643/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8643/v1/poster.webp","blurhash":"U69@6J-o009Z01Ip~U-:4ojY?HS5?Ft6NeR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":10024,"triangles":144,"vertices":432,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,0.000005497714457930458,-0.18000000715255737],"max":[0.18000000715255737,0.9399999976158142,0.18000000715255737]},"sizeMeters":[0.36,0.94,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:57.835Z","updatedAt":"2026-09-06T14:00:58.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8643/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrazierTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8643/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8643/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8643/v1/model.glb\" alt=\"Brazier (Trench Line 1917)\" 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/8643/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/8643/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8647","slug":"trench-line-1917-trench-frame-5c7cc8ef","title":"Trench Frame (Trench Line 1917)","summary":"A-frame timber set supporting a trench roof or revetment.","description":"Trench frame 1.5 m wide and 2.36 m tall: two posts under a head beam with knee braces. Dimensions 1.50 x 2.28 x 0.56 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-frame-5c7cc8ef","cdnUrl":"https://cdn.3dassets.dev/assets/8647/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-frame-5c7cc8ef","thumbnailUrl":"https://cdn.3dassets.dev/assets/8647/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8647/v1/poster.webp","blurhash":"U5Av,z-:00RQ~p-:9G4:ELn,xHR%R+%1r@9a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":5476,"triangles":92,"vertices":276,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.7500265416916512,0,-0.2799987757460993],"max":[0.7500265416916512,2.2799999713897705,0.2799987757460993]},"sizeMeters":[1.5,2.28,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:58.799Z","updatedAt":"2026-09-06T14:00:59.594Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8647/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchFrameTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8647/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8647/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8647/v1/model.glb\" alt=\"Trench Frame (Trench Line 1917)\" 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/8647/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/8647/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8645","slug":"trench-line-1917-trench-bridge-4e2af688","title":"Trench Bridge (Trench Line 1917)","summary":"Short plank bridge laid across a trench.","description":"Trench bridge 1.4 m square: slatted planks on two timber bearers, laid across a narrow cut. Dimensions 1.40 x 0.24 x 1.42 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-bridge-4e2af688","cdnUrl":"https://cdn.3dassets.dev/assets/8645/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-bridge-4e2af688","thumbnailUrl":"https://cdn.3dassets.dev/assets/8645/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8645/v1/poster.webp","blurhash":"U6DSp[^+00NG-:n~M{og00D%~WWB9Zf,xuIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":6960,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7000326630326431,0.000006864356082200707,-0.699999988079071],"max":[0.7000326630326431,0.2399743597266799,0.7200000286102295]},"sizeMeters":[1.4,0.24,1.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:58.732Z","updatedAt":"2026-09-06T14:00:59.591Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8645/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchBridgeTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8645/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8645/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8645/v1/model.glb\" alt=\"Trench Bridge (Trench Line 1917)\" 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/8645/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/8645/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8646","slug":"trench-line-1917-loophole-plate-004f53d8","title":"Loophole Plate (Trench Line 1917)","summary":"Armoured iron loophole plate on driven stakes.","description":"Loophole plate 0.9 m wide and 0.6 m tall in rusted iron with a slot, carried on four short stakes. Dimensions 0.98 x 0.94 x 0.28 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-loophole-plate-004f53d8","cdnUrl":"https://cdn.3dassets.dev/assets/8646/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-loophole-plate-004f53d8","thumbnailUrl":"https://cdn.3dassets.dev/assets/8646/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8646/v1/poster.webp","blurhash":"UBCr_*-.00WA~U-oWWIo9uxZxZNHt5s:IWE2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":9444,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.49000000953674316,0.000025640230745360704,-0.09998504582362885],"max":[0.49000000953674316,0.9400085516176884,0.1799850514860701]},"sizeMeters":[0.98,0.94,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:00:58.767Z","updatedAt":"2026-09-06T14:00:59.603Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8646/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LoopholePlateTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8646/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8646/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8646/v1/model.glb\" alt=\"Loophole Plate (Trench Line 1917)\" 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/8646/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/8646/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8648","slug":"trench-line-1917-spoil-heap-0c4ea6f6","title":"Spoil Heap (Trench Line 1917)","summary":"Heap of freshly dug chalk spoil.","description":"Spoil heap 3.2 m long, 1.1 m deep and 0.98 m tall in bright chalk, as thrown up beside a working. Dimensions 3.20 x 0.98 x 1.10 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-spoil-heap-0c4ea6f6","cdnUrl":"https://cdn.3dassets.dev/assets/8648/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-spoil-heap-0c4ea6f6","thumbnailUrl":"https://cdn.3dassets.dev/assets/8648/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8648/v1/poster.webp","blurhash":"UAFr-Lxu00ofD*~qt7D%00IU^+ax%L00Rkt7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":33864,"triangles":684,"vertices":2052,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.600000023841858,0.0000924733202643524,-0.5500656229919898],"max":[1.600000023841858,0.979907545753222,0.5500656229919898]},"sizeMeters":[3.2,0.98,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:00.412Z","updatedAt":"2026-09-06T14:01:01.108Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8648/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpoilHeapTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8648/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8648/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8648/v1/model.glb\" alt=\"Spoil Heap (Trench Line 1917)\" 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/8648/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/8648/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8649","slug":"trench-line-1917-flooded-bay-b0fb047b","title":"Flooded Bay (Trench Line 1917)","summary":"Waterlogged trench bay with floating duckboards.","description":"Flooded fire bay 3.0 m long standing in water, with frame revetment and three duckboard sections floating askew. Dimensions 3.01 x 2.55 x 3.10 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-flooded-bay-b0fb047b","cdnUrl":"https://cdn.3dassets.dev/assets/8649/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-flooded-bay-b0fb047b","thumbnailUrl":"https://cdn.3dassets.dev/assets/8649/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8649/v1/poster.webp","blurhash":"U9G8.Z~q00%L~WW=R*xa009G9ZNGIUM{R+t7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":40880,"triangles":768,"vertices":2304,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.5125000476837158,-0.00006414666896037424,-1.5499244666890468],"max":[1.5,2.5500434173504294,1.5499389450996546]},"sizeMeters":[3.013,2.55,3.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:00.276Z","updatedAt":"2026-09-06T14:01:01.179Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8649/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FloodedBayTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8649/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8649/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8649/v1/model.glb\" alt=\"Flooded Bay (Trench Line 1917)\" 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/8649/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/8649/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8650","slug":"trench-line-1917-trench-bench-200ae921","title":"Trench Bench (Trench Line 1917)","summary":"Rough plank bench for a fire bay or dugout mouth.","description":"Trench bench 1.9 m long at 0.76 m on four timber legs, with a back board. Dimensions 1.90 x 0.82 x 0.70 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-bench-200ae921","cdnUrl":"https://cdn.3dassets.dev/assets/8650/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-bench-200ae921","thumbnailUrl":"https://cdn.3dassets.dev/assets/8650/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8650/v1/poster.webp","blurhash":"UHDvJ@s:IU%K~p?GIVM{01%2flE101Ip%LWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":5208,"triangles":72,"vertices":216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,0.000036642078615922724,-0.3500274622662626],"max":[0.949999988079071,0.8199398855014188,0.3500274622662626]},"sizeMeters":[1.9,0.82,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:00.188Z","updatedAt":"2026-09-06T14:01:01.181Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8650/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchBenchTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8650/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8650/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8650/v1/model.glb\" alt=\"Trench Bench (Trench Line 1917)\" 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/8650/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/8650/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8651","slug":"trench-line-1917-signal-post-b2bdad53","title":"Signal Post (Trench Line 1917)","summary":"Driven post carrying a blank marker panel and wire runs.","description":"Signal post 2.6 m tall carrying a blank khaki panel at 2.0 m and three wire runs. Dimensions 0.66 x 2.60 x 0.12 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-signal-post-b2bdad53","cdnUrl":"https://cdn.3dassets.dev/assets/8651/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-signal-post-b2bdad53","thumbnailUrl":"https://cdn.3dassets.dev/assets/8651/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8651/v1/poster.webp","blurhash":"U17n8u%20056~WWB0LtQ01M{~p?HD+oe-.NH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":8060,"triangles":116,"vertices":348,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.40001059862782395,0,-0.05998718002570335],"max":[0.2599658093040563,2.5999999046325684,0.05998718002570335]},"sizeMeters":[0.66,2.6,0.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:00.738Z","updatedAt":"2026-09-06T14:01:01.368Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8651/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalPostTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8651/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8651/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8651/v1/model.glb\" alt=\"Signal Post (Trench Line 1917)\" 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/8651/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/8651/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8652","slug":"trench-line-1917-dugout-stair-fe1ff6ec","title":"Dugout Stair (Trench Line 1917)","summary":"Steep boarded stair dropping into a dugout.","description":"Dugout stair 1.4 m long dropping 1.65 m on seven boarded treads between timber stringers. Dimensions 1.00 x 2.05 x 1.90 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-dugout-stair-fe1ff6ec","cdnUrl":"https://cdn.3dassets.dev/assets/8652/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-dugout-stair-fe1ff6ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/8652/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8652/v1/poster.webp","blurhash":"U7DI?y~p000L-o4.4:_29bag?FtR?GkCM|o2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":11008,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5000343216921873,0,-1.5499999523162842],"max":[0.5000343216921873,2.049999952316284,0.3500488312858634]},"sizeMeters":[1,2.05,1.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:00.671Z","updatedAt":"2026-09-06T14:01:01.445Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8652/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DugoutStairTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8652/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8652/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8652/v1/model.glb\" alt=\"Dugout Stair (Trench Line 1917)\" 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/8652/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/8652/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8654","slug":"trench-line-1917-splinter-proof-shelter-247a96c8","title":"Splinter-Proof Shelter (Trench Line 1917)","summary":"Low sandbag shelter under a beamed and boarded roof.","description":"Splinter-proof shelter 2.4 x 1.6 m and 0.80 m tall: two courses of sandbags under timber beams and boards. Dimensions 2.40 x 0.74 x 1.60 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-splinter-proof-shelter-247a96c8","cdnUrl":"https://cdn.3dassets.dev/assets/8654/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-splinter-proof-shelter-247a96c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/8654/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8654/v1/poster.webp","blurhash":"U5D+#e~V00Mz?a^%NH9a00Io~VIV9G9axrt6","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":11212,"triangles":192,"vertices":576,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.00005188395169765381,-0.8000488614062459],"max":[1.2000000476837158,0.7400604361879067,0.8000488614062459]},"sizeMeters":[2.4,0.74,1.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:01.684Z","updatedAt":"2026-09-06T14:01:02.243Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8654/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SplinterProofShelterTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8654/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8654/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8654/v1/model.glb\" alt=\"Splinter-Proof Shelter (Trench Line 1917)\" 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/8654/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/8654/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8653","slug":"trench-line-1917-funk-hole-bay-08a70f61","title":"Funk Hole Bay (Trench Line 1917)","summary":"Fire bay with a shallow shelter cut into the rear cheek.","description":"Fire bay 3.0 m long with hurdle revetment and a funk hole 1.2 m wide cut into the rear cheek, framed in timber with a canvas curtain. Dimensions 3.00 x 2.55 x 3.17 m (X x Y x Z). Modular trench bay: origin centred at ground level, 3.0 m between joins; floor at -2.10 m; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-funk-hole-bay-08a70f61","cdnUrl":"https://cdn.3dassets.dev/assets/8653/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-funk-hole-bay-08a70f61","thumbnailUrl":"https://cdn.3dassets.dev/assets/8653/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8653/v1/poster.webp","blurhash":"UAFrnm~q00%2_2t8WXxa00D%RjRkIUM{Rlt7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":74060,"triangles":1452,"vertices":4356,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.0000064219707252011204,-1.6250818490492733],"max":[1.5,2.5500434173504294,1.5499389450996546]},"sizeMeters":[3,2.55,3.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:01.537Z","updatedAt":"2026-09-06T14:01:02.286Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8653/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FunkHoleBayTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8653/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8653/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8653/v1/model.glb\" alt=\"Funk Hole Bay (Trench Line 1917)\" 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/8653/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/8653/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8655","slug":"trench-line-1917-officer-dugout-entrance-3e5cb91a","title":"Officer Dugout Entrance (Trench Line 1917)","summary":"Timbered dugout entrance under a beamed and sandbagged roof.","description":"Officer dugout entrance 3.6 x 2.8 m: a timber-lined mouth 2.2 m deep under beams, boards, earth cover and two courses of sandbags, with a blanket door and a blank notice. Dimensions 3.60 x 3.14 x 2.91 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-officer-dugout-entrance-3e5cb91a","cdnUrl":"https://cdn.3dassets.dev/assets/8655/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-officer-dugout-entrance-3e5cb91a","thumbnailUrl":"https://cdn.3dassets.dev/assets/8655/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8655/v1/poster.webp","blurhash":"UAF$66={00rr~pIUE1%M01E19ZkpRP%2RPRQ","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":18708,"triangles":300,"vertices":900,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.7999999523162842,0.000018046981091313086,-1.5100289692912776],"max":[1.7999999523162842,3.1400263233115253,1.4000854147369346]},"sizeMeters":[3.6,3.14,2.91],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:01.676Z","updatedAt":"2026-09-06T14:01:02.290Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8655/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OfficerDugoutEntranceTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8655/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8655/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8655/v1/model.glb\" alt=\"Officer Dugout Entrance (Trench Line 1917)\" 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/8655/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/8655/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8656","slug":"trench-line-1917-dugout-interior-baa44146","title":"Timber-Frame Dugout Interior (Trench Line 1917)","summary":"Boarded dugout chamber on braced timber sets.","description":"Timber-frame dugout interior 4.4 x 3.2 m and 2.3 m to the roof boards, on four braced sets with boarded walls and a plank floor. Dimensions 4.40 x 2.32 x 3.25 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-dugout-interior-baa44146","cdnUrl":"https://cdn.3dassets.dev/assets/8656/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-dugout-interior-baa44146","thumbnailUrl":"https://cdn.3dassets.dev/assets/8656/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8656/v1/poster.webp","blurhash":"U7Gbeb~p00oa~W-:M{Rn00IBIUD*D%t7ad9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":29232,"triangles":556,"vertices":1668,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.200000047683716,-0.000057433319982314046,-1.5999397850052628],"max":[2.200000047683716,2.3200573665627804,1.649939737321547]},"sizeMeters":[4.4,2.32,3.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:02.824Z","updatedAt":"2026-09-06T14:01:03.744Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8656/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberFrameDugoutInteriorTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8656/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8656/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8656/v1/model.glb\" alt=\"Timber-Frame Dugout Interior (Trench Line 1917)\" 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/8656/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/8656/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8657","slug":"trench-line-1917-bunk-shelf-4edca17d","title":"Bunk Shelf (Trench Line 1917)","summary":"Two-tier wire-and-plank bunk with blankets.","description":"Bunk shelf 1.9 m long and 1.4 m tall: two boarded tiers on timber posts, each with a folded blanket and a rolled pack. Dimensions 1.90 x 1.70 x 0.72 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-bunk-shelf-4edca17d","cdnUrl":"https://cdn.3dassets.dev/assets/8657/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-bunk-shelf-4edca17d","thumbnailUrl":"https://cdn.3dassets.dev/assets/8657/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8657/v1/poster.webp","blurhash":"UCD+;*Rj01In~p?aD*E200xu?ZNH9FIVt7of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":12180,"triangles":216,"vertices":648,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,-0.00005871785492150838,-0.36000091103786813],"max":[0.949999988079071,1.7000587655386372,0.36000091103786813]},"sizeMeters":[1.9,1.7,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:02.901Z","updatedAt":"2026-09-06T14:01:03.767Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8657/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BunkShelfTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8657/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8657/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8657/v1/model.glb\" alt=\"Bunk Shelf (Trench Line 1917)\" 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/8657/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/8657/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8658","slug":"trench-line-1917-gas-curtain-frame-d28370ae","title":"Gas Curtain Frame (Trench Line 1917)","summary":"Timber frame carrying a weighted gas blanket.","description":"Gas curtain frame 1.72 m wide and 2.24 m tall: two posts and a head beam carrying a canvas gas blanket on seven rings with a weighted hem. Dimensions 1.72 x 2.17 x 0.17 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-gas-curtain-frame-d28370ae","cdnUrl":"https://cdn.3dassets.dev/assets/8658/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-gas-curtain-frame-d28370ae","thumbnailUrl":"https://cdn.3dassets.dev/assets/8658/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8658/v1/poster.webp","blurhash":"U8EolH^j009a?H?GM{9G00J6_Ns;xtxtNGIW","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":9380,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8599669176523644,0,-0.07004967374042657],"max":[0.8599669176523644,2.1700000762939453,0.10504967016414789]},"sizeMeters":[1.72,2.17,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:03.015Z","updatedAt":"2026-09-06T14:02:55.409Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8658/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GasCurtainFrameTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8658/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8658/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8658/v1/model.glb\" alt=\"Gas Curtain Frame (Trench Line 1917)\" 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/8658/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/8658/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8659","slug":"trench-line-1917-blanket-door-939c54d1","title":"Blanket Door (Trench Line 1917)","summary":"Heavy blanket hung across a dugout mouth, half drawn back.","description":"Blanket door 1.16 m wide and 2.05 m tall: a weighted khaki blanket on a timber head rail, drawn partly aside. Dimensions 1.16 x 2.05 x 0.17 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-blanket-door-939c54d1","cdnUrl":"https://cdn.3dassets.dev/assets/8659/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-blanket-door-939c54d1","thumbnailUrl":"https://cdn.3dassets.dev/assets/8659/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8659/v1/poster.webp","blurhash":"U4Amhz%K009H~V%L9Z9GDjah%eo_?GxtIVD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":8668,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5799999833106995,0,-0.049986875602570126],"max":[0.5799999833106995,2.04998687560257,0.12161958382139251]},"sizeMeters":[1.16,2.05,0.172],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:02.837Z","updatedAt":"2026-09-06T14:01:02.894Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8659/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BlanketDoorTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8659/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8659/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8659/v1/model.glb\" alt=\"Blanket Door (Trench Line 1917)\" 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/8659/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/8659/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8660","slug":"trench-line-1917-telephone-recess-388b2f9f","title":"Telephone Recess (Trench Line 1917)","summary":"Timbered recess in a trench cheek holding a field telephone.","description":"Telephone recess 1.1 m wide and 1.28 m tall: a timbered cut with a plank shelf carrying a field telephone and cable runs. Dimensions 1.10 x 1.74 x 0.65 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-telephone-recess-388b2f9f","cdnUrl":"https://cdn.3dassets.dev/assets/8660/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-telephone-recess-388b2f9f","thumbnailUrl":"https://cdn.3dassets.dev/assets/8660/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8660/v1/poster.webp","blurhash":"U6CPni-q009F0Ls,-:R.00M{~V%M9aof-:RP","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":13476,"triangles":200,"vertices":600,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5499972410407505,0,-0.300045789686962],"max":[0.5499972410407505,1.7405843715090978,0.3466501498483918]},"sizeMeters":[1.1,1.741,0.647],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:03.223Z","updatedAt":"2026-09-06T14:02:55.402Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8660/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TelephoneRecessTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8660/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8660/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8660/v1/model.glb\" alt=\"Telephone Recess (Trench Line 1917)\" 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/8660/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/8660/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8662","slug":"trench-line-1917-trench-latrine-6113d939","title":"Trench Latrine (Trench Line 1917)","summary":"Screened latrine with a boarded seat and a bucket.","description":"Trench latrine 1.3 x 1.6 m and 2.4 m tall: a canvas-screened frame under a corrugated roof, with a two-hole boarded seat and a bucket. Dimensions 1.32 x 2.41 x 1.60 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-latrine-6113d939","cdnUrl":"https://cdn.3dassets.dev/assets/8662/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-latrine-6113d939","thumbnailUrl":"https://cdn.3dassets.dev/assets/8662/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8662/v1/poster.webp","blurhash":"U5ECLB}t00r{Z$E2T0-o00F?pcIVS6WVsSs;","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":16688,"triangles":260,"vertices":780,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.6599582143831206,-0.000003051850993071592,-0.800000011920929],"max":[0.6599582143831206,2.4100000858306885,0.800000011920929]},"sizeMeters":[1.32,2.41,1.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:04.170Z","updatedAt":"2026-09-06T14:02:55.399Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8662/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchLatrineTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8662/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8662/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8662/v1/model.glb\" alt=\"Trench Latrine (Trench Line 1917)\" 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/8662/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/8662/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8661","slug":"trench-line-1917-kitchen-shelter-9bf618a9","title":"Kitchen Shelter (Trench Line 1917)","summary":"Open-fronted cookhouse with a brick range and a flue.","description":"Kitchen shelter 3.2 x 2.4 m and 2.5 m tall under corrugated iron, with a brick range carrying two dixies, a flue and a prep bench. Dimensions 3.40 x 2.80 x 2.50 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-kitchen-shelter-9bf618a9","cdnUrl":"https://cdn.3dassets.dev/assets/8661/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-kitchen-shelter-9bf618a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/8661/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8661/v1/poster.webp","blurhash":"U3F5mY_300xuQks7.7E400M_IA8|1j-pxFNZ","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":21000,"triangles":348,"vertices":1044,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.7000000476837158,-0.000003051850993071592,-1.2500320794974042],"max":[1.7000000476837158,2.7999496353419477,1.2500320794974042]},"sizeMeters":[3.4,2.8,2.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:03.843Z","updatedAt":"2026-09-06T14:02:55.422Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8661/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenShelterTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8661/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8661/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8661/v1/model.glb\" alt=\"Kitchen Shelter (Trench Line 1917)\" 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/8661/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/8661/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8663","slug":"trench-line-1917-aid-post-a770fe97","title":"Aid Post (Trench Line 1917)","summary":"Timbered aid post with a stretcher trestle and dressings shelf.","description":"Aid post 3.6 x 2.8 m and 2.3 m to the roof boards, boarded throughout, with a stretcher on trestles, a dressings shelf and a red cross panel. Dimensions 3.60 x 2.34 x 2.89 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-aid-post-a770fe97","cdnUrl":"https://cdn.3dassets.dev/assets/8663/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-aid-post-a770fe97","thumbnailUrl":"https://cdn.3dassets.dev/assets/8663/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8663/v1/poster.webp","blurhash":"U6G+5Q_300Vt~q%LM{kW00bFD*IURj-:sC9G","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":31676,"triangles":564,"vertices":1692,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.7999999523162842,0.000030201402652085818,-1.4001307168409125],"max":[1.7999999523162842,2.3399697127666594,1.4901307502195136]},"sizeMeters":[3.6,2.34,2.89],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:04.019Z","updatedAt":"2026-09-06T14:02:55.412Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8663/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AidPostTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8663/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8663/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8663/v1/model.glb\" alt=\"Aid Post (Trench Line 1917)\" 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/8663/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/8663/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8664","slug":"trench-line-1917-ammunition-bay-f065013a","title":"Ammunition Bay (Trench Line 1917)","summary":"Boarded recess stacked with ammunition boxes and shells.","description":"Ammunition bay 2.6 x 1.8 m and 2.2 m tall, boarded and roofed, holding nine banded boxes and four brass shells. Dimensions 2.60 x 2.28 x 1.80 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ammunition-bay-f065013a","cdnUrl":"https://cdn.3dassets.dev/assets/8664/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ammunition-bay-f065013a","thumbnailUrl":"https://cdn.3dassets.dev/assets/8664/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8664/v1/poster.webp","blurhash":"U7FYPr_200IV~T-oR*NL59xZV?Ipob?GtRD*","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":33116,"triangles":624,"vertices":1872,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2999999523162842,0.000034731497540185785,-0.9000457447507316],"max":[1.2999999523162842,2.2800490815439964,0.9000457447507316]},"sizeMeters":[2.6,2.28,1.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:01:04.877Z","updatedAt":"2026-09-06T14:02:55.414Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8664/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmmunitionBayTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8664/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8664/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8664/v1/model.glb\" alt=\"Ammunition Bay (Trench Line 1917)\" 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/8664/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/8664/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8665","slug":"trench-line-1917-signal-post-dugout-9db61ffd","title":"Signal Dugout (Trench Line 1917)","summary":"Boarded signal dugout with sets, cable runs and blank message sheets.","description":"Signal dugout 2.3 x 1.9 m and 2.2 m tall, boarded and roofed, with two instrument boxes on a shelf, four cable runs and three blank message sheets. Dimensions 2.30 x 3.20 x 1.90 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-signal-post-dugout-9db61ffd","cdnUrl":"https://cdn.3dassets.dev/assets/8665/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-signal-post-dugout-9db61ffd","thumbnailUrl":"https://cdn.3dassets.dev/assets/8665/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8665/v1/poster.webp","blurhash":"U4Dll@~W00IB00M{~otS00I._1IU4:$%^*bD","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":17092,"triangles":272,"vertices":816,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.149999976158142,0.000008070607513732675,-0.9499511506904028],"max":[1.149999976158142,3.197648896687009,0.9499511506904028]},"sizeMeters":[2.3,3.198,1.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.242Z","updatedAt":"2026-09-06T14:02:57.975Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8665/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalDugoutTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8665/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8665/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8665/v1/model.glb\" alt=\"Signal Dugout (Trench Line 1917)\" 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/8665/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/8665/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8666","slug":"trench-line-1917-observation-loophole-e70510c8","title":"Observation Loophole (Trench Line 1917)","summary":"Sandbagged observation post with an armoured loophole plate.","description":"Observation loophole 1.8 x 1.3 m and 3.66 m tall: an earth and sandbag stack carrying an armoured plate with a viewing slot under a beamed and earth-covered roof, over a plank step. Dimensions 1.90 x 3.66 x 1.30 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-observation-loophole-e70510c8","cdnUrl":"https://cdn.3dassets.dev/assets/8666/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-observation-loophole-e70510c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/8666/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8666/v1/poster.webp","blurhash":"U5DJ6N~q0000_2n%9Gba00Rj-:odR5tRxtMy","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":21812,"triangles":360,"vertices":1080,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,0,-0.6499929767688986],"max":[0.949999988079071,3.6600000858306885,0.6499133426742106]},"sizeMeters":[1.9,3.66,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.203Z","updatedAt":"2026-09-06T14:02:58.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8666/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ObservationLoopholeTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8666/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8666/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8666/v1/model.glb\" alt=\"Observation Loophole (Trench Line 1917)\" 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/8666/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/8666/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8668","slug":"trench-line-1917-shell-crater-small-a7f65686","title":"Shell Crater (Small) (Trench Line 1917)","summary":"Small shell crater with a chalk spoil lip.","description":"Small shell crater 3.7 m across and 0.9 m deep, with a raised lip and thrown chalk spoil. Dimensions 4.28 x 1.12 x 4.27 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-shell-crater-small-a7f65686","cdnUrl":"https://cdn.3dassets.dev/assets/8668/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-shell-crater-small-a7f65686","thumbnailUrl":"https://cdn.3dassets.dev/assets/8668/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8668/v1/poster.webp","blurhash":"U67-Wn%L4nxu~qt6IUs;00M{xuRj00M{%MM{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":35636,"triangles":706,"vertices":2118,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.085721969604492,-0.00005189053732235216,-2.135896539383966],"max":[2.192337989807129,1.1199603236468851,2.135896539383966]},"sizeMeters":[4.278,1.12,4.272],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.528Z","updatedAt":"2026-09-06T14:02:58.089Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8668/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShellCraterSmallTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8668/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8668/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8668/v1/model.glb\" alt=\"Shell Crater (Small) (Trench Line 1917)\" 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/8668/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/8668/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8669","slug":"trench-line-1917-shell-crater-large-0aed8167","title":"Shell Crater (Large) (Trench Line 1917)","summary":"Large shell crater with spoil and broken timber in the bowl.","description":"Large shell crater 7.4 m across and 1.8 m deep, with a raised chalk lip and broken revetment timber in the bowl. Dimensions 8.71 x 2.02 x 8.54 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-shell-crater-large-0aed8167","cdnUrl":"https://cdn.3dassets.dev/assets/8669/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-shell-crater-large-0aed8167","thumbnailUrl":"https://cdn.3dassets.dev/assets/8669/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8669/v1/poster.webp","blurhash":"U997bBxt4nof~pofIUay00RjxuRj00Rj%MWB","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":68820,"triangles":1382,"vertices":4146,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-4.324398517608643,-0.00023898908797770346,-4.2716114011694035],"max":[4.384675979614258,2.019804468803797,4.2716114011694035]},"sizeMeters":[8.709,2.02,8.543],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.745Z","updatedAt":"2026-09-06T14:02:58.144Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8669/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShellCraterLargeTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8669/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8669/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8669/v1/model.glb\" alt=\"Shell Crater (Large) (Trench Line 1917)\" 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/8669/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/8669/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8670","slug":"trench-line-1917-shell-crater-flooded-5d3e4b19","title":"Shell Crater (Flooded) (Trench Line 1917)","summary":"Flooded shell crater holding standing water.","description":"Flooded shell crater 6.0 m across and 1.4 m deep, half filled with still water, with a chalk lip and floating timber. Dimensions 7.08 x 1.62 x 6.91 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data. Functional variant of shell-crater-large.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-shell-crater-flooded-5d3e4b19","cdnUrl":"https://cdn.3dassets.dev/assets/8670/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-shell-crater-flooded-5d3e4b19","thumbnailUrl":"https://cdn.3dassets.dev/assets/8670/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8670/v1/poster.webp","blurhash":"U88|^hjv4ot5~pj]IUoc00j@xuRk00ax%MRl","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":59076,"triangles":1164,"vertices":3492,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-3.51357364654541,-0.000169074935195912,-3.455135652502852],"max":[3.562549352645874,1.6199373860425696,3.455135652502852]},"sizeMeters":[7.076,1.62,6.91],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.447Z","updatedAt":"2026-09-06T14:02:58.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8670/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShellCraterFloodedTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8670/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8670/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8670/v1/model.glb\" alt=\"Shell Crater (Flooded) (Trench Line 1917)\" 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/8670/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/8670/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8672","slug":"trench-line-1917-wire-entanglement-straight-ac0d1da0","title":"Wire Entanglement Straight (Trench Line 1917)","summary":"Belt of barbed wire strained between angled pickets.","description":"Wire entanglement 6.0 m long, 1.2 m deep and 1.3 m tall: five pairs of angled pickets carrying four strained wire runs and diagonal lacing. Dimensions 6.90 x 1.30 x 1.51 m (X x Y x Z). Modular wire belt: origin centred at ground level, 6.0 m between joins; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-wire-entanglement-straight-ac0d1da0","cdnUrl":"https://cdn.3dassets.dev/assets/8672/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-wire-entanglement-straight-ac0d1da0","thumbnailUrl":"https://cdn.3dassets.dev/assets/8672/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8672/v1/poster.webp","blurhash":"U48zx;IU00t7%2?bNGD%00-;~pM{9Z00-p_2","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":78700,"triangles":1616,"vertices":4848,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-3.700000047683716,0.00022053222331441802,-0.7540462686977188],"max":[3.1977760791778564,1.2986452629121836,0.7540462686977188]},"sizeMeters":[6.898,1.298,1.508],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.723Z","updatedAt":"2026-09-06T14:02:58.277Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8672/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireEntanglementStraightTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8672/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8672/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8672/v1/model.glb\" alt=\"Wire Entanglement Straight (Trench Line 1917)\" 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/8672/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/8672/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8671","slug":"trench-line-1917-wire-entanglement-corner-addf4fa8","title":"Wire Entanglement Corner (Trench Line 1917)","summary":"Right-angle turn in a barbed wire belt.","description":"Wire entanglement corner turning 90 degrees, 1.2 m deep and 1.3 m tall, with angled pickets and four wire runs on each leg. Dimensions 3.63 x 1.30 x 3.75 m (X x Y x Z). Modular wire belt: origin at the corner at ground level, 3.0 m per leg; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-wire-entanglement-corner-addf4fa8","cdnUrl":"https://cdn.3dassets.dev/assets/8671/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-wire-entanglement-corner-addf4fa8","thumbnailUrl":"https://cdn.3dassets.dev/assets/8671/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8671/v1/poster.webp","blurhash":"U29QdO^,009ZIVs:^+g2009Y~q-pt2NF00ix","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":24184,"triangles":480,"vertices":1440,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-3.000009029186885,-0.000015412492900823693,-3],"max":[0.6338391592871351,1.2997105466558037,0.753911018371582]},"sizeMeters":[3.634,1.3,3.754],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.571Z","updatedAt":"2026-09-06T14:02:58.203Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8671/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireEntanglementCornerTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8671/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8671/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8671/v1/model.glb\" alt=\"Wire Entanglement Corner (Trench Line 1917)\" 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/8671/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/8671/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8667","slug":"trench-line-1917-screw-picket-865686b0","title":"Screw Picket (Trench Line 1917)","summary":"Corkscrew wire picket with eyelet loops.","description":"Screw picket 1.72 m tall with five eyelet loops and a three-turn screw foot, driven without a hammer. Dimensions 0.32 x 1.72 x 0.32 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-screw-picket-865686b0","cdnUrl":"https://cdn.3dassets.dev/assets/8667/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-screw-picket-865686b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/8667/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8667/v1/poster.webp","blurhash":"U16kS3_30000%Ma#IAWA02M{_1?b?HayD*og","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":30956,"triangles":622,"vertices":1866,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.1400257179304213,0,-0.1583261726766931],"max":[0.1792894879146666,1.7197569608688354,0.15742009266914]},"sizeMeters":[0.319,1.72,0.316],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:57.286Z","updatedAt":"2026-09-06T14:02:58.065Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8667/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScrewPicketTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8667/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8667/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8667/v1/model.glb\" alt=\"Screw Picket (Trench Line 1917)\" 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/8667/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/8667/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8673","slug":"trench-line-1917-knife-rest-6a21e235","title":"Knife Rest (Trench Line 1917)","summary":"Portable wire obstacle on crossed timber trestles.","description":"Knife rest 2.4 m long, 1.1 m tall and 0.9 m deep: two crossed timber trestles under a spine bar, strung with wire. Dimensions 4.08 x 1.73 x 0.74 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-knife-rest-6a21e235","cdnUrl":"https://cdn.3dassets.dev/assets/8673/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-knife-rest-6a21e235","thumbnailUrl":"https://cdn.3dassets.dev/assets/8673/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8673/v1/poster.webp","blurhash":"U79%n#%K0Ln,-:?a%2M{00%L~V%LE1IVoe?H","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":39004,"triangles":776,"vertices":2328,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.0378711223602295,-0.0000543774009227338,-0.36763194292782825],"max":[2.0378711223602295,1.7305221737266063,0.36763194292782825]},"sizeMeters":[4.076,1.731,0.735],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:59.813Z","updatedAt":"2026-09-06T14:03:00.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8673/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KnifeRestTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8673/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8673/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8673/v1/model.glb\" alt=\"Knife Rest (Trench Line 1917)\" 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/8673/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/8673/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8674","slug":"trench-line-1917-splintered-tree-7efbd597","title":"Splintered Tree (Trench Line 1917)","summary":"Shell-shattered tree stump with a splintered crown.","description":"Splintered tree 3.75 m tall: a barked trunk sheared off at 3.2 m into five splinters, with one broken limb and fallen debris. Dimensions 1.97 x 4.22 x 1.54 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-splintered-tree-7efbd597","cdnUrl":"https://cdn.3dassets.dev/assets/8674/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-splintered-tree-7efbd597","thumbnailUrl":"https://cdn.3dassets.dev/assets/8674/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8674/v1/poster.webp","blurhash":"U284Vl_1000100E1^+?bJCxu=_IAMyRQx[%e","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":23360,"triangles":448,"vertices":1344,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8451420907584313,0,-0.7865079785401425],"max":[1.123801344510169,4.215499401092529,0.7517691398675046]},"sizeMeters":[1.969,4.215,1.538],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:59.832Z","updatedAt":"2026-09-06T14:03:00.646Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8674/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SplinteredTreeTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8674/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8674/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8674/v1/model.glb\" alt=\"Splintered Tree (Trench Line 1917)\" 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/8674/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/8674/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8675","slug":"trench-line-1917-shattered-stump-c5a7426b","title":"Shattered Stump (Trench Line 1917)","summary":"Low shattered stump ringed with splinters.","description":"Shattered stump 1.5 m tall and 0.8 m across, blown off at 1.1 m into seven splinters, with scattered debris. Dimensions 2.19 x 1.83 x 2.12 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-shattered-stump-c5a7426b","cdnUrl":"https://cdn.3dassets.dev/assets/8675/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-shattered-stump-c5a7426b","thumbnailUrl":"https://cdn.3dassets.dev/assets/8675/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8675/v1/poster.webp","blurhash":"U49%kv%M00ni00WBjcIV00M|~Vt6~Vt7?H%K","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":24856,"triangles":480,"vertices":1440,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0490798950195312,-0.00007584103950919463,-1.060448955788503],"max":[1.1402113437652588,1.8257477522791332,1.0569505207680563]},"sizeMeters":[2.189,1.826,2.117],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:59.927Z","updatedAt":"2026-09-06T14:03:00.683Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8675/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShatteredStumpTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8675/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8675/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8675/v1/model.glb\" alt=\"Shattered Stump (Trench Line 1917)\" 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/8675/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/8675/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8676","slug":"trench-line-1917-ruined-wall-70f350bb","title":"Ruined Wall (Trench Line 1917)","summary":"Broken brick wall with a ragged top and fallen rubble.","description":"Ruined wall 3.4 m long and up to 2.3 m tall in coursed brick, broken away at the top with fallen rubble at the foot. Dimensions 4.19 x 2.32 x 1.18 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ruined-wall-70f350bb","cdnUrl":"https://cdn.3dassets.dev/assets/8676/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ruined-wall-70f350bb","thumbnailUrl":"https://cdn.3dassets.dev/assets/8676/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8676/v1/poster.webp","blurhash":"U7DlQON100?G02-.WU9Z00D%~V%M~Bxa-VRQ","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":28164,"triangles":564,"vertices":1692,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-2.0799999237060547,0.00007646963958474196,-0.1699451044921283],"max":[2.114593744277954,2.319923463603213,1.0079001770142917]},"sizeMeters":[4.195,2.32,1.178],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:02:59.987Z","updatedAt":"2026-09-06T14:03:00.713Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8676/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RuinedWallTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8676/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8676/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8676/v1/model.glb\" alt=\"Ruined Wall (Trench Line 1917)\" 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/8676/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/8676/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8678","slug":"trench-line-1917-ruined-cart-204a5560","title":"Ruined Cart (Trench Line 1917)","summary":"Wrecked farm cart with a broken wheel.","description":"Ruined cart 2.2 m long lying tipped, with a plank bed, one wheel still standing and a second broken off and fallen. Dimensions 2.73 x 1.25 x 3.81 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ruined-cart-204a5560","cdnUrl":"https://cdn.3dassets.dev/assets/8678/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ruined-cart-204a5560","thumbnailUrl":"https://cdn.3dassets.dev/assets/8678/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8678/v1/poster.webp","blurhash":"U89QT?E200-p%KRjIpt700-n~VIoD,%2-oM{","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":20044,"triangles":380,"vertices":1140,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.4999247881317463,0.000045333973644812176,-1.2244553565979004],"max":[1.2299248072052327,1.2476273430664553,2.5900001525878906]},"sizeMeters":[2.73,1.248,3.814],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:00.336Z","updatedAt":"2026-09-06T14:03:00.906Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8678/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RuinedCartTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8678/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8678/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8678/v1/model.glb\" alt=\"Ruined Cart (Trench Line 1917)\" 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/8678/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/8678/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8677","slug":"trench-line-1917-wrecked-early-tank-9e998346","title":"Wrecked Early Tank (Trench Line 1917)","summary":"Original rhomboid-hull early tank, derelict and nose-down with a thrown track.","description":"Original early tank design 8.0 m long and 3.6 m wide with a rhomboid all-round track frame and side sponsons, lying derelict nose-down with one track run thrown off. Generic markings only. Dimensions 11.08 x 3.26 x 7.26 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-wrecked-early-tank-9e998346","cdnUrl":"https://cdn.3dassets.dev/assets/8677/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-wrecked-early-tank-9e998346","thumbnailUrl":"https://cdn.3dassets.dev/assets/8677/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8677/v1/poster.webp","blurhash":"U78zc7%L02M}?F%1M|IV00Rj~UWB0M9b-o?F","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":25656,"triangles":480,"vertices":1440,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-5.549171447753906,-0.00012308813725447898,-3.6510565280914307],"max":[5.530851364135742,3.25788116346754,3.6074891090393066]},"sizeMeters":[11.08,3.258,7.259],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:00.305Z","updatedAt":"2026-09-06T14:03:00.888Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8677/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WreckedEarlyTankTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8677/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8677/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8677/v1/model.glb\" alt=\"Wrecked Early Tank (Trench Line 1917)\" 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/8677/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/8677/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8680","slug":"trench-line-1917-mud-pool-tile-b90da385","title":"Mud Pool Tile (Trench Line 1917)","summary":"Four-metre tile of churned mud pitted with water-filled hollows.","description":"Mud pool tile 4.0 m square: churned wet mud pitted with eighty-one water-filled hollows; tiles edge to edge on a 4.0 m grid. Dimensions 4.35 x 0.25 x 4.35 m (X x Y x Z). Ground tile: origin centred, tiles on a 4.0 m grid; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-mud-pool-tile-b90da385","cdnUrl":"https://cdn.3dassets.dev/assets/8680/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-mud-pool-tile-b90da385","thumbnailUrl":"https://cdn.3dassets.dev/assets/8680/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8680/v1/poster.webp","blurhash":"U497R%?H00W--pWBNGof00D*~pRk9Zxs%1NG","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":128564,"triangles":2628,"vertices":7884,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.174999952316284,-0.00008057065315597578,-2.174999952316284],"max":[2.174999952316284,0.24994535333938742,2.174999952316284]},"sizeMeters":[4.35,0.25,4.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:00.091Z","updatedAt":"2026-09-06T14:03:00.963Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8680/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MudPoolTileTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8680/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8680/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8680/v1/model.glb\" alt=\"Mud Pool Tile (Trench Line 1917)\" 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/8680/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/8680/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8679","slug":"trench-line-1917-dud-shell-cc94fa32","title":"Dud Shell (Trench Line 1917)","summary":"Unexploded shell half buried nose-down in the mud.","description":"Dud shell 0.8 m long and 0.26 m across, half buried nose-down at an angle with a driving band and disturbed mud around it. Dimensions 1.14 x 0.37 x 1.26 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-dud-shell-cc94fa32","cdnUrl":"https://cdn.3dassets.dev/assets/8679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-dud-shell-cc94fa32","thumbnailUrl":"https://cdn.3dassets.dev/assets/8679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8679/v1/poster.webp","blurhash":"U57KbpM|00tQxtWCR*j?00t7~VaLE2oexaa~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":30560,"triangles":584,"vertices":1752,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5679658651351929,0.000017359334931493775,-0.5180664618059055],"max":[0.5721690654754639,0.36602236382295117,0.7439684867858887]},"sizeMeters":[1.14,0.366,1.262],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:00.291Z","updatedAt":"2026-09-06T14:03:00.930Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DudShellTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8679/v1/model.glb\" alt=\"Dud Shell (Trench Line 1917)\" 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/8679/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/8679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8681","slug":"trench-line-1917-listening-post-7ad1e2e3","title":"Listening Post (Trench Line 1917)","summary":"Small sandbagged listening post pushed out from the line.","description":"Listening post 2.6 x 2.2 m: a boarded cut 1.4 m deep with sandbag walls on three sides, a plank step and wire runs back to the line. Dimensions 4.86 x 2.03 x 2.61 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-listening-post-7ad1e2e3","cdnUrl":"https://cdn.3dassets.dev/assets/8681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-listening-post-7ad1e2e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/8681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8681/v1/poster.webp","blurhash":"U5DJ6O0100tR~WMxE1tS00-;~poy00?btR9Z","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":27488,"triangles":492,"vertices":1476,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-3.200000047683716,-0.00008848991931609262,-1.51004007957378],"max":[1.659999966621399,2.0300005337147637,1.1000426855639398]},"sizeMeters":[4.86,2.03,2.61],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:02.744Z","updatedAt":"2026-09-06T14:03:03.214Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ListeningPostTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8681/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8681/v1/model.glb\" alt=\"Listening Post (Trench Line 1917)\" 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/8681/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/8681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8682","slug":"trench-line-1917-marker-cross-a80c6c0b","title":"Marker Cross (Trench Line 1917)","summary":"Timber grave cross with a blank plate and a helmet.","description":"Marker cross 1.35 m tall in rough timber with a blank name plate, a helmet resting on the head and disturbed mud at the foot. Dimensions 0.84 x 1.36 x 0.79 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-marker-cross-a80c6c0b","cdnUrl":"https://cdn.3dassets.dev/assets/8682/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-marker-cross-a80c6c0b","thumbnailUrl":"https://cdn.3dassets.dev/assets/8682/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8682/v1/poster.webp","blurhash":"U48zuy%L009HELxunOD%01M{~V?H9aM{?a-:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":27456,"triangles":506,"vertices":1518,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.39595839381217957,0.000027791999782277033,-0.3827610461867121],"max":[0.4446162283420563,1.3600000008460014,0.4099962263262537]},"sizeMeters":[0.841,1.36,0.793],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:02.727Z","updatedAt":"2026-09-06T14:03:03.310Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8682/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarkerCrossTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8682/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8682/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8682/v1/model.glb\" alt=\"Marker Cross (Trench Line 1917)\" 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/8682/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/8682/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8684","slug":"trench-line-1917-broken-wire-run-07260933","title":"Broken Wire Run (Trench Line 1917)","summary":"Cut and collapsed section of wire belt.","description":"Broken wire run 3.6 m long: leaning and snapped pickets with sagging, tangled wire and churned mud. Dimensions 3.66 x 1.30 x 1.77 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-broken-wire-run-07260933","cdnUrl":"https://cdn.3dassets.dev/assets/8684/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-broken-wire-run-07260933","thumbnailUrl":"https://cdn.3dassets.dev/assets/8684/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8684/v1/poster.webp","blurhash":"U58;JXNL0KV@9G-pozIU00V?^+xu~o9GV@-p","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":55932,"triangles":1128,"vertices":3384,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.831938624382019,0.000013548869332788427,-0.8623263293422311],"max":[1.831938624382019,1.300869574084722,0.9084214025653451]},"sizeMeters":[3.664,1.301,1.771],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:03.110Z","updatedAt":"2026-09-06T14:03:03.363Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8684/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrokenWireRunTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8684/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8684/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8684/v1/model.glb\" alt=\"Broken Wire Run (Trench Line 1917)\" 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/8684/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/8684/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8683","slug":"trench-line-1917-debris-field-tile-6152c782","title":"Debris Field Tile (Trench Line 1917)","summary":"Ground tile scattered with broken boards, cases and spent brass.","description":"Debris field tile 3.4 x 2.6 m: churned mud scattered with broken duckboards, four spent brass cases, chalk lumps and a discarded tin. Dimensions 3.40 x 0.62 x 2.79 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-debris-field-tile-6152c782","cdnUrl":"https://cdn.3dassets.dev/assets/8683/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-debris-field-tile-6152c782","thumbnailUrl":"https://cdn.3dassets.dev/assets/8683/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8683/v1/poster.webp","blurhash":"U5AAK?xt00t8NHWXt6ad00Rk~VM{nhs:kCo#","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":35876,"triangles":672,"vertices":2016,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.7000000476837158,0.00006378202117000853,-1.4906590227463439],"max":[1.7000000476837158,0.6200036586691153,1.3000976956970804]},"sizeMeters":[3.4,0.62,2.791],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:02.763Z","updatedAt":"2026-09-06T14:03:03.339Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8683/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DebrisFieldTileTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8683/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8683/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8683/v1/model.glb\" alt=\"Debris Field Tile (Trench Line 1917)\" 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/8683/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/8683/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8687","slug":"trench-line-1917-bolt-rifle-bayonet-619d1e69","title":"Bolt Rifle With Bayonet (Trench Line 1917)","summary":"Original period bolt-action rifle with a fixed bayonet, lying on its side.","description":"Original bolt-action rifle 1.55 m long with the bayonet fixed: timber stock and fore-end, barrel, bolt handle, magazine and trigger guard. Generic design with no markings. Dimensions 0.16 x 0.34 x 2.01 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-bolt-rifle-bayonet-619d1e69","cdnUrl":"https://cdn.3dassets.dev/assets/8687/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-bolt-rifle-bayonet-619d1e69","thumbnailUrl":"https://cdn.3dassets.dev/assets/8687/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8687/v1/poster.webp","blurhash":"U56t%T9aE2Rj~o9aWBs:01RQ-.%L00?H-oR+","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":13008,"triangles":232,"vertices":696,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.05496618853884286,0.000004034541122327484,-0.7300000190734863],"max":[0.10828097866850442,0.3349642184300271,1.2799999713897705]},"sizeMeters":[0.163,0.335,2.01],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:03.123Z","updatedAt":"2026-09-06T14:03:03.759Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8687/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoltRifleWithBayonetTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8687/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8687/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8687/v1/model.glb\" alt=\"Bolt Rifle With Bayonet (Trench Line 1917)\" 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/8687/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/8687/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8685","slug":"trench-line-1917-machine-gun-sled-193a69f5","title":"Machine Gun On Sled (Trench Line 1917)","summary":"Original water-cooled machine gun on a sled mount with a condenser can.","description":"Original period machine gun on a sled mount 1.3 m long: a water-cooled jacketed barrel, spade grips, an ammunition box, a feed belt and a condenser can with a hose. Generic design with no markings. Dimensions 0.97 x 0.64 x 1.65 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-machine-gun-sled-193a69f5","cdnUrl":"https://cdn.3dassets.dev/assets/8685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-machine-gun-sled-193a69f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/8685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8685/v1/poster.webp","blurhash":"U48qHNIT00IWIoM_s;%N00%M~pxt?IxvR%IT","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":52492,"triangles":1002,"vertices":3006,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.4999938916414862,0.000027168349896383726,-0.6499999761581421],"max":[0.47002501022984144,0.6399663401025839,1]},"sizeMeters":[0.97,0.64,1.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:03.062Z","updatedAt":"2026-09-06T14:03:03.692Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MachineGunOnSledTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8685/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8685/v1/model.glb\" alt=\"Machine Gun On Sled (Trench Line 1917)\" 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/8685/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/8685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8688","slug":"trench-line-1917-trench-mortar-ca22abbe","title":"Trench Mortar (Trench Line 1917)","summary":"Original short-barrelled trench mortar on a baseplate with bipod.","description":"Original trench mortar 1.1 m tall: a short rifled tube on a timber baseplate and iron bipod with an elevating screw, with three finned bombs beside it. Generic design with no markings. Dimensions 0.99 x 0.78 x 1.01 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-mortar-ca22abbe","cdnUrl":"https://cdn.3dassets.dev/assets/8688/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-mortar-ca22abbe","thumbnailUrl":"https://cdn.3dassets.dev/assets/8688/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8688/v1/poster.webp","blurhash":"U9Av,$9b01-:4:xCt6j^01t7-os,~VI=aenh","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":31712,"triangles":608,"vertices":1824,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6399949281347257,-0.000010194719905487482,-0.37041735649108887],"max":[0.3499999940395355,0.7833596015855009,0.6349999904632568]},"sizeMeters":[0.99,0.783,1.005],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:03.408Z","updatedAt":"2026-09-06T14:03:03.775Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8688/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchMortarTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8688/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8688/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8688/v1/model.glb\" alt=\"Trench Mortar (Trench Line 1917)\" 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/8688/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/8688/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8686","slug":"trench-line-1917-grenade-box-9493d623","title":"Grenade Box (Trench Line 1917)","summary":"Banded timber grenade box with three grenades beside it.","description":"Grenade box 0.54 m long and 0.31 m tall in banded timber with a lifting handle and a blank label, with three segmented grenades alongside. Dimensions 0.64 x 0.32 x 0.54 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-grenade-box-9493d623","cdnUrl":"https://cdn.3dassets.dev/assets/8686/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-grenade-box-9493d623","thumbnailUrl":"https://cdn.3dassets.dev/assets/8686/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8686/v1/poster.webp","blurhash":"U7DI];4;00$|^+niE2M|00xW~Vt84.kWsl%0","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":22216,"triangles":396,"vertices":1188,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3720000088214874,0.000005640957423669324,-0.1800109938164053],"max":[0.27000001072883606,0.3149861924316837,0.3549928726555604]},"sizeMeters":[0.642,0.315,0.535],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:03.019Z","updatedAt":"2026-09-06T14:03:03.763Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8686/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GrenadeBoxTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8686/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8686/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8686/v1/model.glb\" alt=\"Grenade Box (Trench Line 1917)\" 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/8686/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/8686/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8691","slug":"trench-line-1917-trench-periscope-0f62b9e0","title":"Trench Periscope (Trench Line 1917)","summary":"Box-and-mirror trench periscope on a timber body.","description":"Trench periscope 1.42 m tall: a slim timber body with an upper and lower mirror box and a grip band. Dimensions 0.16 x 1.41 x 0.17 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-trench-periscope-0f62b9e0","cdnUrl":"https://cdn.3dassets.dev/assets/8691/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-trench-periscope-0f62b9e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/8691/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8691/v1/poster.webp","blurhash":"U28zoY~m0001R;ogt1Ri9IN1---~ozoye-Mz","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":5932,"triangles":72,"vertices":216,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999999821186066,0,-0.08500259563681095],"max":[0.07999999821186066,1.409999966621399,0.08500259563681095]},"sizeMeters":[0.16,1.41,0.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.027Z","updatedAt":"2026-09-06T14:03:05.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8691/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrenchPeriscopeTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8691/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8691/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8691/v1/model.glb\" alt=\"Trench Periscope (Trench Line 1917)\" 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/8691/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/8691/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8692","slug":"trench-line-1917-flare-pistol-65db2d0f","title":"Flare Pistol (Trench Line 1917)","summary":"Brass signal pistol with three cartridges.","description":"Flare pistol 0.30 m long in brass with a timber grip, lying beside three cartridges. Dimensions 0.17 x 0.19 x 0.37 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-flare-pistol-65db2d0f","cdnUrl":"https://cdn.3dassets.dev/assets/8692/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-flare-pistol-65db2d0f","thumbnailUrl":"https://cdn.3dassets.dev/assets/8692/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8692/v1/poster.webp","blurhash":"U78W$[0L57?G~BE2NH-U0MoM-.w]9Ht6%LoM","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":12920,"triangles":216,"vertices":648,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1420000046491623,0,-0.12092080664727303],"max":[0.029998878038669068,0.1900016963358549,0.24853169918060303]},"sizeMeters":[0.172,0.19,0.369],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.071Z","updatedAt":"2026-09-06T14:03:06.033Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8692/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlarePistolTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8692/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8692/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8692/v1/model.glb\" alt=\"Flare Pistol (Trench Line 1917)\" 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/8692/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/8692/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8689","slug":"trench-line-1917-gas-mask-hook-62e35e6d","title":"Gas Mask On Hook (Trench Line 1917)","summary":"Period box respirator hung on a dugout hook.","description":"Gas mask on a hook at 1.24 m: a khaki face piece with two eyepieces and a corrugated hose running to a filter tin, with the carrier bag beside it. Dimensions 0.37 x 0.90 x 0.28 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-gas-mask-hook-62e35e6d","cdnUrl":"https://cdn.3dassets.dev/assets/8689/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-gas-mask-hook-62e35e6d","thumbnailUrl":"https://cdn.3dassets.dev/assets/8689/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8689/v1/poster.webp","blurhash":"U48gjIkX00n2-;%LD%D*00D%~p~W8{IV.7?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":27352,"triangles":480,"vertices":1440,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.26000427112621555,0,-0.08500564280626455],"max":[0.10724333770306876,0.8999999947845936,0.19328974695342407]},"sizeMeters":[0.367,0.9,0.278],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.304Z","updatedAt":"2026-09-06T14:03:05.982Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8689/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GasMaskOnHookTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8689/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8689/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8689/v1/model.glb\" alt=\"Gas Mask On Hook (Trench Line 1917)\" 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/8689/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/8689/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8690","slug":"trench-line-1917-helmet-afeeb55f","title":"Helmet (Trench Line 1917)","summary":"Broad-brimmed steel helmet resting crown up.","description":"Helmet 0.47 m across the brim and 0.12 m tall, resting crown up, with a rolled rim, two liner lugs and a chin strap. Dimensions 0.49 x 0.12 x 0.49 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-helmet-afeeb55f","cdnUrl":"https://cdn.3dassets.dev/assets/8690/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-helmet-afeeb55f","thumbnailUrl":"https://cdn.3dassets.dev/assets/8690/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8690/v1/poster.webp","blurhash":"U79QjY%100RjM{WWt7o000M|~pt7%Ls.M{WY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":22000,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.24699999392032623,-4.095414778276796e-7,-0.243261110379432],"max":[0.24699999392032623,0.1150004116276404,0.243261110379432]},"sizeMeters":[0.494,0.115,0.487],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.252Z","updatedAt":"2026-09-06T14:03:05.997Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8690/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HelmetTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8690/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8690/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8690/v1/model.glb\" alt=\"Helmet (Trench Line 1917)\" 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/8690/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/8690/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8693","slug":"trench-line-1917-greatcoat-peg-34069273","title":"Greatcoat On Peg (Trench Line 1917)","summary":"Heavy greatcoat hanging from a dugout peg.","description":"Greatcoat on a peg at 1.74 m: a khaki coat 1.15 m long with a collar, two sleeves, a button row and a shoulder strap. Dimensions 0.70 x 1.28 x 0.22 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-greatcoat-peg-34069273","cdnUrl":"https://cdn.3dassets.dev/assets/8693/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-greatcoat-peg-34069273","thumbnailUrl":"https://cdn.3dassets.dev/assets/8693/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8693/v1/poster.webp","blurhash":"U5A,tIWB00%3MyxtozIV00WC~poJxZM|Wr%L","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":30372,"triangles":558,"vertices":1674,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3501504287839929,0,-0.014998325057857318],"max":[0.3491116390348474,1.2799999713897705,0.20200506847102923]},"sizeMeters":[0.699,1.28,0.217],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.283Z","updatedAt":"2026-09-06T14:03:06.337Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8693/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GreatcoatOnPegTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8693/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8693/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8693/v1/model.glb\" alt=\"Greatcoat On Peg (Trench Line 1917)\" 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/8693/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/8693/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8694","slug":"trench-line-1917-mess-tin-4353c378","title":"Mess Tin (Trench Line 1917)","summary":"Oval mess tin with its lid and a wire handle.","description":"Mess tin 0.19 m across and 0.16 m tall with a wire bail handle, and its shallow lid set beside it. Dimensions 0.37 x 0.15 x 0.21 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-mess-tin-4353c378","cdnUrl":"https://cdn.3dassets.dev/assets/8694/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-mess-tin-4353c378","thumbnailUrl":"https://cdn.3dassets.dev/assets/8694/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8694/v1/poster.webp","blurhash":"U47dtR-p00M|?b?aIo4.00ay~WM{9F0K%M~q","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":11264,"triangles":212,"vertices":636,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.0949999988079071,-0.000003904930988701816,-0.09261694547126251],"max":[0.27799999713897705,0.1550039061230816,0.11799879368731933]},"sizeMeters":[0.373,0.155,0.211],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.549Z","updatedAt":"2026-09-06T14:03:06.512Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8694/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MessTinTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8694/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8694/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8694/v1/model.glb\" alt=\"Mess Tin (Trench Line 1917)\" 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/8694/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/8694/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8695","slug":"trench-line-1917-canteen-2694f2b7","title":"Canteen (Trench Line 1917)","summary":"Felt-covered water canteen with a stopper and strap.","description":"Canteen 0.14 m across and 0.26 m tall in enamelled iron with a khaki cover, a stopper and a carrying strap. Dimensions 0.14 x 0.26 x 0.14 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-canteen-2694f2b7","cdnUrl":"https://cdn.3dassets.dev/assets/8695/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-canteen-2694f2b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/8695/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8695/v1/poster.webp","blurhash":"U8AJ[-%M00D*t6ofRkM|00IV~p%2t7t7a#WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":10492,"triangles":176,"vertices":528,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06800881857750789,0,-0.06629673022791963],"max":[0.06800881857750789,0.2549999952316284,0.07499893196683184]},"sizeMeters":[0.136,0.255,0.141],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.482Z","updatedAt":"2026-09-06T14:03:06.481Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8695/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanteenTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8695/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8695/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8695/v1/model.glb\" alt=\"Canteen (Trench Line 1917)\" 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/8695/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/8695/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8696","slug":"trench-line-1917-ration-tin-8ecd283b","title":"Ration Tin (Trench Line 1917)","summary":"Opened ration tin with a rolled lid, and a second tin beside it.","description":"Ration tin 0.12 m across and 0.15 m tall in rusted tinplate with a partly rolled-back lid, with a sealed tin beside it. Dimensions 0.28 x 0.15 x 0.15 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ration-tin-8ecd283b","cdnUrl":"https://cdn.3dassets.dev/assets/8696/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ration-tin-8ecd283b","thumbnailUrl":"https://cdn.3dassets.dev/assets/8696/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8696/v1/poster.webp","blurhash":"U8AS[0%19uI:~B^jR*E202-o%1IoE1E2s,%1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":11428,"triangles":200,"vertices":600,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.05999999865889549,0.0000023009418617242483,-0.09600049358047846],"max":[0.2160000056028366,0.148999572639039,0.05849616702832583]},"sizeMeters":[0.276,0.149,0.154],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:05.381Z","updatedAt":"2026-09-06T14:03:06.521Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8696/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RationTinTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8696/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8696/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8696/v1/model.glb\" alt=\"Ration Tin (Trench Line 1917)\" 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/8696/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/8696/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8699","slug":"trench-line-1917-rum-jar-267b9287","title":"Rum Jar (Trench Line 1917)","summary":"Glazed stoneware jar with a stopper and blank label.","description":"Rum jar 0.25 m across and 0.45 m tall in glazed stoneware, with a rim collar, timber stopper and a blank label panel. Dimensions 0.25 x 0.45 x 0.25 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-rum-jar-267b9287","cdnUrl":"https://cdn.3dassets.dev/assets/8699/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-rum-jar-267b9287","thumbnailUrl":"https://cdn.3dassets.dev/assets/8699/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8699/v1/poster.webp","blurhash":"U59Q24o}00rptQsoMyNa00RP~Ao#?bofE1WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":18956,"triangles":344,"vertices":1032,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.12501174572309634,0,-0.12501174572309634],"max":[0.12501174572309634,0.4499981569684297,0.1270010091522868]},"sizeMeters":[0.25,0.45,0.252],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.474Z","updatedAt":"2026-09-06T14:03:08.939Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8699/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RumJarTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8699/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8699/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8699/v1/model.glb\" alt=\"Rum Jar (Trench Line 1917)\" 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/8699/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/8699/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8698","slug":"trench-line-1917-letters-box-b553c1b4","title":"Letters Box (Trench Line 1917)","summary":"Small banded box of mail with loose letters beside it.","description":"Letters box 0.36 m long and 0.23 m tall in banded timber with a blank label, with four loose letters stacked beside it. Dimensions 0.53 x 0.26 x 0.26 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-letters-box-b553c1b4","cdnUrl":"https://cdn.3dassets.dev/assets/8698/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-letters-box-b553c1b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/8698/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8698/v1/poster.webp","blurhash":"UDEf4n~U00kCt6?bjbD%019axaWFRjIUkCtR","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":7004,"triangles":108,"vertices":324,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,-0.000007472990093390641,-0.13000519331255295],"max":[0.3501322865486145,0.2600025093478886,0.13362426072397512]},"sizeMeters":[0.53,0.26,0.264],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.516Z","updatedAt":"2026-09-06T14:03:08.943Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8698/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LettersBoxTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8698/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8698/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8698/v1/model.glb\" alt=\"Letters Box (Trench Line 1917)\" 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/8698/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/8698/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8697","slug":"trench-line-1917-field-telephone-1917-d94666ad","title":"Field Telephone (Trench Line 1917)","summary":"Cased field telephone with a handset and magneto crank.","description":"Field telephone 0.31 m wide and 0.30 m tall in a timber case, with a handset on top, a magneto crank, terminals and a lead. Dimensions 0.38 x 0.32 x 0.28 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-field-telephone-1917-d94666ad","cdnUrl":"https://cdn.3dassets.dev/assets/8697/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-field-telephone-1917-d94666ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/8697/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8697/v1/poster.webp","blurhash":"U9D+uI~T00IntR%LM{WE009b%2Roi_M|kDM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":21076,"triangles":338,"vertices":1014,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.1550000011920929,-0.00000864569947364724,-0.12394288182258606],"max":[0.22698276162842,0.3159985561540585,0.15945451444858888]},"sizeMeters":[0.382,0.316,0.283],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.377Z","updatedAt":"2026-09-06T14:03:08.911Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8697/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FieldTelephoneTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8697/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8697/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8697/v1/model.glb\" alt=\"Field Telephone (Trench Line 1917)\" 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/8697/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/8697/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8700","slug":"trench-line-1917-signal-flags-f1f0739d","title":"Signal Flags (Trench Line 1917)","summary":"Pair of two-colour semaphore flags standing in their bag.","description":"Signal flags 0.9 m tall: a pair of two-colour flags on timber staves standing in a canvas bag. Dimensions 0.82 x 0.90 x 0.27 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-signal-flags-f1f0739d","cdnUrl":"https://cdn.3dassets.dev/assets/8700/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-signal-flags-f1f0739d","thumbnailUrl":"https://cdn.3dassets.dev/assets/8700/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8700/v1/poster.webp","blurhash":"U9BM*:-:00IttRx[xtM{00of~qM_8{IVxvxt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":8524,"triangles":124,"vertices":372,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4099999964237213,0,-0.240004877596989],"max":[0.4099999964237213,0.8971191644668579,0.02500804191271408]},"sizeMeters":[0.82,0.897,0.265],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.396Z","updatedAt":"2026-09-06T14:03:09.007Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8700/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalFlagsTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8700/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8700/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8700/v1/model.glb\" alt=\"Signal Flags (Trench Line 1917)\" 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/8700/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/8700/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8701","slug":"trench-line-1917-whistle-50074909","title":"Whistle (Trench Line 1917)","summary":"Brass whistle on a coiled lanyard.","description":"Whistle 0.07 m long in brass with a mouthpiece and ring, lying on a coiled khaki lanyard. Dimensions 0.15 x 0.03 x 0.11 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-whistle-50074909","cdnUrl":"https://cdn.3dassets.dev/assets/8701/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-whistle-50074909","thumbnailUrl":"https://cdn.3dassets.dev/assets/8701/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8701/v1/poster.webp","blurhash":"U58qHFMy00W@M{xtxuM}00%L~pV?%MIWIVxp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":31168,"triangles":612,"vertices":1836,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.05999999865889549,-1.2365206516692928e-7,-0.05356404930353165],"max":[0.09382222446859409,0.02599807744863654,0.053872063755989075]},"sizeMeters":[0.154,0.026,0.107],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.589Z","updatedAt":"2026-09-06T14:03:09.157Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8701/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WhistleTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8701/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8701/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8701/v1/model.glb\" alt=\"Whistle (Trench Line 1917)\" 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/8701/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/8701/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8702","slug":"trench-line-1917-wire-cutters-48d3c012","title":"Wire Cutters (Trench Line 1917)","summary":"Long-handled wire cutters lying open.","description":"Wire cutters 0.44 m long lying open, with timber-gripped handles, a pivot and hardened jaws. Dimensions 0.10 x 0.03 x 0.48 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-wire-cutters-48d3c012","cdnUrl":"https://cdn.3dassets.dev/assets/8702/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-wire-cutters-48d3c012","thumbnailUrl":"https://cdn.3dassets.dev/assets/8702/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8702/v1/poster.webp","blurhash":"U56*XO-ORiS%o~9GRjtR00E3%LxVn1~p%MIU","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":6408,"triangles":96,"vertices":288,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.04999465935801281,-8.849622821858333e-7,-0.2800000011920929],"max":[0.04999465935801281,0.028997542891178667,0.20000000298023224]},"sizeMeters":[0.1,0.029,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.550Z","updatedAt":"2026-09-06T14:03:09.399Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8702/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireCuttersTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8702/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8702/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8702/v1/model.glb\" alt=\"Wire Cutters (Trench Line 1917)\" 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/8702/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/8702/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8704","slug":"trench-line-1917-entrenching-tool-17a2e63c","title":"Entrenching Tool (Trench Line 1917)","summary":"Short entrenching tool with a spade blade and a pick end.","description":"Entrenching tool 0.62 m long: a timber helve through an iron head carrying a small spade blade and a pick end. Dimensions 0.17 x 0.05 x 0.64 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-entrenching-tool-17a2e63c","cdnUrl":"https://cdn.3dassets.dev/assets/8704/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-entrenching-tool-17a2e63c","thumbnailUrl":"https://cdn.3dassets.dev/assets/8704/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8704/v1/poster.webp","blurhash":"U57dqI-=9ZRhs+D%Rj%L00D%?HxuNL~W%M9H","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"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":5276,"triangles":72,"vertices":216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.08499809828404886,0.000003844959578995499,-0.10000000149011612],"max":[0.08499809828404886,0.047995574151282,0.5400000214576721]},"sizeMeters":[0.17,0.048,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.822Z","updatedAt":"2026-09-06T14:03:09.468Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8704/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntrenchingToolTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8704/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8704/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8704/v1/model.glb\" alt=\"Entrenching Tool (Trench Line 1917)\" 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/8704/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/8704/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8703","slug":"trench-line-1917-stretcher-1917-73382bca","title":"Stretcher (Trench Line 1917)","summary":"Canvas stretcher on timber poles with a folded blanket.","description":"Stretcher 2.3 m long and 0.6 m wide: canvas slung between timber poles on four iron legs, with a folded blanket and a loose dressing cloth. Dimensions 2.10 x 0.26 x 2.30 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-stretcher-1917-73382bca","cdnUrl":"https://cdn.3dassets.dev/assets/8703/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-stretcher-1917-73382bca","thumbnailUrl":"https://cdn.3dassets.dev/assets/8703/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8703/v1/poster.webp","blurhash":"U98;Ppk900e:xaofRkRj00j]~pWUIoRixtx]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":10280,"triangles":148,"vertices":444,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.0499999523162842,0.00002838170566474979,-1.149999976158142],"max":[1.0499999523162842,0.2599914572007685,1.149999976158142]},"sizeMeters":[2.1,0.26,2.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:08.759Z","updatedAt":"2026-09-06T14:03:09.431Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8703/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StretcherTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8703/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8703/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8703/v1/model.glb\" alt=\"Stretcher (Trench Line 1917)\" 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/8703/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/8703/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8705","slug":"trench-line-1917-water-cart-43e6db48","title":"Water Cart (Trench Line 1917)","summary":"Horse-drawn water cart with an iron tank and shafts.","description":"Water cart 3.4 m long: an iron tank 1.4 m long on a timber body between two spoked wheels, with a filler cap, hoops and draught shafts. Dimensions 2.92 x 1.51 x 3.94 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-water-cart-43e6db48","cdnUrl":"https://cdn.3dassets.dev/assets/8705/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-water-cart-43e6db48","thumbnailUrl":"https://cdn.3dassets.dev/assets/8705/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8705/v1/poster.webp","blurhash":"U78|nkIo01$*%1M|M{xZ00%1~UR*D+-o-oIp","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":57784,"triangles":1152,"vertices":3456,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.600000023841858,0.00006469421421351207,-1.2400000095367432],"max":[1.3199652297530922,1.509954777640732,2.700000047683716]},"sizeMeters":[2.92,1.51,3.94],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.148Z","updatedAt":"2026-09-06T14:03:11.562Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8705/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterCartTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8705/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8705/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8705/v1/model.glb\" alt=\"Water Cart (Trench Line 1917)\" 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/8705/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/8705/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8708","slug":"trench-line-1917-shell-stack-de9b2e20","title":"Artillery Shell Stack (Trench Line 1917)","summary":"Pyramid stack of nine brass artillery shells on planks.","description":"Artillery shell stack 2.0 m wide and 0.7 m tall: nine brass shells with driving bands laid in a three-course pyramid on planks. Dimensions 2.00 x 0.73 x 1.23 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-shell-stack-de9b2e20","cdnUrl":"https://cdn.3dassets.dev/assets/8708/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-shell-stack-de9b2e20","thumbnailUrl":"https://cdn.3dassets.dev/assets/8708/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8708/v1/poster.webp","blurhash":"UCC6iMxu4pju4oxtxuRk00IUs+t6~pIps.oe","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":106708,"triangles":2172,"vertices":6516,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000027548242874819717,-0.5000549392775213],"max":[1,0.7340275754225929,0.7300000190734863]},"sizeMeters":[2,0.734,1.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.166Z","updatedAt":"2026-09-06T14:03:11.680Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8708/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArtilleryShellStackTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8708/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8708/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8708/v1/model.glb\" alt=\"Artillery Shell Stack (Trench Line 1917)\" 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/8708/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/8708/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8706","slug":"trench-line-1917-light-rail-track-be3a7e1c","title":"Light Rail Track (Trench Line 1917)","summary":"Narrow-gauge trench tramway panel on sleepers.","description":"Light rail track panel 1.1 m long and 0.6 m gauge: two rails on seven sleepers bedded in ballast. Dimensions 2.40 x 0.24 x 1.10 m (X x Y x Z). Modular track panel: origin centred at ground level, 1.1 m between joins; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-light-rail-track-be3a7e1c","cdnUrl":"https://cdn.3dassets.dev/assets/8706/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-light-rail-track-be3a7e1c","thumbnailUrl":"https://cdn.3dassets.dev/assets/8706/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8706/v1/poster.webp","blurhash":"U5C6iR-:00xaMd^+x^9a00D%~TX8%$00I9?Z","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"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":9368,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.00003021518822695496,-0.550000011920929],"max":[1.2000000476837158,0.23998428424065116,0.550000011920929]},"sizeMeters":[2.4,0.24,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:10.978Z","updatedAt":"2026-09-06T14:03:11.647Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8706/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LightRailTrackTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8706/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8706/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8706/v1/model.glb\" alt=\"Light Rail Track (Trench Line 1917)\" 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/8706/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/8706/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8707","slug":"trench-line-1917-rail-trolley-a9372708","title":"Rail Trolley (Trench Line 1917)","summary":"Narrow-gauge flat trolley with a brake standard.","description":"Rail trolley 1.9 m long on four flanged wheels at 0.6 m gauge, with a planked deck, end boards and a brake standard. Dimensions 1.24 x 1.32 x 1.96 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-rail-trolley-a9372708","cdnUrl":"https://cdn.3dassets.dev/assets/8707/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-rail-trolley-a9372708","thumbnailUrl":"https://cdn.3dassets.dev/assets/8707/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8707/v1/poster.webp","blurhash":"U6DSdht800-:?u0LIU~U00D*_2S49F~oWED*","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":18624,"triangles":336,"vertices":1008,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6199957394754897,0.000051573337727012225,-0.9800000190734863],"max":[0.6199957394754897,1.320038486920245,0.9800000190734863]},"sizeMeters":[1.24,1.32,1.96],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:10.920Z","updatedAt":"2026-09-06T14:03:11.677Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8707/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RailTrolleyTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8707/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8707/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8707/v1/model.glb\" alt=\"Rail Trolley (Trench Line 1917)\" 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/8707/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/8707/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8709","slug":"trench-line-1917-horse-line-post-25ddb907","title":"Horse Line Post (Trench Line 1917)","summary":"Picket line of posts with rails, mangers and water buckets.","description":"Horse line 6.2 m long: four driven posts carrying two rails, with six timber mangers and three water buckets. Dimensions 6.20 x 1.50 x 1.38 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-horse-line-post-25ddb907","cdnUrl":"https://cdn.3dassets.dev/assets/8709/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-horse-line-post-25ddb907","thumbnailUrl":"https://cdn.3dassets.dev/assets/8709/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8709/v1/poster.webp","blurhash":"U6A,d#?b4o-:W@~V%2M|00D+_1VsVq01E2j?","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":23616,"triangles":440,"vertices":1320,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-3.0999999046325684,0.00010897190849434857,-0.7699032466065407],"max":[3.0999999046325684,1.4998910280915057,0.6100497408115595]},"sizeMeters":[6.2,1.5,1.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.404Z","updatedAt":"2026-09-06T14:03:11.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8709/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HorseLinePostTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8709/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8709/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8709/v1/model.glb\" alt=\"Horse Line Post (Trench Line 1917)\" 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/8709/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/8709/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8711","slug":"trench-line-1917-water-tank-f56515d8","title":"Water Tank (Trench Line 1917)","summary":"Raised iron water tank on a braced timber stand.","description":"Water tank 2.1 m square and 3.6 m tall: an iron cistern 1.2 m deep with hoops on a braced timber stand, with a down pipe and tap. Dimensions 2.28 x 3.62 x 2.28 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-water-tank-f56515d8","cdnUrl":"https://cdn.3dassets.dev/assets/8711/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-water-tank-f56515d8","thumbnailUrl":"https://cdn.3dassets.dev/assets/8711/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8711/v1/poster.webp","blurhash":"U3BpRj.700$#tTn.E2Io00M{xURQ00M{~V-.","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":57316,"triangles":1128,"vertices":3384,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.1400063670718041,0,-1.1400063670718041],"max":[1.1400063670718041,3.619976910577941,1.1400063670718041]},"sizeMeters":[2.28,3.62,2.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.330Z","updatedAt":"2026-09-06T14:03:11.982Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8711/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterTankTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8711/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8711/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8711/v1/model.glb\" alt=\"Water Tank (Trench Line 1917)\" 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/8711/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/8711/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8710","slug":"trench-line-1917-supply-dump-3773aad1","title":"Supply Dump (Trench Line 1917)","summary":"Stacked crates and drums under a canvas fly sheet.","description":"Supply dump 4.2 x 3.0 m: nine banded crates in a pyramid and eight drums on a gravel pad, under a canvas fly on four poles. Dimensions 4.20 x 1.84 x 4.40 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-supply-dump-3773aad1","cdnUrl":"https://cdn.3dassets.dev/assets/8710/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-supply-dump-3773aad1","thumbnailUrl":"https://cdn.3dassets.dev/assets/8710/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8710/v1/poster.webp","blurhash":"U5ECj~%N00%N.7t8RPR%00D$~qxt9FIUS3xu","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":53072,"triangles":1040,"vertices":3120,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.0999999046325684,0.0000106844935427175,-2.200000047683716],"max":[2.0999999046325684,1.8400003255590527,2.200000047683716]},"sizeMeters":[4.2,1.84,4.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.220Z","updatedAt":"2026-09-06T14:03:11.942Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8710/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SupplyDumpTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8710/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8710/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8710/v1/model.glb\" alt=\"Supply Dump (Trench Line 1917)\" 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/8710/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/8710/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8712","slug":"trench-line-1917-ridge-tent-70262a4e","title":"Ridge Tent (Trench Line 1917)","summary":"Period canvas ridge tent with a rolled door and guy lines.","description":"Ridge tent 4.6 m wide, 4.6 m long and 2.3 m to the ridge, with a rolled-back door flap, ridge pole and four guy lines. Dimensions 6.04 x 2.35 x 5.89 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ridge-tent-70262a4e","cdnUrl":"https://cdn.3dassets.dev/assets/8712/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ridge-tent-70262a4e","thumbnailUrl":"https://cdn.3dassets.dev/assets/8712/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8712/v1/poster.webp","blurhash":"UBBph6M{00%MIURkt7t700t7~pM|?bxtRjM|","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":21740,"triangles":388,"vertices":1164,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-3.0220000743865967,0.0001427231895791553,-2.9183134772130193],"max":[3.0220000743865967,2.3494575370059945,2.9677941538640202]},"sizeMeters":[6.044,2.349,5.886],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:11.303Z","updatedAt":"2026-09-06T14:03:12.073Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8712/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RidgeTentTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8712/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8712/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8712/v1/model.glb\" alt=\"Ridge Tent (Trench Line 1917)\" 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/8712/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/8712/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8713","slug":"trench-line-1917-bell-tent-a23543a0","title":"Bell Tent (Trench Line 1917)","summary":"Conical bell tent on a centre pole with sixteen guy lines.","description":"Bell tent 6.9 m across and 4.2 m to the finial: a conical canvas tent on a centre pole with a laced door and sixteen pegged guy lines. Dimensions 7.94 x 4.35 x 7.98 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-bell-tent-a23543a0","cdnUrl":"https://cdn.3dassets.dev/assets/8713/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-bell-tent-a23543a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/8713/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8713/v1/poster.webp","blurhash":"UDA^H|xt00M{4.WB%Mof00Rj~pt7~pt6D*WB","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":66900,"triangles":1328,"vertices":3984,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-3.970057070024261,0.00015255578448222784,-3.9667820930480957],"max":[3.970057070024261,4.3486068337749035,4.011314868927002]},"sizeMeters":[7.94,4.348,7.978],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.573Z","updatedAt":"2026-09-06T14:03:14.184Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8713/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BellTentTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8713/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8713/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8713/v1/model.glb\" alt=\"Bell Tent (Trench Line 1917)\" 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/8713/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/8713/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8715","slug":"trench-line-1917-staff-car-19340dfb","title":"Staff Car (Trench Line 1917)","summary":"Original period open staff car with a folded hood.","description":"Original period staff car 4.2 m long on four spoked wheels: a boxed body with a scuttle, windscreen, bonnet, radiator, two lamps and a folded rear hood. Generic markings only. Dimensions 2.46 x 1.85 x 4.04 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-staff-car-19340dfb","cdnUrl":"https://cdn.3dassets.dev/assets/8715/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-staff-car-19340dfb","thumbnailUrl":"https://cdn.3dassets.dev/assets/8715/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8715/v1/poster.webp","blurhash":"U4ATWM%M00Ne_3M{9G%L00IU?t%100%L~WD*","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":83336,"triangles":1640,"vertices":4920,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.2279940387984165,-0.00006336570568254984,-1.7999999523162842],"max":[1.2279940387984165,1.8525995459615423,2.240000009536743]},"sizeMeters":[2.456,1.853,4.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.390Z","updatedAt":"2026-09-06T14:03:14.218Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8715/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StaffCarTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8715/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8715/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8715/v1/model.glb\" alt=\"Staff Car (Trench Line 1917)\" 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/8715/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/8715/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8716","slug":"trench-line-1917-motorcycle-cc6dc0ad","title":"Motorcycle (Trench Line 1917)","summary":"Original period despatch motorcycle with a sprung saddle.","description":"Original period motorcycle 1.8 m long on two spoked wheels: a tubular frame, tank, sprung saddle, handlebars, lamp and exhaust. Generic markings only. Dimensions 0.88 x 1.05 x 1.98 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-motorcycle-cc6dc0ad","cdnUrl":"https://cdn.3dassets.dev/assets/8716/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-motorcycle-cc6dc0ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/8716/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8716/v1/poster.webp","blurhash":"U59%VE-p019t%LIoIC%200Rj~U%24:%1?ZNH","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":60684,"triangles":1208,"vertices":3624,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5599525835531386,0.00005505967828522973,-0.9908000230789185],"max":[0.3239525821226271,1.0507829028242868,0.9908000230789185]},"sizeMeters":[0.884,1.051,1.982],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.528Z","updatedAt":"2026-09-06T14:03:14.266Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8716/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MotorcycleTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8716/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8716/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8716/v1/model.glb\" alt=\"Motorcycle (Trench Line 1917)\" 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/8716/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/8716/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8714","slug":"trench-line-1917-field-gun-a956f9f5","title":"Field Gun (Trench Line 1917)","summary":"Original period towed field gun on a split-trail carriage.","description":"Original period field gun 4.0 m long on two spoked wheels: a shielded carriage carrying a 2.6 m barrel with a recoil sleeve, split trails and spades, and a traverse handwheel. Generic markings only. Dimensions 2.92 x 1.58 x 5.38 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-field-gun-a956f9f5","cdnUrl":"https://cdn.3dassets.dev/assets/8714/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-field-gun-a956f9f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/8714/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8714/v1/poster.webp","blurhash":"U56*H$NH01%2xtbFRkRl00xZ~VIo9anmxuxr","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":47752,"triangles":928,"vertices":2784,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.4619562797975754,0.00003268855093274681,-2.5899999141693115],"max":[1.4619562797975754,1.5803778639905002,2.789682388305664]},"sizeMeters":[2.924,1.58,5.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.410Z","updatedAt":"2026-09-06T14:03:14.201Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8714/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FieldGunTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8714/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8714/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8714/v1/model.glb\" alt=\"Field Gun (Trench Line 1917)\" 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/8714/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/8714/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8717","slug":"trench-line-1917-limber-44a6a8d7","title":"Limber (Trench Line 1917)","summary":"Two-wheeled ammunition limber with a banded chest and shafts.","description":"Limber 3.6 m long on two spoked wheels: a banded timber ammunition chest on an axle, with a pole and two draught shafts. Dimensions 2.64 x 2.24 x 3.37 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-limber-44a6a8d7","cdnUrl":"https://cdn.3dassets.dev/assets/8717/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-limber-44a6a8d7","thumbnailUrl":"https://cdn.3dassets.dev/assets/8717/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8717/v1/poster.webp","blurhash":"U69%bT9a01%2-oIVD*%L00-o~VR*4:?F?bD*","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":44320,"triangles":872,"vertices":2616,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.3200331219774208,-0.000052542926867404915,-0.618009123226421],"max":[1.3200331219774208,2.2376622723792776,2.75]},"sizeMeters":[2.64,2.238,3.368],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.548Z","updatedAt":"2026-09-06T14:03:14.439Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8717/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LimberTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8717/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8717/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8717/v1/model.glb\" alt=\"Limber (Trench Line 1917)\" 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/8717/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/8717/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8718","slug":"trench-line-1917-ration-cart-be373c18","title":"Ration Cart (Trench Line 1917)","summary":"Two-wheeled ration cart loaded with boxes.","description":"Ration cart 3.6 m long on two spoked wheels: a planked body with side and end boards carrying six ration boxes, with a pole and swingletree. Dimensions 2.45 x 1.38 x 4.05 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Period palette of wet mud, chalk, duckboard timber, sandbags and khaki, no textures. Original design with generic markings only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-ration-cart-be373c18","cdnUrl":"https://cdn.3dassets.dev/assets/8718/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-ration-cart-be373c18","thumbnailUrl":"https://cdn.3dassets.dev/assets/8718/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8718/v1/poster.webp","blurhash":"U99QQ.9a01-o~VE1D*-o01s.?Gt701-p?aIp","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"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":41232,"triangles":792,"vertices":2376,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2240104229190394,-0.00004334835241881496,-1.0499999523162842],"max":[1.2240104229190394,1.3767444249098726,3]},"sizeMeters":[2.448,1.377,4.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.615Z","updatedAt":"2026-09-06T14:03:14.477Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8718/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RationCartTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8718/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8718/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8718/v1/model.glb\" alt=\"Ration Cart (Trench Line 1917)\" 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/8718/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/8718/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8719","slug":"trench-line-1917-front-line-sector-8e5e88ec-starter-scene","title":"Front Line Sector (Trench Line 1917)","summary":"Composed example for Trench Line 1917.","description":"Front-line sector demonstration: four fire bays stepped by traverses with a fire step, duckboards and sandbag parapet, a communication trench running back to an officer dugout entrance and aid post, ladders and a ramp exit, and a wire belt across cratered ground in front. Static layout of pack instances; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-front-line-sector-8e5e88ec-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/8719/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-front-line-sector-8e5e88ec-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/8719/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8719/v1/poster.webp","blurhash":"U584b+?b00t3xuM|M{xt009F~pkEE1%L-:IV","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"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":747808,"triangles":18470,"vertices":37487,"meshes":82,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-12.700000047683716,-2.1,-18.33000011444092],"max":[15.562549352645874,4.215499401092529,20.174999952316284]},"sizeMeters":[28.263,6.315,38.505],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.991Z","updatedAt":"2026-09-06T14:03:14.611Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8719/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FrontLineSectorTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8719/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8719/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8719/v1/model.glb\" alt=\"Front Line Sector (Trench Line 1917)\" 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/8719/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/8719/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"8720","slug":"trench-line-1917-rear-area-fbcc0fc0","title":"Rear Area (Trench Line 1917)","summary":"Composed example for Trench Line 1917.","description":"Rear area demonstration: a supply dump and raised water tank beside a light rail spur with a loaded trolley, a field gun and limber parked by a ration cart and water cart, bell and ridge tents, horse lines, and a staff car and motorcycle on the track. Static layout; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/trench-line-1917-rear-area-fbcc0fc0","cdnUrl":"https://cdn.3dassets.dev/assets/8720/v1/model.glb","downloadUrl":"https://3dassets.dev/download/trench-line-1917-rear-area-fbcc0fc0","thumbnailUrl":"https://cdn.3dassets.dev/assets/8720/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/8720/v1/poster.webp","blurhash":"U59G]h%M009HRnt7R*Ri00IU~W.6${NFxaxw","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"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":717832,"triangles":17288,"vertices":36230,"meshes":87,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-19.74058543581763,-0.00006336570568254984,-7.915852054261778],"max":[16.691093911961858,4.3486068337749035,16.88441720549608]},"sizeMeters":[36.432,4.349,24.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:03:13.979Z","updatedAt":"2026-09-06T14:03:14.737Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/8720/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RearAreaTrenchLine1917(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/8720/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/8720/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/8720/v1/model.glb\" alt=\"Rear Area (Trench Line 1917)\" 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/8720/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/8720/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}