{"data":{"id":62,"slug":"bunker-shelter-construction","title":"Underground Survivor Hideout","summary":"Underground Survivor Hideout: 76 distinct designs plus explicitly tracked variants and two composed scenes.","description":"Original CC0 survival construction assets in the weathered-survival-v1 family. Itemised scope, states and honest static limitations in blueprint.json.","url":"https://3dassets.dev/packs/bunker-shelter-construction","coverUrl":"https://cdn.3dassets.dev/assets/10056/v1/poster.webp","assetCount":78,"aiGenerated":true,"aiGeneratedAssetCount":78,"aiModels":["GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":4358604,"totalTriangles":96508,"starterScene":{"id":"10056","slug":"bunker-shelter-construction-assembled-su-7995392c-starter-scene","title":"Assembled Survivor Site (Underground Survivor Hideout)","summary":"Composed example for Underground Survivor Hideout.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-assembled-su-7995392c-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-assembled-su-7995392c-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10056/v1/poster.webp","blurhash":"U5FY#{8{00SiD+00%0x[00t6RP%1~V~qIpt7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":266716,"triangles":11828,"vertices":10905,"meshes":18,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-2.1899960401435323,-0.000003814813684499541,-2.1674367570424495],"max":[2.000042765651394,2.869988707182918,2.9999572820323217]},"sizeMeters":[4.19,2.87,5.167],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:10.223Z","updatedAt":"2026-09-06T14:33:10.466Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10056/v1/model.glb\" alt=\"Assembled Survivor Site (Underground Survivor Hideout)\" 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/10056/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/10056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"9829","slug":"bunker-shelter-construction-shelter-door-wall-36dad4b4","title":"Shelter Door Wall (Underground Survivor Hideout)","summary":"Shelter Door Wall: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening door; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-door-wall-36dad4b4","cdnUrl":"https://cdn.3dassets.dev/assets/9829/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-door-wall-36dad4b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/9829/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9829/v1/poster.webp","blurhash":"U8Gbu2?b00of~p_3D*0100WBobRjt7%MWD9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":262164,"triangles":5424,"vertices":16272,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.18999604014353214],"max":[1.000042765651394,2.4000000953674316,0.19799808063670102]},"sizeMeters":[2,2.4,0.388],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:18.396Z","updatedAt":"2026-09-06T14:32:19.257Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9829/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterDoorWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9829/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9829/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9829/v1/model.glb\" alt=\"Shelter Door Wall (Underground Survivor Hideout)\" 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/9829/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/9829/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9827","slug":"bunker-shelter-construction-shelter-wide-access-2bb77a9e","title":"Shelter Wide Access (Underground Survivor Hideout)","summary":"Shelter Wide Access: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening wide-door; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-wide-access-2bb77a9e","cdnUrl":"https://cdn.3dassets.dev/assets/9827/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-wide-access-2bb77a9e","thumbnailUrl":"https://cdn.3dassets.dev/assets/9827/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9827/v1/poster.webp","blurhash":"UCFYx;%M00xt~p?a9G9F4oj[M{M{V[%2xtD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":174048,"triangles":3588,"vertices":10764,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.18999604014353214],"max":[1.000042765651394,2.4000000953674316,0.19799808063670102]},"sizeMeters":[2,2.4,0.388],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:18.489Z","updatedAt":"2026-09-06T14:32:19.214Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9827/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterWideAccessUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9827/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9827/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9827/v1/model.glb\" alt=\"Shelter Wide Access (Underground Survivor Hideout)\" 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/9827/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/9827/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9825","slug":"bunker-shelter-construction-shelter-vent-wall-7d395bee","title":"Shelter Vent Wall (Underground Survivor Hideout)","summary":"Shelter Vent Wall: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening vent; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-vent-wall-7d395bee","cdnUrl":"https://cdn.3dassets.dev/assets/9825/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-vent-wall-7d395bee","thumbnailUrl":"https://cdn.3dassets.dev/assets/9825/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9825/v1/poster.webp","blurhash":"U7F~dNxu00IA.7?bIU0100kC~pja%g-;M{4o","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":333032,"triangles":6900,"vertices":20700,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.19302625954878772],"max":[1.000042765651394,2.4000000953674316,0.24702624977362597]},"sizeMeters":[2,2.4,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:18.309Z","updatedAt":"2026-09-06T14:32:19.170Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9825/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterVentWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9825/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9825/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9825/v1/model.glb\" alt=\"Shelter Vent Wall (Underground Survivor Hideout)\" 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/9825/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/9825/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9826","slug":"bunker-shelter-construction-shelter-cable-wall-6e7fa02a","title":"Shelter Cable Wall (Underground Survivor Hideout)","summary":"Shelter Cable Wall: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening slot; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-cable-wall-6e7fa02a","cdnUrl":"https://cdn.3dassets.dev/assets/9826/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-cable-wall-6e7fa02a","thumbnailUrl":"https://cdn.3dassets.dev/assets/9826/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9826/v1/poster.webp","blurhash":"U7F~dNxv00D%.7?bIU0000kC~pja%g-;M{4o","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":364140,"triangles":7548,"vertices":22644,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.19302625954878772],"max":[1.000042765651394,2.4000000953674316,0.24702624977362597]},"sizeMeters":[2,2.4,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:18.473Z","updatedAt":"2026-09-06T14:32:19.176Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9826/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterCableWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9826/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9826/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9826/v1/model.glb\" alt=\"Shelter Cable Wall (Underground Survivor Hideout)\" 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/9826/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/9826/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9840","slug":"bunker-shelter-construction-shelter-serving-wall-a8ff83bd","title":"Shelter Serving Wall (Underground Survivor Hideout)","summary":"Shelter Serving Wall: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening counter; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-serving-wall-a8ff83bd","cdnUrl":"https://cdn.3dassets.dev/assets/9840/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-serving-wall-a8ff83bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/9840/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9840/v1/poster.webp","blurhash":"U4Fr-Ix]00D%?u_3IU0000tQ~pRj~q_39F00","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":259896,"triangles":5376,"vertices":16128,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.19302625954878772],"max":[1.000042765651394,2.4000000953674316,0.24702624977362597]},"sizeMeters":[2,2.4,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:21.977Z","updatedAt":"2026-09-06T14:32:23.040Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9840/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterServingWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9840/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9840/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9840/v1/model.glb\" alt=\"Shelter Serving Wall (Underground Survivor Hideout)\" 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/9840/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/9840/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9837","slug":"bunker-shelter-construction-shelter-storage-wall-251ba6f4","title":"Shelter Storage Wall (Underground Survivor Hideout)","summary":"Shelter Storage Wall: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening shelf; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-storage-wall-251ba6f4","cdnUrl":"https://cdn.3dassets.dev/assets/9837/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-storage-wall-251ba6f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/9837/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9837/v1/poster.webp","blurhash":"U3EME?Ro00%L_M~qD%00K6%g004n~q~q9F00","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":227184,"triangles":4548,"vertices":13644,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.19302625954878772],"max":[1.000042765651394,2.4000000953674316,0.24702624977362597]},"sizeMeters":[2,2.4,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:21.210Z","updatedAt":"2026-09-06T14:32:21.990Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9837/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterStorageWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9837/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9837/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9837/v1/model.glb\" alt=\"Shelter Storage Wall (Underground Survivor Hideout)\" 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/9837/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/9837/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9839","slug":"bunker-shelter-construction-shelter-emergency-crawl-15df5ae3","title":"Shelter Emergency Crawl (Underground Survivor Hideout)","summary":"Shelter Emergency Crawl: 2 × 2.4 × 0.3 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening crawl; pattern masonry; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-emergency-crawl-15df5ae3","cdnUrl":"https://cdn.3dassets.dev/assets/9839/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-emergency-crawl-15df5ae3","thumbnailUrl":"https://cdn.3dassets.dev/assets/9839/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9839/v1/poster.webp","blurhash":"U8H2Zd?b00IU~p_3D*0100Rj?aayWB%MxuD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":293880,"triangles":6084,"vertices":18252,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.18999604014353214],"max":[1.000042765651394,2.4000000953674316,0.19799808063670102]},"sizeMeters":[2,2.4,0.388],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:21.714Z","updatedAt":"2026-09-06T14:32:21.996Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9839/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterEmergencyCrawlUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9839/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9839/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9839/v1/model.glb\" alt=\"Shelter Emergency Crawl (Underground Survivor Hideout)\" 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/9839/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/9839/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9841","slug":"bunker-shelter-construction-shelter-floor-slab-2a86b296","title":"Shelter Floor Slab (Underground Survivor Hideout)","summary":"Shelter Floor Slab: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck stone; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-floor-slab-2a86b296","cdnUrl":"https://cdn.3dassets.dev/assets/9841/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-floor-slab-2a86b296","thumbnailUrl":"https://cdn.3dassets.dev/assets/9841/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9841/v1/poster.webp","blurhash":"U7EV$s?b00Rj_3WXIVof00D*~qWB00t3x@Rj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17712,"triangles":348,"vertices":1044,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:21.022Z","updatedAt":"2026-09-06T14:32:22.036Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9841/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterFloorSlabUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9841/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9841/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9841/v1/model.glb\" alt=\"Shelter Floor Slab (Underground Survivor Hideout)\" 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/9841/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/9841/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9850","slug":"bunker-shelter-construction-shelter-drain-floor-8e6e73ba","title":"Shelter Drain Floor (Underground Survivor Hideout)","summary":"Shelter Drain Floor: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck drain; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-drain-floor-8e6e73ba","cdnUrl":"https://cdn.3dassets.dev/assets/9850/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-drain-floor-8e6e73ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/9850/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9850/v1/poster.webp","blurhash":"U6D]o1?b00j;?bayRjt700D*~qM|00ofWCM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23708,"triangles":444,"vertices":1332,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.31000770529587207,1]},"sizeMeters":[2,0.31,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:24.489Z","updatedAt":"2026-09-06T14:32:25.189Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9850/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterDrainFloorUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9850/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9850/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9850/v1/model.glb\" alt=\"Shelter Drain Floor (Underground Survivor Hideout)\" 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/9850/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/9850/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9849","slug":"bunker-shelter-construction-shelter-grated-floor-02c013f3","title":"Shelter Grated Floor (Underground Survivor Hideout)","summary":"Shelter Grated Floor: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck grate; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-grated-floor-02c013f3","cdnUrl":"https://cdn.3dassets.dev/assets/9849/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-grated-floor-02c013f3","thumbnailUrl":"https://cdn.3dassets.dev/assets/9849/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9849/v1/poster.webp","blurhash":"U29tS{_N009EyFofngnm00D$?wohMHa$NcR#","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21836,"triangles":420,"vertices":1260,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00005660945089218383,-1],"max":[1,0.2499383576772533,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:24.349Z","updatedAt":"2026-09-06T14:32:25.126Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9849/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterGratedFloorUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9849/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9849/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9849/v1/model.glb\" alt=\"Shelter Grated Floor (Underground Survivor Hideout)\" 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/9849/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/9849/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9851","slug":"bunker-shelter-construction-shelter-service-floor-906820f3","title":"Shelter Service Floor (Underground Survivor Hideout)","summary":"Shelter Service Floor: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck channel; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-service-floor-906820f3","cdnUrl":"https://cdn.3dassets.dev/assets/9851/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-service-floor-906820f3","thumbnailUrl":"https://cdn.3dassets.dev/assets/9851/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9851/v1/poster.webp","blurhash":"U6E39o-=00R*_Ma#Myoc00IT_3Rj00oeozRl","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":54012,"triangles":1104,"vertices":3312,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:24.526Z","updatedAt":"2026-09-06T14:32:25.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9851/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterServiceFloorUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9851/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9851/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9851/v1/model.glb\" alt=\"Shelter Service Floor (Underground Survivor Hideout)\" 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/9851/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/9851/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9857","slug":"bunker-shelter-construction-shelter-hatch-floor-c3958da2","title":"Shelter Hatch Floor (Underground Survivor Hideout)","summary":"Shelter Hatch Floor: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck hatch; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-hatch-floor-c3958da2","cdnUrl":"https://cdn.3dassets.dev/assets/9857/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-hatch-floor-c3958da2","thumbnailUrl":"https://cdn.3dassets.dev/assets/9857/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9857/v1/poster.webp","blurhash":"U5E39o-=00og~qWBMyt700IT~qM_00xuWXIU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":95476,"triangles":1968,"vertices":5904,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:25.273Z","updatedAt":"2026-09-06T14:32:25.866Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9857/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterHatchFloorUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9857/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9857/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9857/v1/model.glb\" alt=\"Shelter Hatch Floor (Underground Survivor Hideout)\" 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/9857/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/9857/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9859","slug":"bunker-shelter-construction-shelter-stair-opening-df020768","title":"Shelter Stair Opening (Underground Survivor Hideout)","summary":"Shelter Stair Opening: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck stairwell; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-stair-opening-df020768","cdnUrl":"https://cdn.3dassets.dev/assets/9859/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-stair-opening-df020768","thumbnailUrl":"https://cdn.3dassets.dev/assets/9859/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9859/v1/poster.webp","blurhash":"U5D]k[-=00xb~pRjMyxa00IU^+IU00%MWVIU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64380,"triangles":1320,"vertices":3960,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:26.880Z","updatedAt":"2026-09-06T14:32:27.866Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9859/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterStairOpeningUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9859/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9859/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9859/v1/model.glb\" alt=\"Shelter Stair Opening (Underground Survivor Hideout)\" 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/9859/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/9859/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9863","slug":"bunker-shelter-construction-shelter-corner-floor-472276bf","title":"Shelter Corner Floor (Underground Survivor Hideout)","summary":"Shelter Corner Floor: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck l; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-corner-floor-472276bf","cdnUrl":"https://cdn.3dassets.dev/assets/9863/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-corner-floor-472276bf","thumbnailUrl":"https://cdn.3dassets.dev/assets/9863/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9863/v1/poster.webp","blurhash":"U7D]k]~q00M{?bofMyoe004n~pof01Rkx[WC","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13492,"triangles":260,"vertices":780,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:27.024Z","updatedAt":"2026-09-06T14:32:28.015Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9863/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterCornerFloorUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9863/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9863/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9863/v1/model.glb\" alt=\"Shelter Corner Floor (Underground Survivor Hideout)\" 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/9863/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/9863/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9862","slug":"bunker-shelter-construction-shelter-triangular-transit-c2129d69","title":"Shelter Triangular Transition (Underground Survivor Hideout)","summary":"Shelter Triangular Transition: 2 × 0.25 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck triangle; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-triangular-transit-c2129d69","cdnUrl":"https://cdn.3dassets.dev/assets/9862/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-triangular-transit-c2129d69","thumbnailUrl":"https://cdn.3dassets.dev/assets/9862/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9862/v1/poster.webp","blurhash":"U8D,1K~p00IU%gt7RiRj009F_3j=9FM|ozt7","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12952,"triangles":248,"vertices":744,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:27.055Z","updatedAt":"2026-09-06T14:32:28.006Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9862/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterTriangularTransitionUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9862/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9862/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9862/v1/model.glb\" alt=\"Shelter Triangular Transition (Underground Survivor Hideout)\" 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/9862/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/9862/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9866","slug":"bunker-shelter-construction-flat-ceiling-d3b50674","title":"Flat Ceiling (Underground Survivor Hideout)","summary":"Flat Ceiling: 2 × 0.6 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.6m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape flat; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-flat-ceiling-d3b50674","cdnUrl":"https://cdn.3dassets.dev/assets/9866/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-flat-ceiling-d3b50674","thumbnailUrl":"https://cdn.3dassets.dev/assets/9866/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9866/v1/poster.webp","blurhash":"U69@bUt700s:-;R%M{t700Rj~qay4nt7xbR*","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":26080,"triangles":348,"vertices":1044,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.00005035516810637103,-1],"max":[1,0.2199887071829184,1]},"sizeMeters":[2,0.22,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:28.093Z","updatedAt":"2026-09-06T14:32:28.477Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9866/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlatCeilingUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9866/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9866/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9866/v1/model.glb\" alt=\"Flat Ceiling (Underground Survivor Hideout)\" 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/9866/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/9866/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9871","slug":"bunker-shelter-construction-vault-ceiling-2d2686c4","title":"Vault Ceiling (Underground Survivor Hideout)","summary":"Vault Ceiling: 2 × 0.6 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.6m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape barrel; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-vault-ceiling-2d2686c4","cdnUrl":"https://cdn.3dassets.dev/assets/9871/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-vault-ceiling-2d2686c4","thumbnailUrl":"https://cdn.3dassets.dev/assets/9871/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9871/v1/poster.webp","blurhash":"U69%*WDi00.8.SRjR5sp00x]_NRP00s:x^kX","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":44016,"triangles":648,"vertices":1944,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0488381385803223,0.000043810849136349805,-1],"max":[1.0488381385803223,0.6757763343235107,1]},"sizeMeters":[2.098,0.676,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:29.603Z","updatedAt":"2026-09-06T14:32:30.475Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9871/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VaultCeilingUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9871/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9871/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9871/v1/model.glb\" alt=\"Vault Ceiling (Underground Survivor Hideout)\" 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/9871/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/9871/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9875","slug":"bunker-shelter-construction-ceiling-access-bay-b9e0c230","title":"Ceiling Access Bay (Underground Survivor Hideout)","summary":"Ceiling Access Bay: 2 × 0.6 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.6m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape skylight; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-ceiling-access-bay-b9e0c230","cdnUrl":"https://cdn.3dassets.dev/assets/9875/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-ceiling-access-bay-b9e0c230","thumbnailUrl":"https://cdn.3dassets.dev/assets/9875/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9875/v1/poster.webp","blurhash":"U39%@v.800R5D%NFnjxa00IU?vR*_3%2t7Na","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":42824,"triangles":696,"vertices":2088,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.000050341757061291015,-1],"max":[1,0.5999664415605054,1]},"sizeMeters":[2,0.6,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:29.850Z","updatedAt":"2026-09-06T14:32:30.640Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9875/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CeilingAccessBayUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9875/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9875/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9875/v1/model.glb\" alt=\"Ceiling Access Bay (Underground Survivor Hideout)\" 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/9875/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/9875/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9872","slug":"bunker-shelter-construction-ribbed-shelter-ceiling-98b6206f","title":"Ribbed Shelter Ceiling (Underground Survivor Hideout)","summary":"Ribbed Shelter Ceiling: 2 × 0.6 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.6m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape pergola; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-ribbed-shelter-ceiling-98b6206f","cdnUrl":"https://cdn.3dassets.dev/assets/9872/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-ribbed-shelter-ceiling-98b6206f","thumbnailUrl":"https://cdn.3dassets.dev/assets/9872/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9872/v1/poster.webp","blurhash":"U58XLS%300Na_NofMdR*00NF-;WU00R*o~og","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":74264,"triangles":1296,"vertices":3888,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.00005035516810637103,-1],"max":[1,0.20005035777580957,1]},"sizeMeters":[2,0.2,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:29.659Z","updatedAt":"2026-09-06T14:32:30.581Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9872/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RibbedShelterCeilingUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9872/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9872/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9872/v1/model.glb\" alt=\"Ribbed Shelter Ceiling (Underground Survivor Hideout)\" 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/9872/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/9872/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9878","slug":"bunker-shelter-construction-pressure-door-c599fa96","title":"Pressure Door (Underground Survivor Hideout)","summary":"Pressure Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style sealed; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-pressure-door-c599fa96","cdnUrl":"https://cdn.3dassets.dev/assets/9878/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-pressure-door-c599fa96","thumbnailUrl":"https://cdn.3dassets.dev/assets/9878/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9878/v1/poster.webp","blurhash":"U47_A*%M00D%~qjF4nX7Rjf6tRkC_3t7D%Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":61956,"triangles":1204,"vertices":3612,"meshes":4,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4866644190834081,0,-0.10946378605716808],"max":[0.4865731910574378,2.099999856948852,0.10946377860658749]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:30.273Z","updatedAt":"2026-09-06T14:32:31.143Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9878/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PressureDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9878/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9878/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9878/v1/model.glb\" alt=\"Pressure Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9878/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9878/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9883","slug":"bunker-shelter-construction-inspection-door-db0f9931","title":"Inspection Door (Underground Survivor Hideout)","summary":"Inspection Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style window; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-inspection-door-db0f9931","cdnUrl":"https://cdn.3dassets.dev/assets/9883/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-inspection-door-db0f9931","thumbnailUrl":"https://cdn.3dassets.dev/assets/9883/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9883/v1/poster.webp","blurhash":"U48qg8%#00Dh_4f88_W.MdVto}o|~qt74nM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":30704,"triangles":568,"vertices":1704,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.48666441884509554,0,-0.10946378729993958],"max":[0.4865751031112664,2.09999988079071,0.10946377984935898]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:31.977Z","updatedAt":"2026-09-06T14:32:33.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9883/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function InspectionDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9883/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9883/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9883/v1/model.glb\" alt=\"Inspection Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9883/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9883/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9888","slug":"bunker-shelter-construction-vented-utility-door-c2072789","title":"Vented Utility Door (Underground Survivor Hideout)","summary":"Vented Utility Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style vent; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-vented-utility-door-c2072789","cdnUrl":"https://cdn.3dassets.dev/assets/9888/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-vented-utility-door-c2072789","thumbnailUrl":"https://cdn.3dassets.dev/assets/9888/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9888/v1/poster.webp","blurhash":"U597w:%h00Di~qjb4nWBDiV@x]o|-;t7M{R%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":34752,"triangles":652,"vertices":1956,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.48666441884509554,0,-0.10946378729993958],"max":[0.4865751031112664,2.09999988079071,0.10946377984935898]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:32.692Z","updatedAt":"2026-09-06T14:32:33.428Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9888/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VentedUtilityDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9888/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9888/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9888/v1/model.glb\" alt=\"Vented Utility Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9888/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9888/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9887","slug":"bunker-shelter-construction-mesh-store-door-64c7fb72","title":"Mesh Store Door (Underground Survivor Hideout)","summary":"Mesh Store Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style bars; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-mesh-store-door-64c7fb72","cdnUrl":"https://cdn.3dassets.dev/assets/9887/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-mesh-store-door-64c7fb72","thumbnailUrl":"https://cdn.3dassets.dev/assets/9887/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9887/v1/poster.webp","blurhash":"U28EVj.T008wrFRQOqtQ00Vt~qo|$kt7XSR%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":19956,"triangles":344,"vertices":1032,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4866644189404629,0,-0.10946378849610716],"max":[0.4865751081987695,2.0999999037384987,0.10946378104552656]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:32.460Z","updatedAt":"2026-09-06T14:32:33.310Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9887/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MeshStoreDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9887/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9887/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9887/v1/model.glb\" alt=\"Mesh Store Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9887/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9887/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9890","slug":"bunker-shelter-construction-double-latch-door-54a758e6","title":"Double Latch Door (Underground Survivor Hideout)","summary":"Double Latch Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style armour; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-double-latch-door-54a758e6","cdnUrl":"https://cdn.3dassets.dev/assets/9890/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-double-latch-door-54a758e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/9890/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9890/v1/poster.webp","blurhash":"U48qZ[-;009F~qWV4nf5IARjtRt7_3t6DiRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":48624,"triangles":940,"vertices":2820,"meshes":4,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4866644190834081,0,-0.10946378605716808],"max":[0.48668223529684257,2.099999856948852,0.10946377860658749]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:32.822Z","updatedAt":"2026-09-06T14:32:33.728Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9890/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DoubleLatchDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9890/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9890/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9890/v1/model.glb\" alt=\"Double Latch Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9890/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9890/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9894","slug":"bunker-shelter-construction-sanitation-door-80900cf9","title":"Sanitation Door (Underground Survivor Hideout)","summary":"Sanitation Door: 0.94 × 2.1 × 0.14 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.14m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style slats; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-sanitation-door-80900cf9","cdnUrl":"https://cdn.3dassets.dev/assets/9894/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-sanitation-door-80900cf9","thumbnailUrl":"https://cdn.3dassets.dev/assets/9894/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9894/v1/poster.webp","blurhash":"U38#1w?v004TrtV[Nuoy00M{~q%2xGt6X8R*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":20916,"triangles":364,"vertices":1092,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4866644189404629,0,-0.10946378849610716],"max":[0.4865751081987695,2.0999999037384987,0.10946378104552656]},"sizeMeters":[0.973,2.1,0.219],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:34.951Z","updatedAt":"2026-09-06T14:32:35.747Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9894/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SanitationDoorUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9894/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9894/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9894/v1/model.glb\" alt=\"Sanitation Door (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9894/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9894/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9899","slug":"bunker-shelter-construction-entry-dogleg-screen-a1a60ef8","title":"Entry Dogleg Screen (Underground Survivor Hideout)","summary":"Entry Dogleg Screen: 2 × 2.4 × 0.2 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; pattern cross; mat metal. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-entry-dogleg-screen-a1a60ef8","cdnUrl":"https://cdn.3dassets.dev/assets/9899/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-entry-dogleg-screen-a1a60ef8","thumbnailUrl":"https://cdn.3dassets.dev/assets/9899/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9899/v1/poster.webp","blurhash":"U28;lW%200bw~q?bDiDinnxaE0My~W?v9Z00","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":42584,"triangles":864,"vertices":2592,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.0345511463966361,0,-0.11755477581810417],"max":[1.0345511463966361,2.4576168060302734,0.138054772659058]},"sizeMeters":[2.069,2.458,0.256],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:35.117Z","updatedAt":"2026-09-06T14:32:35.959Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9899/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntryDoglegScreenUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9899/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9899/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9899/v1/model.glb\" alt=\"Entry Dogleg Screen (Underground Survivor Hideout)\" 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/9899/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/9899/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9897","slug":"bunker-shelter-construction-entry-blast-baffle-a0f68993","title":"Entry Blast Baffle (Underground Survivor Hideout)","summary":"Entry Blast Baffle: 2 × 2.4 × 0.4 m nominal survival rail assembly.","description":"Original weathered survival rail. Nominal envelope 2m wide, 2.4m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form rail; shape solid; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-entry-blast-baffle-a0f68993","cdnUrl":"https://cdn.3dassets.dev/assets/9897/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-entry-blast-baffle-a0f68993","thumbnailUrl":"https://cdn.3dassets.dev/assets/9897/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9897/v1/poster.webp","blurhash":"U9HLbq~V009F?H^+Rj0100NG?bkCx[%fRj9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":6268,"triangles":108,"vertices":324,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1999572820323218],"max":[1.000042765651394,2.4000000953674316,0.1999572820323218]},"sizeMeters":[2,2.4,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:35.033Z","updatedAt":"2026-09-06T14:32:35.935Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9897/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntryBlastBaffleUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9897/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9897/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9897/v1/model.glb\" alt=\"Entry Blast Baffle (Underground Survivor Hideout)\" 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/9897/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/9897/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9903","slug":"bunker-shelter-construction-escape-ladder-3cd786e1","title":"Escape Ladder (Underground Survivor Hideout)","summary":"Escape Ladder: 0.6 × 3 × 0.2 m nominal survival ladder assembly.","description":"Original weathered survival ladder. Nominal envelope 0.6m wide, 3m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form ladder. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-escape-ladder-3cd786e1","cdnUrl":"https://cdn.3dassets.dev/assets/9903/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-escape-ladder-3cd786e1","thumbnailUrl":"https://cdn.3dassets.dev/assets/9903/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9903/v1/poster.webp","blurhash":"U17BG*-=0000?da$9Ej:IBj^%MW9o#a$adoH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":19436,"triangles":384,"vertices":1152,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.3349101229895932,0,-0.03497421185949278],"max":[0.3349101229895932,3,0.03497421185949278]},"sizeMeters":[0.67,3,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:35.416Z","updatedAt":"2026-09-06T14:32:36.333Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9903/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EscapeLadderUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9903/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9903/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9903/v1/model.glb\" alt=\"Escape Ladder (Underground Survivor Hideout)\" 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/9903/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/9903/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9907","slug":"bunker-shelter-construction-escape-hatch-1cbe479f","title":"Escape Hatch (Underground Survivor Hideout)","summary":"Escape Hatch: 0.9 × 0.16 × 0.9 m nominal survival hatch assembly.","description":"Original weathered survival hatch. Nominal envelope 0.9m wide, 0.16m high, 0.9m deep; applied framing, handles or rails can extend beyond this. Construction: form hatch; style sealed. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-escape-hatch-1cbe479f","cdnUrl":"https://cdn.3dassets.dev/assets/9907/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-escape-hatch-1cbe479f","thumbnailUrl":"https://cdn.3dassets.dev/assets/9907/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9907/v1/poster.webp","blurhash":"U59tW7M{00xu00Rjs:%M00t7kCRj~qM{.8%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":7748,"triangles":96,"vertices":288,"meshes":3,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.44999998807907104,0.00001709069599073465,-0.44999998807907104],"max":[0.44999998807907104,0.17100174994204312,0.44999998807907104]},"sizeMeters":[0.9,0.171,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:37.489Z","updatedAt":"2026-09-06T14:32:38.420Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9907/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function EscapeHatchUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9907/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9907/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9907/v1/model.glb\" alt=\"Escape Hatch (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9907/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9907/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9912","slug":"bunker-shelter-construction-shelter-stair-landing-5973f1d0","title":"Shelter Stair Landing (Underground Survivor Hideout)","summary":"Shelter Stair Landing: 2 × 0.3 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.3m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck grate; rail corner. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-stair-landing-5973f1d0","cdnUrl":"https://cdn.3dassets.dev/assets/9912/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-stair-landing-5973f1d0","thumbnailUrl":"https://cdn.3dassets.dev/assets/9912/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9912/v1/poster.webp","blurhash":"U78;3}xa4mnjiHV[tSt600WCyER*.TozIUWB","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70312,"triangles":1092,"vertices":3276,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.059999942779541,0.0000064030999531450306,-1.009978451767239],"max":[1,1.299993549216331,1]},"sizeMeters":[2.06,1.3,2.01],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:37.753Z","updatedAt":"2026-09-06T14:32:38.601Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9912/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterStairLandingUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9912/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9912/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9912/v1/model.glb\" alt=\"Shelter Stair Landing (Underground Survivor Hideout)\" 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/9912/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/9912/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9909","slug":"bunker-shelter-construction-air-intake-stack-ce434906","title":"Air Intake Stack (Underground Survivor Hideout)","summary":"Air Intake Stack: 0.5 × 2 × 0.5 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.5m wide, 2m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape chimney. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-air-intake-stack-ce434906","cdnUrl":"https://cdn.3dassets.dev/assets/9909/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-air-intake-stack-ce434906","thumbnailUrl":"https://cdn.3dassets.dev/assets/9909/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9909/v1/poster.webp","blurhash":"U5D0Jr_20000Iuaf${tP00Rj~pxu%MfPIUbH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":5016,"triangles":96,"vertices":288,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.375,0,-0.375],"max":[0.375,2.310014925459414,0.375]},"sizeMeters":[0.75,2.31,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:37.641Z","updatedAt":"2026-09-06T14:32:38.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9909/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AirIntakeStackUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9909/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9909/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9909/v1/model.glb\" alt=\"Air Intake Stack (Underground Survivor Hideout)\" 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/9909/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/9909/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9915","slug":"bunker-shelter-construction-exhaust-cowl-7f7b30bc","title":"Exhaust Cowl (Underground Survivor Hideout)","summary":"Exhaust Cowl: 0.5 × 0.7 × 0.5 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.5m wide, 0.7m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape cowl. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-exhaust-cowl-7f7b30bc","cdnUrl":"https://cdn.3dassets.dev/assets/9915/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-exhaust-cowl-7f7b30bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/9915/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9915/v1/poster.webp","blurhash":"UDB|Z_%M00RP~qozITfkV@RjRjt8ogjaRjV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":5676,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2499892501066765,0,-0.2499892501066765],"max":[0.2499892501066765,0.6050000190734863,0.2499892501066765]},"sizeMeters":[0.5,0.605,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:37.857Z","updatedAt":"2026-09-06T14:32:38.849Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9915/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExhaustCowlUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9915/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9915/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9915/v1/model.glb\" alt=\"Exhaust Cowl (Underground Survivor Hideout)\" 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/9915/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/9915/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9919","slug":"bunker-shelter-construction-air-duct-elbow-e9eb0887","title":"Air Duct Elbow (Underground Survivor Hideout)","summary":"Air Duct Elbow: 0.7 × 0.35 × 0.7 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.7m wide, 0.35m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape elbow. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-air-duct-elbow-e9eb0887","cdnUrl":"https://cdn.3dassets.dev/assets/9919/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-air-duct-elbow-e9eb0887","thumbnailUrl":"https://cdn.3dassets.dev/assets/9919/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9919/v1/poster.webp","blurhash":"U9BN7w-;4noL_NofRjof00IU-;of00RjxuRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":74804,"triangles":1536,"vertices":4608,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2224559634923935,-0.0000032611960046613486,-0.2224559634923935],"max":[0.2224559634923935,0.2800032623880976,0.2224559634923935]},"sizeMeters":[0.445,0.28,0.445],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:40.184Z","updatedAt":"2026-09-06T14:32:40.977Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9919/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AirDuctElbowUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9919/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9919/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9919/v1/model.glb\" alt=\"Air Duct Elbow (Underground Survivor Hideout)\" 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/9919/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/9919/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9924","slug":"bunker-shelter-construction-air-duct-tee-f1790ee8","title":"Air Duct Tee (Underground Survivor Hideout)","summary":"Air Duct Tee: 1 × 0.35 × 0.7 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 1m wide, 0.35m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape tee. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-air-duct-tee-f1790ee8","cdnUrl":"https://cdn.3dassets.dev/assets/9924/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-air-duct-tee-f1790ee8","thumbnailUrl":"https://cdn.3dassets.dev/assets/9924/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9924/v1/poster.webp","blurhash":"U59@bV%2009F_3?bIUM{00%g_Nay4m8_.8ba","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":10232,"triangles":192,"vertices":576,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.000026856884385334512,-0.24501785332804346],"max":[0.5,0.2799731443077076,0.24501785332804346]},"sizeMeters":[1,0.28,0.49],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:40.226Z","updatedAt":"2026-09-06T14:32:41.206Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9924/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AirDuctTeeUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9924/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9924/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9924/v1/model.glb\" alt=\"Air Duct Tee (Underground Survivor Hideout)\" 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/9924/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/9924/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9921","slug":"bunker-shelter-construction-air-duct-straight-f60723fe","title":"Air Duct Straight (Underground Survivor Hideout)","summary":"Air Duct Straight: 2 × 0.35 × 0.35 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 2m wide, 0.35m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape straight. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-air-duct-straight-f60723fe","cdnUrl":"https://cdn.3dassets.dev/assets/9921/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-air-duct-straight-f60723fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/9921/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9921/v1/poster.webp","blurhash":"U58z_hxcDjxu-=_NfANG00xu_4M{9F00xu-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":5620,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.00001892117785187719,-0.1400189214758751],"max":[1,0.2800189217738983,0.1400189214758751]},"sizeMeters":[2,0.28,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:40.329Z","updatedAt":"2026-09-06T14:32:41.133Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9921/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AirDuctStraightUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9921/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9921/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9921/v1/model.glb\" alt=\"Air Duct Straight (Underground Survivor Hideout)\" 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/9921/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/9921/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9926","slug":"bunker-shelter-construction-air-filter-cabinet-40493cb2","title":"Air Filter Cabinet (Underground Survivor Hideout)","summary":"Air Filter Cabinet: 0.8 × 1.3 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.8m wide, 1.3m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape filter. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-air-filter-cabinet-40493cb2","cdnUrl":"https://cdn.3dassets.dev/assets/9926/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-air-filter-cabinet-40493cb2","thumbnailUrl":"https://cdn.3dassets.dev/assets/9926/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9926/v1/poster.webp","blurhash":"U89@hk%M00NG_NofDifj%3bHIARjx]ofRPV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":228,"vertices":684,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000335556872797,0,-0.32122103378181693],"max":[0.4000335556872797,1.2999999523162842,0.32126029334555584]},"sizeMeters":[0.8,1.3,0.642],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:40.450Z","updatedAt":"2026-09-06T14:32:41.450Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9926/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AirFilterCabinetUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9926/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9926/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9926/v1/model.glb\" alt=\"Air Filter Cabinet (Underground Survivor Hideout)\" 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/9926/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/9926/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9930","slug":"bunker-shelter-construction-hand-crank-blower-a10c55f9","title":"Hand Crank Blower (Underground Survivor Hideout)","summary":"Hand Crank Blower: 0.7 × 1 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.7m wide, 1m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape fan. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-hand-crank-blower-a10c55f9","cdnUrl":"https://cdn.3dassets.dev/assets/9930/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-hand-crank-blower-a10c55f9","thumbnailUrl":"https://cdn.3dassets.dev/assets/9930/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9930/v1/poster.webp","blurhash":"UAATvI-;00IU~qt7DiWBjGaeM_WB%MozM{Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":33432,"triangles":644,"vertices":1932,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.43749809259315775,0,-0.36002685628833886],"max":[0.43749809259315775,1,0.36002685628833886]},"sizeMeters":[0.875,1,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:42.610Z","updatedAt":"2026-09-06T14:32:43.522Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9930/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HandCrankBlowerUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9930/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9930/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9930/v1/model.glb\" alt=\"Hand Crank Blower (Underground Survivor Hideout)\" 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/9930/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/9930/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9933","slug":"bunker-shelter-construction-intake-grille-194cf53f","title":"Intake Grille (Underground Survivor Hideout)","summary":"Intake Grille: 0.6 × 0.6 × 0.15 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 0.6m wide, 0.6m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape louvre. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-intake-grille-194cf53f","cdnUrl":"https://cdn.3dassets.dev/assets/9933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-intake-grille-194cf53f","thumbnailUrl":"https://cdn.3dassets.dev/assets/9933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9933/v1/poster.webp","blurhash":"U2Bg9i~p0000~p~m8y4:00H@_K.R_K-oW94p","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":18340,"triangles":216,"vertices":648,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0,-0.09151144546968838],"max":[0.30000001192092896,0.6000000300258397,0.09150060065627047]},"sizeMeters":[0.6,0.6,0.183],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:42.886Z","updatedAt":"2026-09-06T14:32:43.667Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9933/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IntakeGrilleUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9933/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9933/v1/model.glb\" alt=\"Intake Grille (Underground Survivor Hideout)\" 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/9933/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/9933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9934","slug":"bunker-shelter-construction-cable-tray-cc3a0159","title":"Cable Tray (Underground Survivor Hideout)","summary":"Cable Tray: 2 × 0.12 × 0.3 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 2m wide, 0.12m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape trough. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-cable-tray-cc3a0159","cdnUrl":"https://cdn.3dassets.dev/assets/9934/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-cable-tray-cc3a0159","thumbnailUrl":"https://cdn.3dassets.dev/assets/9934/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9934/v1/poster.webp","blurhash":"U48z}nxu4nt7-;~qfiIT00tQ_3M{8_00t7?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":2712,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00006164601078410131,-0.1500289925840022],"max":[1,0.11993835123250107,0.1500289925840022]},"sizeMeters":[2,0.12,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:42.724Z","updatedAt":"2026-09-06T14:32:43.697Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9934/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CableTrayUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9934/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9934/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9934/v1/model.glb\" alt=\"Cable Tray (Underground Survivor Hideout)\" 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/9934/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/9934/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9938","slug":"bunker-shelter-construction-pipe-service-rack-4d24e424","title":"Pipe Service Rack (Underground Survivor Hideout)","summary":"Pipe Service Rack: 1 × 1.5 × 0.4 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 1m wide, 1.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape pipes. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-pipe-service-rack-4d24e424","cdnUrl":"https://cdn.3dassets.dev/assets/9938/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-pipe-service-rack-4d24e424","thumbnailUrl":"https://cdn.3dassets.dev/assets/9938/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9938/v1/poster.webp","blurhash":"U47^Md}@000e-CxGR%R%9EI:t-xvoeWVNbbH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":17276,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.500030518509476,0,-0.20803704947050386],"max":[0.500030518509476,1.5,0.20803704947050386]},"sizeMeters":[1,1.5,0.416],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:43.175Z","updatedAt":"2026-09-06T14:32:44.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9938/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PipeServiceRackUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9938/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9938/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9938/v1/model.glb\" alt=\"Pipe Service Rack (Underground Survivor Hideout)\" 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/9938/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/9938/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9943","slug":"bunker-shelter-construction-bunk-single-frame-b1d7512b","title":"Bunk Single Frame (Underground Survivor Hideout)","summary":"Bunk Single Frame: 0.8 × 0.5 × 2 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 0.8m wide, 0.5m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape cot. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-bunk-single-frame-b1d7512b","cdnUrl":"https://cdn.3dassets.dev/assets/9943/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-bunk-single-frame-b1d7512b","thumbnailUrl":"https://cdn.3dassets.dev/assets/9943/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9943/v1/poster.webp","blurhash":"U58z*@%z02Rk_09uD*-n008|?t%K02?a_LMf","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":13748,"triangles":108,"vertices":324,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.39999681340839355,0.000039489760689737086,-1.027500033378601],"max":[0.39999681340839355,0.7799604816290808,1.027500033378601]},"sizeMeters":[0.8,0.78,2.055],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:45.797Z","updatedAt":"2026-09-06T14:32:46.695Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9943/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BunkSingleFrameUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9943/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9943/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9943/v1/model.glb\" alt=\"Bunk Single Frame (Underground Survivor Hideout)\" 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/9943/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/9943/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9948","slug":"bunker-shelter-construction-bunk-double-tier-c52b210d","title":"Bunk Double Tier (Underground Survivor Hideout)","summary":"Bunk Double Tier: 0.8 × 1.8 × 2 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 0.8m wide, 1.8m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape bunk. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-bunk-double-tier-c52b210d","cdnUrl":"https://cdn.3dassets.dev/assets/9948/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-bunk-double-tier-c52b210d","thumbnailUrl":"https://cdn.3dassets.dev/assets/9948/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9948/v1/poster.webp","blurhash":"U59tMs_N009E_MIU8{%29IRj%JofayIBIU%f","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":36896,"triangles":592,"vertices":1776,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.41993039512989355,-0.00002607083187466941,-1.059999942779541],"max":[0.41993039512989355,2.0700260040746725,1.059999942779541]},"sizeMeters":[0.84,2.07,2.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:46.014Z","updatedAt":"2026-09-06T14:32:46.768Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9948/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BunkDoubleTierUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9948/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9948/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9948/v1/model.glb\" alt=\"Bunk Double Tier (Underground Survivor Hideout)\" 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/9948/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/9948/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9942","slug":"bunker-shelter-construction-bunk-folding-wall-b4f8f704","title":"Bunk Folding Wall (Underground Survivor Hideout)","summary":"Bunk Folding Wall: 0.7 × 0.6 × 1.9 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 0.7m wide, 0.6m high, 1.9m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape fold. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-bunk-folding-wall-b4f8f704","cdnUrl":"https://cdn.3dassets.dev/assets/9942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-bunk-folding-wall-b4f8f704","thumbnailUrl":"https://cdn.3dassets.dev/assets/9942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9942/v1/poster.webp","blurhash":"UA8||bxuDkod_LIWICxt02Dkoy%L02of-:j[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":12956,"triangles":96,"vertices":288,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.3500274622662626,-0.0000610338810995148,-0.9750000238418579],"max":[0.3500274622662626,0.5900453056802566,0.9750000238418579]},"sizeMeters":[0.7,0.59,1.95],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:45.549Z","updatedAt":"2026-09-06T14:32:46.332Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9942/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BunkFoldingWallUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9942/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9942/v1/model.glb\" alt=\"Bunk Folding Wall (Underground Survivor Hideout)\" 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/9942/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/9942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9947","slug":"bunker-shelter-construction-sleep-pod-privacy-frame-3837b5ae","title":"Sleep Pod Privacy Frame (Underground Survivor Hideout)","summary":"Sleep Pod Privacy Frame: 0.9 × 1.4 × 2 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 0.9m wide, 1.4m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape privacy. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-sleep-pod-privacy-frame-3837b5ae","cdnUrl":"https://cdn.3dassets.dev/assets/9947/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-sleep-pod-privacy-frame-3837b5ae","thumbnailUrl":"https://cdn.3dassets.dev/assets/9947/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9947/v1/poster.webp","blurhash":"U5BW*Z%f4VNH?@E2R*t800IBDkM{s;VtMfs:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14888,"triangles":132,"vertices":396,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.47001557844738817,-0.00003359420328163942,-1.027500033378601],"max":[0.47001557844738817,1.4000335882428179,1.027500033378601]},"sizeMeters":[0.94,1.4,2.055],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:45.899Z","updatedAt":"2026-09-06T14:32:46.746Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9947/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SleepPodPrivacyFrameUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9947/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9947/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9947/v1/model.glb\" alt=\"Sleep Pod Privacy Frame (Underground Survivor Hideout)\" 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/9947/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/9947/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9954","slug":"bunker-shelter-construction-locker-personal-b9d1eaac","title":"Locker Personal (Underground Survivor Hideout)","summary":"Locker Personal: 0.6 × 1.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 1.8m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape lockers; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-locker-personal-b9d1eaac","cdnUrl":"https://cdn.3dassets.dev/assets/9954/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-locker-personal-b9d1eaac","thumbnailUrl":"https://cdn.3dassets.dev/assets/9954/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9954/v1/poster.webp","blurhash":"U15|s5}Z030z-To2Iqj?KfOXRV#m%KkCM}ae","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":20236,"triangles":220,"vertices":660,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.29996336984231303,0,-0.2899740666519858],"max":[0.29996336984231303,1.7999999523162842,0.28997667572175223]},"sizeMeters":[0.6,1.8,0.58],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:49.163Z","updatedAt":"2026-09-06T14:32:50.005Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9954/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LockerPersonalUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9954/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9954/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9954/v1/model.glb\" alt=\"Locker Personal (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9954/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9954/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9957","slug":"bunker-shelter-construction-supply-shelving-d0b2edaf","title":"Supply Shelving (Underground Survivor Hideout)","summary":"Supply Shelving: 1.4 × 1.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.4m wide, 1.8m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-supply-shelving-d0b2edaf","cdnUrl":"https://cdn.3dassets.dev/assets/9957/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-supply-shelving-d0b2edaf","thumbnailUrl":"https://cdn.3dassets.dev/assets/9957/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9957/v1/poster.webp","blurhash":"U17JkG^i039v^it7NIRjSwShWGw1%L-URoEM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":15032,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7000427073684673,0,-0.26047405902259124],"max":[0.7000427073684673,1.7999999523162842,0.26050800343667724]},"sizeMeters":[1.4,1.8,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:49.252Z","updatedAt":"2026-09-06T14:32:50.187Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9957/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SupplyShelvingUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9957/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9957/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9957/v1/model.glb\" alt=\"Supply Shelving (Underground Survivor Hideout)\" 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/9957/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/9957/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9960","slug":"bunker-shelter-construction-under-bunk-drawer-1ab6296b","title":"Under Bunk Drawer (Underground Survivor Hideout)","summary":"Under Bunk Drawer: 0.7 × 0.25 × 0.8 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 0.25m high, 0.8m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawer. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-under-bunk-drawer-1ab6296b","cdnUrl":"https://cdn.3dassets.dev/assets/9960/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-under-bunk-drawer-1ab6296b","thumbnailUrl":"https://cdn.3dassets.dev/assets/9960/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9960/v1/poster.webp","blurhash":"U17A6y?a0$M|^hRmRnxY019aw^n%5S%0V@9]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14408,"triangles":140,"vertices":420,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499984792899099,-0.000016024080358806314,-0.42750000953674316],"max":[0.3499984792899099,0.25001602408035883,0.42751657717546343]},"sizeMeters":[0.7,0.25,0.855],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:49.373Z","updatedAt":"2026-09-06T14:32:50.393Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9960/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UnderBunkDrawerUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9960/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9960/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9960/v1/model.glb\" alt=\"Under Bunk Drawer (Underground Survivor Hideout)\" 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/9960/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/9960/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9961","slug":"bunker-shelter-construction-footlocker-open-1a296ff4","title":"Footlocker Open (Underground Survivor Hideout)","summary":"Footlocker Open: 0.9 × 0.45 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 0.45m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape chest. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-footlocker-open-1a296ff4","cdnUrl":"https://cdn.3dassets.dev/assets/9961/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-footlocker-open-1a296ff4","thumbnailUrl":"https://cdn.3dassets.dev/assets/9961/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9961/v1/poster.webp","blurhash":"U28yef=x0O=d};0~5U=w0}5lI=r?Fv=xwNxD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":15088,"triangles":120,"vertices":360,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.44999998807907104,-0.00003433332225097341,-0.28302265896823087],"max":[0.44999998807907104,0.9500289804470661,0.28299700255018095]},"sizeMeters":[0.9,0.95,0.566],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:49.459Z","updatedAt":"2026-09-06T14:32:50.430Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9961/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FootlockerOpenUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/9961/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9961/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9961/v1/model.glb\" alt=\"Footlocker Open (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/9961/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/9961/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"9967","slug":"bunker-shelter-construction-meal-preparation-counter-58f1ddb9","title":"Meal Preparation Counter (Underground Survivor Hideout)","summary":"Meal Preparation Counter: 1.6 × 0.9 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.6m wide, 0.9m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape counter. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-meal-preparation-counter-58f1ddb9","cdnUrl":"https://cdn.3dassets.dev/assets/9967/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-meal-preparation-counter-58f1ddb9","thumbnailUrl":"https://cdn.3dassets.dev/assets/9967/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9967/v1/poster.webp","blurhash":"U47,JX$$EM$6}==wNHNH1b$%w{I;Nts,wfV]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":12024,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.800000011920929,0.000035077659968851815,-0.31253395649891086],"max":[0.800000011920929,0.8999648984981732,0.31253395649891086]},"sizeMeters":[1.6,0.9,0.625],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:51.743Z","updatedAt":"2026-09-06T14:32:52.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9967/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MealPreparationCounterUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9967/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9967/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9967/v1/model.glb\" alt=\"Meal Preparation Counter (Underground Survivor Hideout)\" 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/9967/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/9967/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9970","slug":"bunker-shelter-construction-foldaway-dining-table-9cf2358e","title":"Foldaway Dining Table (Underground Survivor Hideout)","summary":"Foldaway Dining Table: 1.2 × 0.75 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 0.75m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape fold. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-foldaway-dining-table-9cf2358e","cdnUrl":"https://cdn.3dassets.dev/assets/9970/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-foldaway-dining-table-9cf2358e","thumbnailUrl":"https://cdn.3dassets.dev/assets/9970/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9970/v1/poster.webp","blurhash":"U56a6ZMxKPen}rxDOERj57%MaKS$0#kWnOo}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9452,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.00002538355031958539,-0.32001218139155724],"max":[0.6000000238418579,0.5070419072441816,0.32004577061347567]},"sizeMeters":[1.2,0.507,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:51.938Z","updatedAt":"2026-09-06T14:32:52.769Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9970/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldawayDiningTableUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9970/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9970/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9970/v1/model.glb\" alt=\"Foldaway Dining Table (Underground Survivor Hideout)\" 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/9970/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/9970/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9973","slug":"bunker-shelter-construction-ration-pass-through-7f6588a4","title":"Ration Pass Through (Underground Survivor Hideout)","summary":"Ration Pass Through: 1 × 0.9 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 0.9m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-ration-pass-through-7f6588a4","cdnUrl":"https://cdn.3dassets.dev/assets/9973/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-ration-pass-through-7f6588a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/9973/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9973/v1/poster.webp","blurhash":"U68yP4}EMz;j-A$PsAn%AWE}E%JRSfkCODJ7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14296,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,-0.000010693399245531587,-0.210472532268588],"max":[0.5,0.9000106695573876,0.2104994539691818]},"sizeMeters":[1,0.9,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:52.235Z","updatedAt":"2026-09-06T14:32:53.072Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9973/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RationPassThroughUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9973/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9973/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9973/v1/model.glb\" alt=\"Ration Pass Through (Underground Survivor Hideout)\" 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/9973/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/9973/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9974","slug":"bunker-shelter-construction-mess-bench-93383525","title":"Mess Bench (Underground Survivor Hideout)","summary":"Mess Bench: 1.5 × 0.45 × 0.4 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 1.5m wide, 0.45m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape bench. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-mess-bench-93383525","cdnUrl":"https://cdn.3dassets.dev/assets/9974/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-mess-bench-93383525","thumbnailUrl":"https://cdn.3dassets.dev/assets/9974/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9974/v1/poster.webp","blurhash":"U47AxetR9Zs:~V=|NHNH00%1%3Ip0K9t$3n~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":11564,"triangles":84,"vertices":252,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,-0.00000815833686679257,-0.22497482222968232],"max":[0.75,0.39500816906570285,0.22497482222968232]},"sizeMeters":[1.5,0.395,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:52.313Z","updatedAt":"2026-09-06T14:32:53.087Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9974/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MessBenchUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9974/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9974/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9974/v1/model.glb\" alt=\"Mess Bench (Underground Survivor Hideout)\" 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/9974/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/9974/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9979","slug":"bunker-shelter-construction-chemical-toilet-2016812d","title":"Chemical Toilet (Underground Survivor Hideout)","summary":"Chemical Toilet: 0.5 × 0.65 × 0.65 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.5m wide, 0.65m high, 0.65m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape toilet. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-chemical-toilet-2016812d","cdnUrl":"https://cdn.3dassets.dev/assets/9979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-chemical-toilet-2016812d","thumbnailUrl":"https://cdn.3dassets.dev/assets/9979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9979/v1/poster.webp","blurhash":"UCD0AQRj00f8_39GIU~p9GM{x[-:aet6IoM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":31944,"triangles":628,"vertices":1884,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.2300193036909008,0,-0.30836912998529714],"max":[0.2300193036909008,0.7475000023841858,0.30836912998529714]},"sizeMeters":[0.46,0.748,0.617],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:54.163Z","updatedAt":"2026-09-06T14:32:55.140Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9979/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChemicalToiletUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9979/v1/model.glb\" alt=\"Chemical Toilet (Underground Survivor Hideout)\" 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/9979/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/9979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9982","slug":"bunker-shelter-construction-squat-toilet-platform-2498ec20","title":"Squat Toilet Platform (Underground Survivor Hideout)","summary":"Squat Toilet Platform: 0.8 × 0.15 × 0.9 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.8m wide, 0.15m high, 0.9m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape squat. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-squat-toilet-platform-2498ec20","cdnUrl":"https://cdn.3dassets.dev/assets/9982/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-squat-toilet-platform-2498ec20","thumbnailUrl":"https://cdn.3dassets.dev/assets/9982/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9982/v1/poster.webp","blurhash":"U4E3Cv~q00WB_3IUM{-;004nE1M{9E-;D*IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":10612,"triangles":168,"vertices":504,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000106708816524,0.000016027184104178138,-0.44999998807907104],"max":[0.4000106708816524,0.1499839787763603,0.44999998807907104]},"sizeMeters":[0.8,0.15,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:54.374Z","updatedAt":"2026-09-06T14:32:55.307Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9982/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SquatToiletPlatformUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9982/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9982/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9982/v1/model.glb\" alt=\"Squat Toilet Platform (Underground Survivor Hideout)\" 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/9982/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/9982/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9985","slug":"bunker-shelter-construction-handwash-station-4a80d9f0","title":"Handwash Station (Underground Survivor Hideout)","summary":"Handwash Station: 0.7 × 1 × 0.5 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.7m wide, 1m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape sink. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-handwash-station-4a80d9f0","cdnUrl":"https://cdn.3dassets.dev/assets/9985/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-handwash-station-4a80d9f0","thumbnailUrl":"https://cdn.3dassets.dev/assets/9985/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9985/v1/poster.webp","blurhash":"UDB|Nd%M00M{~pt79GM{00Rj-:bH00Rk?aof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":22072,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0,-0.25001067722066006],"max":[0.3499999940395355,1.2070541381835938,0.25001067722066006]},"sizeMeters":[0.7,1.207,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:54.775Z","updatedAt":"2026-09-06T14:32:55.577Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9985/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HandwashStationUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9985/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9985/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9985/v1/model.glb\" alt=\"Handwash Station (Underground Survivor Hideout)\" 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/9985/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/9985/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9984","slug":"bunker-shelter-construction-utility-wash-tub-7142e338","title":"Utility Wash Tub (Underground Survivor Hideout)","summary":"Utility Wash Tub: 1 × 0.75 × 0.65 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 1m wide, 0.75m high, 0.65m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape tub. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-utility-wash-tub-7142e338","cdnUrl":"https://cdn.3dassets.dev/assets/9984/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-utility-wash-tub-7142e338","thumbnailUrl":"https://cdn.3dassets.dev/assets/9984/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9984/v1/poster.webp","blurhash":"UYFFpextD*t6~pxuM|WBD%t6fPRkD%f6RjWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9688,"triangles":152,"vertices":456,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.0000022829277462332875,-0.3249916074098941],"max":[0.5,0.7499832088593237,0.3249916074098941]},"sizeMeters":[1,0.75,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:54.796Z","updatedAt":"2026-09-06T14:32:55.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9984/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityWashTubUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9984/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9984/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9984/v1/model.glb\" alt=\"Utility Wash Tub (Underground Survivor Hideout)\" 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/9984/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/9984/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9992","slug":"bunker-shelter-construction-shower-tray-31e7ec09","title":"Shower Tray (Underground Survivor Hideout)","summary":"Shower Tray: 0.9 × 0.15 × 0.9 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.9m wide, 0.15m high, 0.9m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape shower. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shower-tray-31e7ec09","cdnUrl":"https://cdn.3dassets.dev/assets/9992/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shower-tray-31e7ec09","thumbnailUrl":"https://cdn.3dassets.dev/assets/9992/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9992/v1/poster.webp","blurhash":"U4DcXN~q00oh?bRjM{%L009F4.D%M_x]D%9G","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9952,"triangles":156,"vertices":468,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000016027184104178138,-0.44999998807907104],"max":[0.44999998807907104,0.1499839787763603,0.44999998807907104]},"sizeMeters":[0.9,0.15,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:56.873Z","updatedAt":"2026-09-06T14:32:57.710Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9992/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShowerTrayUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9992/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9992/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9992/v1/model.glb\" alt=\"Shower Tray (Underground Survivor Hideout)\" 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/9992/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/9992/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9994","slug":"bunker-shelter-construction-shower-curtain-frame-b0f831ea","title":"Shower Curtain Frame (Underground Survivor Hideout)","summary":"Shower Curtain Frame: 1 × 2.2 × 1 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 1m wide, 2.2m high, 1m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof open; walls canvas. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shower-curtain-frame-b0f831ea","cdnUrl":"https://cdn.3dassets.dev/assets/9994/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shower-curtain-frame-b0f831ea","thumbnailUrl":"https://cdn.3dassets.dev/assets/9994/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9994/v1/poster.webp","blurhash":"U18gZ,vN00?]}[oy9aIC01a1_Joz_MoJDQWV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":140408,"triangles":2304,"vertices":6912,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5837776812418345,0,-0.5737006661693079],"max":[0.5837499831464943,1.649999976158142,0.5737006661693079]},"sizeMeters":[1.168,1.65,1.147],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:57.086Z","updatedAt":"2026-09-06T14:32:57.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9994/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShowerCurtainFrameUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9994/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9994/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9994/v1/model.glb\" alt=\"Shower Curtain Frame (Underground Survivor Hideout)\" 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/9994/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/9994/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9996","slug":"bunker-shelter-construction-waste-bin-foot-pedal-74c45765","title":"Waste Bin Foot Pedal (Underground Survivor Hideout)","summary":"Waste Bin Foot Pedal: 0.45 × 0.7 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.45m wide, 0.7m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape bin. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-waste-bin-foot-pedal-74c45765","cdnUrl":"https://cdn.3dassets.dev/assets/9996/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-waste-bin-foot-pedal-74c45765","thumbnailUrl":"https://cdn.3dassets.dev/assets/9996/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9996/v1/poster.webp","blurhash":"U17mTw~W0000:hD%Fz^,BpF{RP;1^KofF3kC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14172,"triangles":120,"vertices":360,"meshes":3,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2250160183854749,0,-0.2587660160012891],"max":[0.2250160183854749,0.699999988079071,0.2587548018915127]},"sizeMeters":[0.45,0.7,0.518],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:57.122Z","updatedAt":"2026-09-06T14:32:58.095Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9996/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WasteBinFootPedalUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9996/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9996/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9996/v1/model.glb\" alt=\"Waste Bin Foot Pedal (Underground Survivor Hideout)\" 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/9996/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/9996/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"9999","slug":"bunker-shelter-construction-greywater-sump-a7a1dc9d","title":"Greywater Sump (Underground Survivor Hideout)","summary":"Greywater Sump: 0.8 × 0.5 × 0.8 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.8m wide, 0.5m high, 0.8m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape sump. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-greywater-sump-a7a1dc9d","cdnUrl":"https://cdn.3dassets.dev/assets/9999/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-greywater-sump-a7a1dc9d","thumbnailUrl":"https://cdn.3dassets.dev/assets/9999/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/9999/v1/poster.webp","blurhash":"U4EyYy~q00xb_3IVWB-:009F4.D%D$?b9Z4o","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9404,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000015259254965385716,-0.4000000059604645],"max":[0.4000000059604645,0.2000152622351976,0.4000000059604645]},"sizeMeters":[0.8,0.2,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:57.327Z","updatedAt":"2026-09-06T14:32:57.392Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/9999/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GreywaterSumpUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/9999/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/9999/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/9999/v1/model.glb\" alt=\"Greywater Sump (Underground Survivor Hideout)\" 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/9999/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/9999/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10004","slug":"bunker-shelter-construction-laundry-wringer-2470246f","title":"Laundry Wringer (Underground Survivor Hideout)","summary":"Laundry Wringer: 0.8 × 1 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.8m wide, 1m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape roller. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-laundry-wringer-2470246f","cdnUrl":"https://cdn.3dassets.dev/assets/10004/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-laundry-wringer-2470246f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10004/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10004/v1/poster.webp","blurhash":"U58|^n-;00I:~W%MJ7E200t7%MIA9GozrrMw","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":26552,"triangles":388,"vertices":1164,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4199934978780811,0,-0.3000265499035476],"max":[0.4199934978780811,0.9539999961853027,0.3000265499035476]},"sizeMeters":[0.84,0.954,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:58.894Z","updatedAt":"2026-09-06T14:32:59.914Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10004/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaundryWringerUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10004/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10004/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10004/v1/model.glb\" alt=\"Laundry Wringer (Underground Survivor Hideout)\" 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/10004/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/10004/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10006","slug":"bunker-shelter-construction-drying-lines-frame-d2ddb98c","title":"Drying Lines Frame (Underground Survivor Hideout)","summary":"Drying Lines Frame: 1.5 × 1.7 × 0.6 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 1.5m wide, 1.7m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape lines. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-drying-lines-frame-d2ddb98c","cdnUrl":"https://cdn.3dassets.dev/assets/10006/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-drying-lines-frame-d2ddb98c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10006/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10006/v1/poster.webp","blurhash":"U39GQ@GX0059T0$%I:NG00;4*It5#8oexuJ7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":23440,"triangles":320,"vertices":960,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7499725543776347,0,-0.3000045861913232],"max":[0.7499725543776347,1.7000000476837158,0.3000045861913232]},"sizeMeters":[1.5,1.7,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:59.222Z","updatedAt":"2026-09-06T14:33:00.248Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10006/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryingLinesFrameUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10006/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10006/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10006/v1/model.glb\" alt=\"Drying Lines Frame (Underground Survivor Hideout)\" 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/10006/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/10006/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10008","slug":"bunker-shelter-construction-wall-first-aid-recess-7a7a4351","title":"Wall First Aid Recess (Underground Survivor Hideout)","summary":"Wall First Aid Recess: 0.6 × 0.7 × 0.25 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 0.7m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-wall-first-aid-recess-7a7a4351","cdnUrl":"https://cdn.3dassets.dev/assets/10008/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-wall-first-aid-recess-7a7a4351","thumbnailUrl":"https://cdn.3dassets.dev/assets/10008/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10008/v1/poster.webp","blurhash":"U17TIE~A02EN}=%0IrI:O9NaIaRT-n-VRp5S","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14356,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3000106763691651,0,-0.13548397458117706],"max":[0.3000106763691651,0.699999988079071,0.13548968530988753]},"sizeMeters":[0.6,0.7,0.271],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:59.464Z","updatedAt":"2026-09-06T14:33:00.464Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10008/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallFirstAidRecessUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10008/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10008/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10008/v1/model.glb\" alt=\"Wall First Aid Recess (Underground Survivor Hideout)\" 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/10008/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/10008/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10010","slug":"bunker-shelter-construction-emergency-lamp-mount-04f2cc4e","title":"Emergency Lamp Mount (Underground Survivor Hideout)","summary":"Emergency Lamp Mount: 0.3 × 0.5 × 0.25 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.3m wide, 0.5m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape lamp. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-emergency-lamp-mount-04f2cc4e","cdnUrl":"https://cdn.3dassets.dev/assets/10010/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-emergency-lamp-mount-04f2cc4e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10010/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10010/v1/poster.webp","blurhash":"U4AwPC~q0000-n-;9Z4oM|M{xt%M9cD*?G_2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9700,"triangles":164,"vertices":492,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14999313124145847,6.705522803684971e-10,-0.1250015241804481],"max":[0.14999313124145847,0.4749999940395355,0.1250015241804481]},"sizeMeters":[0.3,0.475,0.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:32:59.545Z","updatedAt":"2026-09-06T14:32:59.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10010/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EmergencyLampMountUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10010/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10010/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10010/v1/model.glb\" alt=\"Emergency Lamp Mount (Underground Survivor Hideout)\" 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/10010/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/10010/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10015","slug":"bunker-shelter-construction-shelter-bell-c1f73bd9","title":"Shelter Bell (Underground Survivor Hideout)","summary":"Shelter Bell: 0.4 × 0.65 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.4m wide, 0.65m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape bell. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-bell-c1f73bd9","cdnUrl":"https://cdn.3dassets.dev/assets/10015/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-bell-c1f73bd9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10015/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10015/v1/poster.webp","blurhash":"U36@G|xa01Mx}?o39vWTD$NG%g%MivWBo~xu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":26200,"triangles":372,"vertices":1116,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.20001677784363986,0,-0.14997786857947426],"max":[0.20001677784363986,0.6499999761581421,0.14997786857947426]},"sizeMeters":[0.4,0.65,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:01.096Z","updatedAt":"2026-09-06T14:33:02.113Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10015/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterBellUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10015/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10015/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10015/v1/model.glb\" alt=\"Shelter Bell (Underground Survivor Hideout)\" 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/10015/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/10015/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10018","slug":"bunker-shelter-construction-manual-pump-mount-d5b3d3c5","title":"Manual Pump Mount (Underground Survivor Hideout)","summary":"Manual Pump Mount: 0.4 × 1 × 0.4 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.4m wide, 1m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape pump. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-manual-pump-mount-d5b3d3c5","cdnUrl":"https://cdn.3dassets.dev/assets/10018/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-manual-pump-mount-d5b3d3c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/10018/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10018/v1/poster.webp","blurhash":"U16kkr_N000000Md?^.S00E1_N~C%2niSLXm","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":13180,"triangles":252,"vertices":756,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.16473535704184167,0,-0.16423059298928344],"max":[0.16473535704184167,0.9188668727874756,0.16423059298928344]},"sizeMeters":[0.329,0.919,0.328],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:01.430Z","updatedAt":"2026-09-06T14:33:02.434Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10018/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ManualPumpMountUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10018/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10018/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10018/v1/model.glb\" alt=\"Manual Pump Mount (Underground Survivor Hideout)\" 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/10018/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/10018/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10020","slug":"bunker-shelter-construction-door-seal-storage-bf6de84b","title":"Door Seal Storage (Underground Survivor Hideout)","summary":"Door Seal Storage: 0.6 × 0.8 × 0.25 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.6m wide, 0.8m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape rings. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-door-seal-storage-bf6de84b","cdnUrl":"https://cdn.3dassets.dev/assets/10020/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-door-seal-storage-bf6de84b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10020/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10020/v1/poster.webp","blurhash":"U06Z??~900My~T=x585R0LM#S*JB}T,@145T","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":58788,"triangles":1056,"vertices":3168,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.299984745215383,0,-0.14498733697904712],"max":[0.299984745215383,0.8360000252723694,0.14498733697904712]},"sizeMeters":[0.6,0.836,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:02.217Z","updatedAt":"2026-09-06T14:33:02.833Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10020/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DoorSealStorageUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10020/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10020/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10020/v1/model.glb\" alt=\"Door Seal Storage (Underground Survivor Hideout)\" 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/10020/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/10020/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10021","slug":"bunker-shelter-construction-utility-valve-wheel-953254a0","title":"Utility Valve Wheel (Underground Survivor Hideout)","summary":"Utility Valve Wheel: 0.4 × 0.6 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.4m wide, 0.6m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape valve. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-utility-valve-wheel-953254a0","cdnUrl":"https://cdn.3dassets.dev/assets/10021/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-utility-valve-wheel-953254a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10021/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10021/v1/poster.webp","blurhash":"U28qZ[?v004T00V??vkXM{M{xu-;RRt8%fNF","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":14724,"triangles":284,"vertices":852,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2000186100568975,6.705522803684971e-10,-0.14999770643688365],"max":[0.2000186100568975,0.7099999785423279,0.14999770643688365]},"sizeMeters":[0.4,0.71,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:02.068Z","updatedAt":"2026-09-06T14:33:03.028Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10021/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityValveWheelUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10021/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10021/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10021/v1/model.glb\" alt=\"Utility Valve Wheel (Underground Survivor Hideout)\" 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/10021/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/10021/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10028","slug":"bunker-shelter-construction-floor-cable-bridge-e775b33f","title":"Floor Cable Bridge (Underground Survivor Hideout)","summary":"Floor Cable Bridge: 0.6 × 0.15 × 0.4 m nominal survival ramp assembly.","description":"Original weathered survival ramp. Nominal envelope 0.6m wide, 0.15m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form ramp; cleats true. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-floor-cable-bridge-e775b33f","cdnUrl":"https://cdn.3dassets.dev/assets/10028/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-floor-cable-bridge-e775b33f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10028/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10028/v1/poster.webp","blurhash":"UDA^LDxa00Rj?wa$ITW900R+x]Ri8^s:W=Rk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":15296,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0.000003730930701995039,-0.21755425529542266],"max":[0.30000001192092896,0.2843085242370021,0.21755425529542266]},"sizeMeters":[0.6,0.284,0.435],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:03.668Z","updatedAt":"2026-09-06T14:33:04.711Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10028/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FloorCableBridgeUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10028/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10028/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10028/v1/model.glb\" alt=\"Floor Cable Bridge (Underground Survivor Hideout)\" 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/10028/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/10028/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10030","slug":"bunker-shelter-construction-dehumidifier-cabinet-419039e0","title":"Dehumidifier Cabinet (Underground Survivor Hideout)","summary":"Dehumidifier Cabinet: 0.6 × 1 × 0.5 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 1m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape filter; upright true. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-dehumidifier-cabinet-419039e0","cdnUrl":"https://cdn.3dassets.dev/assets/10030/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-dehumidifier-cabinet-419039e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10030/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10030/v1/poster.webp","blurhash":"U9BDf]IU00IU_4jsDiWqafx[9FWBx]ofRPWA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":13436,"triangles":228,"vertices":684,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3000274666585284,0,-0.27127903073213905],"max":[0.3000274666585284,1,0.27127903073213905]},"sizeMeters":[0.6,1,0.543],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:04.055Z","updatedAt":"2026-09-06T14:33:05.030Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10030/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DehumidifierCabinetUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10030/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10030/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10030/v1/model.glb\" alt=\"Dehumidifier Cabinet (Underground Survivor Hideout)\" 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/10030/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/10030/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10032","slug":"bunker-shelter-construction-wall-tool-foldout-bd731a34","title":"Wall Tool Foldout (Underground Survivor Hideout)","summary":"Wall Tool Foldout: 0.8 × 0.7 × 0.3 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.7m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape fold. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-wall-tool-foldout-bd731a34","cdnUrl":"https://cdn.3dassets.dev/assets/10032/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-wall-tool-foldout-bd731a34","thumbnailUrl":"https://cdn.3dassets.dev/assets/10032/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10032/v1/poster.webp","blurhash":"U66@ZmVrS%jE}q%1R.RjE0-VaKX99]nhi_kX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":9428,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000023418257375229512,-0.16999294150909586],"max":[0.4000000059604645,0.46906859185098126,0.17001678324331096]},"sizeMeters":[0.8,0.469,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:04.467Z","updatedAt":"2026-09-06T14:33:05.374Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10032/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallToolFoldoutUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10032/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10032/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10032/v1/model.glb\" alt=\"Wall Tool Foldout (Underground Survivor Hideout)\" 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/10032/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/10032/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10033","slug":"bunker-shelter-construction-maintenance-hoist-4acb365c","title":"Maintenance Hoist (Underground Survivor Hideout)","summary":"Maintenance Hoist: 0.8 × 1.7 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.8m wide, 1.7m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape winch. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-maintenance-hoist-4acb365c","cdnUrl":"https://cdn.3dassets.dev/assets/10033/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-maintenance-hoist-4acb365c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10033/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10033/v1/poster.webp","blurhash":"U284xk~q0000_N-;DO4n0KV[-BM_uO-pvg4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":38648,"triangles":624,"vertices":1872,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.42002281604893105,0,-0.314970781124118],"max":[0.42002281604893105,1.7350000143051147,0.314970781124118]},"sizeMeters":[0.84,1.735,0.63],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:04.702Z","updatedAt":"2026-09-06T14:33:05.627Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10033/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MaintenanceHoistUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10033/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10033/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10033/v1/model.glb\" alt=\"Maintenance Hoist (Underground Survivor Hideout)\" 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/10033/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/10033/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10040","slug":"bunker-shelter-construction-shelter-map-board-d8c3bad6","title":"Shelter Map Board (Underground Survivor Hideout)","summary":"Shelter Map Board: 1.2 × 0.8 × 0.1 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 1.2m wide, 0.8m high, 0.1m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape notice. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-shelter-map-board-d8c3bad6","cdnUrl":"https://cdn.3dassets.dev/assets/10040/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shelter-map-board-d8c3bad6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10040/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10040/v1/poster.webp","blurhash":"U68|ke-U00w]i_-V%2IV00RQ_Nt7^krXIA%g","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":18220,"triangles":192,"vertices":576,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.00002442474265845762,-0.06402594315304055],"max":[0.6000000238418579,0.8000244366635874,0.06400969238444118]},"sizeMeters":[1.2,0.8,0.128],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:06.417Z","updatedAt":"2026-09-06T14:33:07.258Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10040/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShelterMapBoardUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10040/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10040/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10040/v1/model.glb\" alt=\"Shelter Map Board (Underground Survivor Hideout)\" 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/10040/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/10040/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10043","slug":"bunker-shelter-construction-entrance-boot-scraper-7d9c5580","title":"Entrance Boot Scraper (Underground Survivor Hideout)","summary":"Entrance Boot Scraper: 0.6 × 0.25 × 0.4 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.6m wide, 0.25m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape brush. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-entrance-boot-scraper-7d9c5580","cdnUrl":"https://cdn.3dassets.dev/assets/10043/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-entrance-boot-scraper-7d9c5580","thumbnailUrl":"https://cdn.3dassets.dev/assets/10043/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10043/v1/poster.webp","blurhash":"U28DRo-.02nO~oxuICM{01N_.6My01W9%|bv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":62640,"triangles":1132,"vertices":3396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,-7.679298209550822e-7,-0.20799585774772372],"max":[0.30000001192092896,0.25000076792982096,0.20799585774772372]},"sizeMeters":[0.6,0.25,0.416],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:06.688Z","updatedAt":"2026-09-06T14:33:07.603Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10043/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntranceBootScraperUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10043/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10043/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10043/v1/model.glb\" alt=\"Entrance Boot Scraper (Underground Survivor Hideout)\" 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/10043/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/10043/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10046","slug":"bunker-shelter-construction-sealed-equipment-cabinet-215fa675","title":"Sealed Equipment Cabinet (Underground Survivor Hideout)","summary":"Sealed Equipment Cabinet: 1 × 1.5 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 1.5m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-sealed-equipment-cabinet-215fa675","cdnUrl":"https://cdn.3dassets.dev/assets/10046/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-sealed-equipment-cabinet-215fa675","thumbnailUrl":"https://cdn.3dassets.dev/assets/10046/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10046/v1/poster.webp","blurhash":"U16s=_^O030$--oLM#W.b:X5IujIcBxGn7I;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":18072,"triangles":176,"vertices":528,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.500030518509476,0,-0.33995879166755716],"max":[0.500030518509476,1.5,0.3399949777307125]},"sizeMeters":[1,1.5,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:07.936Z","updatedAt":"2026-09-06T14:33:07.970Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10046/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SealedEquipmentCabinetUndergroundSurvivorHideout(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10046/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10046/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10046/v1/model.glb\" alt=\"Sealed Equipment Cabinet (Underground Survivor Hideout)\" camera-controls auto-rotate autoplay></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/10046/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","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)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","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/10046/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10048","slug":"bunker-shelter-construction-wall-corner-seat-9dae43e5","title":"Wall Corner Seat (Underground Survivor Hideout)","summary":"Wall Corner Seat: 0.8 × 0.5 × 0.8 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 0.8m wide, 0.5m high, 0.8m deep; applied framing, handles or rails can extend beyond this. Construction: form bed; shape corner. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-wall-corner-seat-9dae43e5","cdnUrl":"https://cdn.3dassets.dev/assets/10048/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-wall-corner-seat-9dae43e5","thumbnailUrl":"https://cdn.3dassets.dev/assets/10048/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10048/v1/poster.webp","blurhash":"U69@Fd.801Md~nS#D+r]00D*.Pxu01aM-.oH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"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":13740,"triangles":108,"vertices":324,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.40000443150347254,-0.000028693323918693725,-0.42750000953674316],"max":[0.40000443150347254,0.7500286933239186,0.42750000953674316]},"sizeMeters":[0.8,0.75,0.855],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:08.345Z","updatedAt":"2026-09-06T14:33:08.565Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10048/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallCornerSeatUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10048/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10048/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10048/v1/model.glb\" alt=\"Wall Corner Seat (Underground Survivor Hideout)\" 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/10048/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/10048/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10056","slug":"bunker-shelter-construction-assembled-su-7995392c-starter-scene","title":"Assembled Survivor Site (Underground Survivor Hideout)","summary":"Composed example for Underground Survivor Hideout.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-assembled-su-7995392c-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-assembled-su-7995392c-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10056/v1/poster.webp","blurhash":"U5FY#{8{00SiD+00%0x[00t6RP%1~V~qIpt7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":266716,"triangles":11828,"vertices":10905,"meshes":18,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-2.1899960401435323,-0.000003814813684499541,-2.1674367570424495],"max":[2.000042765651394,2.869988707182918,2.9999572820323217]},"sizeMeters":[4.19,2.87,5.167],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:10.223Z","updatedAt":"2026-09-06T14:33:10.466Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10056/v1/model.glb\" alt=\"Assembled Survivor Site (Underground Survivor Hideout)\" 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/10056/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/10056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10052","slug":"bunker-shelter-construction-construction-and-service-c-d32d58e0","title":"Construction and Service Corner (Underground Survivor Hideout)","summary":"Composed example for Underground Survivor Hideout.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/bunker-shelter-construction-construction-and-service-c-d32d58e0","cdnUrl":"https://cdn.3dassets.dev/assets/10052/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-construction-and-service-c-d32d58e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10052/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10052/v1/poster.webp","blurhash":"U5G9550000IoIY0K%0xu00?a^+%M?a~WIVoM","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":321692,"triangles":14540,"vertices":13520,"meshes":19,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.193026259548788,-0.000003814813684499541,-2.1674367570424495],"max":[2.000042765651394,2.869988707182918,2.9999572820323217]},"sizeMeters":[4.193,2.87,5.167],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:33:09.444Z","updatedAt":"2026-09-06T14:33:10.118Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10052/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConstructionAndServiceCornerUndergroundSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10052/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10052/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10052/v1/model.glb\" alt=\"Construction and Service Corner (Underground Survivor Hideout)\" 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/10052/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/10052/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}