{"data":{"id":64,"slug":"roadside-survival-stops","title":"Roadside Survival Stops","summary":"A derelict roadside service stop: fuel pumps and canopy, service bays and shutters, restrooms, air and water points, signage, picnic and rain shelters, kiosks and maintenance sheds.","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/roadside-survival-stops","coverUrl":"https://cdn.3dassets.dev/assets/23585/v1/poster.webp","assetCount":78,"aiGenerated":true,"aiGeneratedAssetCount":78,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":3420112,"totalTriangles":62060,"starterScene":{"id":"23585","slug":"roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","title":"Assembled Survivor Site (Roadside Survival Stops)","summary":"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.","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/roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/23585/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/23585/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23585/v1/poster.webp","blurhash":"U38:@n000#Td.8DiXmtm00?vs:niMJ?wMxMc","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":170164,"triangles":7524,"vertices":7281,"meshes":22,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2.139959982819825,-0.00007629627368999081,-2.11748827991812],"max":[2.000042765651394,3.3317355487910336,2.8599383526108584]},"sizeMeters":[4.14,3.332,4.977],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":18,"publishedAt":"2026-09-07T20:11:41.497Z","updatedAt":"2026-10-25T16:53:50.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23585/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23585/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23585/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23585/v1/model.glb\" alt=\"Assembled Survivor Site (Roadside Survival Stops)\" 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/23585/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/23585/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"23512","slug":"roadside-survival-stops-service-bay-side-46d497f4","title":"Service Bay Side (Roadside Survival Stops)","summary":"Service Bay Side: 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 corrugated; 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/roadside-survival-stops-service-bay-side-46d497f4","cdnUrl":"https://cdn.3dassets.dev/assets/23512/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-side-46d497f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/23512/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23512/v1/poster.webp","blurhash":"U5AwPF~q00IA_N-;M{IT4nIUX8aytRxuM{IT","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":73096,"triangles":1500,"vertices":4500,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.11748827991811986],"max":[1.000042765651394,2.4000000953674316,0.13798827675907369]},"sizeMeters":[2,2.4,0.255],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:24.640Z","updatedAt":"2026-10-06T02:34:11.921Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23512/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceBaySideRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23512/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23512/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23512/v1/model.glb\" alt=\"Service Bay Side (Roadside Survival Stops)\" 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/23512/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/23512/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23511","slug":"roadside-survival-stops-service-bay-wide-entry-a1de2d7a","title":"Service Bay Wide Entry (Roadside Survival Stops)","summary":"Service Bay Wide Entry: 4 × 3 × 0.25 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 4m wide, 3m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening wide-door; 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/roadside-survival-stops-service-bay-wide-entry-a1de2d7a","cdnUrl":"https://cdn.3dassets.dev/assets/23511/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-wide-entry-a1de2d7a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23511/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23511/v1/poster.webp","blurhash":"UA9HFTxuD$x[_N%MD%InM{t8RjIUM{%Mx]M_","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":116256,"triangles":2400,"vertices":7200,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00007629627368999081,-0.1650089921117844],"max":[2,2.99992370372631,0.16800898329029698]},"sizeMeters":[4,3,0.333],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:24.602Z","updatedAt":"2026-10-12T22:34:39.467Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23511/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceBayWideEntryRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23511/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23511/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23511/v1/model.glb\" alt=\"Service Bay Wide Entry (Roadside Survival Stops)\" 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/23511/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/23511/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23515","slug":"roadside-survival-stops-service-counter-front-629ce231","title":"Service Counter Front (Roadside Survival Stops)","summary":"Service Counter Front: 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; opening counter. 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/roadside-survival-stops-service-counter-front-629ce231","cdnUrl":"https://cdn.3dassets.dev/assets/23515/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-counter-front-629ce231","thumbnailUrl":"https://cdn.3dassets.dev/assets/23515/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23515/v1/poster.webp","blurhash":"U179^NTH04w0=w$%NbI;0~+|^4E}-B-AI;9^","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":137616,"triangles":2196,"vertices":6588,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.15192706083892688],"max":[1.000042765651394,2.4000000953674316,0.1879270741903673]},"sizeMeters":[2,2.4,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:25.736Z","updatedAt":"2026-10-25T10:21:28.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23515/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceCounterFrontRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23515/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23515/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23515/v1/model.glb\" alt=\"Service Counter Front (Roadside Survival Stops)\" 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/23515/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/23515/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23513","slug":"roadside-survival-stops-restroom-entry-wall-77dac281","title":"Restroom Entry Wall (Roadside Survival Stops)","summary":"Restroom Entry Wall: 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; opening door. 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/roadside-survival-stops-restroom-entry-wall-77dac281","cdnUrl":"https://cdn.3dassets.dev/assets/23513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-entry-wall-77dac281","thumbnailUrl":"https://cdn.3dassets.dev/assets/23513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23513/v1/poster.webp","blurhash":"U06QF-,@01$%}=^55T0#0}a#^6Na$i-AR+5S","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":104460,"triangles":1644,"vertices":4932,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.14004334184827813],"max":[1.000042765651394,2.4000000953674316,0.14004334184827813]},"sizeMeters":[2,2.4,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:24.637Z","updatedAt":"2026-10-05T20:01:59.855Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23513/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestroomEntryWallRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23513/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23513/v1/model.glb\" alt=\"Restroom Entry Wall (Roadside Survival Stops)\" 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/23513/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/23513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23517","slug":"roadside-survival-stops-rest-stop-window-wall-1b30ab9e","title":"Rest Stop Window Wall (Roadside Survival Stops)","summary":"Rest Stop Window Wall: 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; opening double-window. 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/roadside-survival-stops-rest-stop-window-wall-1b30ab9e","cdnUrl":"https://cdn.3dassets.dev/assets/23517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-window-wall-1b30ab9e","thumbnailUrl":"https://cdn.3dassets.dev/assets/23517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23517/v1/poster.webp","blurhash":"U070YwYL01qy}r=LEz6_0}[t|z5.}=^55T0$","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":140496,"triangles":2244,"vertices":6732,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.15192706083892688],"max":[1.000042765651394,2.4000000953674316,0.1879270741903673]},"sizeMeters":[2,2.4,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:25.771Z","updatedAt":"2026-10-05T11:28:17.500Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23517/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestStopWindowWallRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23517/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23517/v1/model.glb\" alt=\"Rest Stop Window Wall (Roadside Survival Stops)\" 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/23517/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/23517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23514","slug":"roadside-survival-stops-utility-vent-wall-b3c07b4d","title":"Utility Vent Wall (Roadside Survival Stops)","summary":"Utility Vent Wall: 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; opening vent. 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/roadside-survival-stops-utility-vent-wall-b3c07b4d","cdnUrl":"https://cdn.3dassets.dev/assets/23514/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-utility-vent-wall-b3c07b4d","thumbnailUrl":"https://cdn.3dassets.dev/assets/23514/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23514/v1/poster.webp","blurhash":"U17Ja?cB03nP=^$%I;Eg0}+|].Fb$%$%I=Eg","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":111672,"triangles":1764,"vertices":5292,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.15192706083892688],"max":[1.000042765651394,2.4000000953674316,0.1879270741903673]},"sizeMeters":[2,2.4,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:25.674Z","updatedAt":"2026-10-05T20:02:02.179Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23514/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityVentWallRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23514/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23514/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23514/v1/model.glb\" alt=\"Utility Vent Wall (Roadside Survival Stops)\" 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/23514/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/23514/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23518","slug":"roadside-survival-stops-pump-canopy-column-8cc9571f","title":"Pump Canopy Column (Roadside Survival Stops)","summary":"Pump Canopy Column: 0.4 × 3 × 0.4 m nominal survival post assembly.","description":"Original weathered survival post. Nominal envelope 0.4m wide, 3m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form post; shape i. 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/roadside-survival-stops-pump-canopy-column-8cc9571f","cdnUrl":"https://cdn.3dassets.dev/assets/23518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-canopy-column-8cc9571f","thumbnailUrl":"https://cdn.3dassets.dev/assets/23518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23518/v1/poster.webp","blurhash":"U19aHh_30000~qof00Rk00S2~qnO_3oL4.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":"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":7932,"triangles":144,"vertices":432,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2600177007354961,0,-0.2600177007354961],"max":[0.2600177007354961,3,0.2600177007354961]},"sizeMeters":[0.52,3,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:24.763Z","updatedAt":"2026-10-13T01:48:30.551Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpCanopyColumnRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23518/v1/model.glb\" alt=\"Pump Canopy Column (Roadside Survival Stops)\" 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/23518/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/23518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23516","slug":"roadside-survival-stops-pump-canopy-corner-4c17359e","title":"Pump Canopy Corner (Roadside Survival Stops)","summary":"Pump Canopy Corner: 2 × 0.5 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.5m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape hip. 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/roadside-survival-stops-pump-canopy-corner-4c17359e","cdnUrl":"https://cdn.3dassets.dev/assets/23516/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-canopy-corner-4c17359e","thumbnailUrl":"https://cdn.3dassets.dev/assets/23516/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23516/v1/poster.webp","blurhash":"U37J?|s.0gRo5FR+w[tP03bE=yWC}*s:kqMz","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":25300,"triangles":312,"vertices":936,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0170863294170691,-0.000016723926057116145,-1.0424093008041382],"max":[1.0170863294170691,0.6617355487910335,1.0424093008041382]},"sizeMeters":[2.034,0.662,2.085],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:24.732Z","updatedAt":"2026-10-25T08:44:20.498Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23516/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpCanopyCornerRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23516/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23516/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23516/v1/model.glb\" alt=\"Pump Canopy Corner (Roadside Survival Stops)\" 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/23516/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/23516/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23519","slug":"roadside-survival-stops-service-bay-roof-63aa59ce","title":"Service Bay Roof (Roadside Survival Stops)","summary":"Service Bay Roof: 2 × 0.8 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.8m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape saw. 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/roadside-survival-stops-service-bay-roof-63aa59ce","cdnUrl":"https://cdn.3dassets.dev/assets/23519/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-roof-63aa59ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/23519/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23519/v1/poster.webp","blurhash":"U15D}sxr635BD.9xt5-S0OSej0xX.3};sAEN","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":29540,"triangles":324,"vertices":972,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.0312347412109375,0.00005595617547232701,-1.000014767967087],"max":[1.0312347412109375,0.9039874798749428,1.000014767967087]},"sizeMeters":[2.062,0.904,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:26.294Z","updatedAt":"2026-10-09T21:50:46.875Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23519/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceBayRoofRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23519/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23519/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23519/v1/model.glb\" alt=\"Service Bay Roof (Roadside Survival Stops)\" 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/23519/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/23519/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23521","slug":"roadside-survival-stops-rest-stop-roof-c18db646","title":"Rest Stop Roof (Roadside Survival Stops)","summary":"Rest Stop Roof: 2 × 0.8 × 2 m nominal survival roof assembly.","description":"Original weathered survival roof. Nominal envelope 2m wide, 0.8m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form roof; shape gable. 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/roadside-survival-stops-rest-stop-roof-c18db646","cdnUrl":"https://cdn.3dassets.dev/assets/23521/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-roof-c18db646","thumbnailUrl":"https://cdn.3dassets.dev/assets/23521/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23521/v1/poster.webp","blurhash":"U27Ab*OY00#9uPNGQmxu00R5^*yDD4rr.Skq","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":29152,"triangles":320,"vertices":960,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0312347412109375,0.00005595617547232701,-1.0011999607086182],"max":[1.0312347412109375,0.9740988111992207,1.000014767967087]},"sizeMeters":[2.062,0.974,2.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:27.422Z","updatedAt":"2026-10-06T06:23:15.891Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23521/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestStopRoofRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23521/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23521/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23521/v1/model.glb\" alt=\"Rest Stop Roof (Roadside Survival Stops)\" 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/23521/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/23521/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23520","slug":"roadside-survival-stops-service-floor-drain-d5eb874a","title":"Service Floor Drain (Roadside Survival Stops)","summary":"Service Floor Drain: 2 × 0.2 × 2 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.2m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck drain. 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/roadside-survival-stops-service-floor-drain-d5eb874a","cdnUrl":"https://cdn.3dassets.dev/assets/23520/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-floor-drain-d5eb874a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23520/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23520/v1/poster.webp","blurhash":"U16QVP^N0Ls9=_S4M|nj019^}[JB0gxW-oX7","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":21524,"triangles":252,"vertices":756,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.000016324124314195942,-1],"max":[1,0.27000771364052234,1]},"sizeMeters":[2,0.27,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:27.375Z","updatedAt":"2026-10-25T08:43:38.511Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23520/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceFloorDrainRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23520/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23520/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23520/v1/model.glb\" alt=\"Service Floor Drain (Roadside Survival Stops)\" 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/23520/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/23520/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23522","slug":"roadside-survival-stops-inspection-channel-floor-f2d6fa29","title":"Inspection Channel Floor (Roadside Survival Stops)","summary":"Inspection Channel Floor: 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 channel. 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/roadside-survival-stops-inspection-channel-floor-f2d6fa29","cdnUrl":"https://cdn.3dassets.dev/assets/23522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-inspection-channel-floor-f2d6fa29","thumbnailUrl":"https://cdn.3dassets.dev/assets/23522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23522/v1/poster.webp","blurhash":"U16G#V-m0#Sx^gbGM~f803IY,[RS0isUxGS2","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":72440,"triangles":1104,"vertices":3312,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.000028986623537730072,-1],"max":[1,0.3000289985444667,1]},"sizeMeters":[2,0.3,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:26.420Z","updatedAt":"2026-10-25T08:57:07.061Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23522/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InspectionChannelFloorRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23522/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23522/v1/model.glb\" alt=\"Inspection Channel Floor (Roadside Survival Stops)\" 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/23522/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/23522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23523","slug":"roadside-survival-stops-pump-island-platform-abfb3b92","title":"Pump Island Platform (Roadside Survival Stops)","summary":"Pump Island Platform: 2 × 0.25 × 1 m nominal survival platform assembly.","description":"Original weathered survival platform. Nominal envelope 2m wide, 0.25m high, 1m deep; applied framing, handles or rails can extend beyond this. Construction: form platform; deck stone. 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/roadside-survival-stops-pump-island-platform-abfb3b92","cdnUrl":"https://cdn.3dassets.dev/assets/23523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-island-platform-abfb3b92","thumbnailUrl":"https://cdn.3dassets.dev/assets/23523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23523/v1/poster.webp","blurhash":"UAD9q^xt00jY~q-;M{E100xu~pMy004oxu-;","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":26408,"triangles":348,"vertices":1044,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.00005660945089218383,-0.50007629627369],"max":[1,0.2499383576772533,0.50007629627369]},"sizeMeters":[2,0.25,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:26.440Z","updatedAt":"2026-10-07T01:17:46.729Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23523/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpIslandPlatformRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23523/v1/model.glb\" alt=\"Pump Island Platform (Roadside Survival Stops)\" 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/23523/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/23523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23524","slug":"roadside-survival-stops-loading-bay-step-04759c3d","title":"Loading Bay Step (Roadside Survival Stops)","summary":"Loading Bay Step: 2 × 0.6 × 1 m nominal survival stairs assembly.","description":"Original weathered survival stairs. Nominal envelope 2m wide, 0.6m high, 1m deep; applied framing, handles or rails can extend beyond this. Construction: form stairs; 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/roadside-survival-stops-loading-bay-step-04759c3d","cdnUrl":"https://cdn.3dassets.dev/assets/23524/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-loading-bay-step-04759c3d","thumbnailUrl":"https://cdn.3dassets.dev/assets/23524/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23524/v1/poster.webp","blurhash":"U27A-*%M9]em?^~WxZNH00yX^kxa8w0Kpc-o","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":13948,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.000037925945056083155,-0.5276650288399914],"max":[1,1.5032747951812142,0.5276650288399914]},"sizeMeters":[2,1.503,1.055],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:28.371Z","updatedAt":"2026-10-13T02:01:27.257Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23524/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LoadingBayStepRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23524/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23524/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23524/v1/model.glb\" alt=\"Loading Bay Step (Roadside Survival Stops)\" 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/23524/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/23524/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23525","slug":"roadside-survival-stops-service-bay-ramp-baa99f0b","title":"Service Bay Ramp (Roadside Survival Stops)","summary":"Service Bay Ramp: 2 × 0.4 × 2 m nominal survival ramp assembly.","description":"Original weathered survival ramp. Nominal envelope 2m wide, 0.4m high, 2m 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/roadside-survival-stops-service-bay-ramp-baa99f0b","cdnUrl":"https://cdn.3dassets.dev/assets/23525/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-ramp-baa99f0b","thumbnailUrl":"https://cdn.3dassets.dev/assets/23525/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23525/v1/poster.webp","blurhash":"U27wHG?E01P8_3V@IVkV00D+}sRR00t8xsa2","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":15220,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.9999441128245394,-0.00005603096914214012,-1.0098057985305786],"max":[1.0011999607086182,0.5290850426955216,1.0098057985305786]},"sizeMeters":[2.001,0.529,2.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:27.404Z","updatedAt":"2026-10-25T11:06:26.349Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23525/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceBayRampRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23525/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23525/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23525/v1/model.glb\" alt=\"Service Bay Ramp (Roadside Survival Stops)\" 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/23525/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/23525/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23526","slug":"roadside-survival-stops-shutter-guide-post-10ce0fe1","title":"Shutter Guide Post (Roadside Survival Stops)","summary":"Shutter Guide Post: 0.2 × 3 × 0.2 m nominal survival post assembly.","description":"Original weathered survival post. Nominal envelope 0.2m wide, 3m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form post; shape angle. 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/roadside-survival-stops-shutter-guide-post-10ce0fe1","cdnUrl":"https://cdn.3dassets.dev/assets/23526/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shutter-guide-post-10ce0fe1","thumbnailUrl":"https://cdn.3dassets.dev/assets/23526/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23526/v1/poster.webp","blurhash":"U05r3;.80000?wof9EV@9Fay-:n%?vof9EV@","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":2748,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.13000885036774806,0,-0.13000885036774806],"max":[0.13000885036774806,3,0.13000885036774806]},"sizeMeters":[0.26,3,0.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:27.437Z","updatedAt":"2026-10-11T06:58:33.601Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23526/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShutterGuidePostRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23526/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23526/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23526/v1/model.glb\" alt=\"Shutter Guide Post (Roadside Survival Stops)\" 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/23526/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/23526/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23527","slug":"roadside-survival-stops-rolling-shutter-leaf-ea7406b0","title":"Rolling Shutter Leaf (Roadside Survival Stops)","summary":"Rolling Shutter Leaf: 2 × 2.4 × 0.1 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 2m wide, 2.4m high, 0.1m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style louvre; 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/roadside-survival-stops-rolling-shutter-leaf-ea7406b0","cdnUrl":"https://cdn.3dassets.dev/assets/23527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rolling-shutter-leaf-ea7406b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/23527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23527/v1/poster.webp","blurhash":"U4ATvH%M00j[_3ayDiWB00V@_Nfkt7ofayj[","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":22004,"triangles":388,"vertices":1164,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.0166827466647657,0,-0.08144780392768505],"max":[1.0166862621929287,2.400000143051148,0.08144780196073176]},"sizeMeters":[2.033,2.4,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:29.036Z","updatedAt":"2026-10-05T20:36:02.753Z","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/23527/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 RollingShutterLeafRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23527/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/23527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23527/v1/model.glb\" alt=\"Rolling Shutter Leaf (Roadside Survival Stops)\" 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/23527/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/23527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23528","slug":"roadside-survival-stops-service-wicket-door-b65f3ee7","title":"Service Wicket Door (Roadside Survival Stops)","summary":"Service Wicket Door: 0.94 × 2.1 × 0.1 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.1m 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/roadside-survival-stops-service-wicket-door-b65f3ee7","cdnUrl":"https://cdn.3dassets.dev/assets/23528/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-wicket-door-b65f3ee7","thumbnailUrl":"https://cdn.3dassets.dev/assets/23528/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23528/v1/poster.webp","blurhash":"U29Q,H4.00~q^kRQ9txu00-;~W4._3oz9YM{","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":30712,"triangles":568,"vertices":1704,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.48666441884509554,0,-0.08152103886811006],"max":[0.4865751031112664,2.09999988079071,0.08152103690115677]},"sizeMeters":[0.973,2.1,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:28.060Z","updatedAt":"2026-10-13T01:26:42.177Z","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/23528/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 ServiceWicketDoorRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23528/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/23528/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23528/v1/model.glb\" alt=\"Service Wicket Door (Roadside Survival Stops)\" 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/23528/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/23528/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23529","slug":"roadside-survival-stops-restroom-door-484fc7c8","title":"Restroom Door (Roadside Survival Stops)","summary":"Restroom Door: 0.94 × 2.1 × 0.1 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.1m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style vent. 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/roadside-survival-stops-restroom-door-484fc7c8","cdnUrl":"https://cdn.3dassets.dev/assets/23529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-door-484fc7c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/23529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23529/v1/poster.webp","blurhash":"U36tgx%M00D*?vofDiV@4-fR^+j[8wae.Tog","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":45780,"triangles":652,"vertices":1956,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.48666441884509554,0,-0.0814893153114443],"max":[0.4865751031112664,2.09999988079071,0.08147133284875237]},"sizeMeters":[0.973,2.1,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:28.261Z","updatedAt":"2026-10-13T02:21:09.081Z","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/23529/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 RestroomDoorRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23529/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/23529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23529/v1/model.glb\" alt=\"Restroom Door (Roadside Survival Stops)\" 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/23529/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/23529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23530","slug":"roadside-survival-stops-manual-fuel-pump-9fe6eb80","title":"Manual Fuel Pump (Roadside Survival Stops)","summary":"Manual Fuel Pump: 0.6 × 1.5 × 0.5 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 1.5m high, 0.5m 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/roadside-survival-stops-manual-fuel-pump-9fe6eb80","cdnUrl":"https://cdn.3dassets.dev/assets/23530/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-manual-fuel-pump-9fe6eb80","thumbnailUrl":"https://cdn.3dassets.dev/assets/23530/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23530/v1/poster.webp","blurhash":"U16keb_400004TMw?w?v00D%_N~qIoR*%M%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":13172,"triangles":252,"vertices":756,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.23973030253376665,0,-0.2003775195788467],"max":[0.23973030253376665,1.3688669204711914,0.2003775195788467]},"sizeMeters":[0.479,1.369,0.401],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:30.073Z","updatedAt":"2026-10-25T10:59:26.410Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23530/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ManualFuelPumpRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23530/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23530/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23530/v1/model.glb\" alt=\"Manual Fuel Pump (Roadside Survival Stops)\" 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/23530/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/23530/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23533","slug":"roadside-survival-stops-twin-hose-dispenser-be57f052","title":"Twin Hose Dispenser (Roadside Survival Stops)","summary":"Twin Hose Dispenser: 0.8 × 1.5 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.8m wide, 1.5m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape fuel; twin 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/roadside-survival-stops-twin-hose-dispenser-be57f052","cdnUrl":"https://cdn.3dassets.dev/assets/23533/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-twin-hose-dispenser-be57f052","thumbnailUrl":"https://cdn.3dassets.dev/assets/23533/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23533/v1/poster.webp","blurhash":"U79tW6-;009F~qt74nM{t8WCIUWARkWBt6xt","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":48736,"triangles":948,"vertices":2844,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5630589857027624,0,-0.3212087797466282],"max":[0.5630589857027624,1.5,0.32126029334555584]},"sizeMeters":[1.126,1.5,0.642],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T20:11:29.174Z","updatedAt":"2026-10-25T13:03:23.813Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23533/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwinHoseDispenserRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23533/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23533/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23533/v1/model.glb\" alt=\"Twin Hose Dispenser (Roadside Survival Stops)\" 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/23533/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/23533/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23532","slug":"roadside-survival-stops-single-hose-dispenser-c4863571","title":"Single Hose Dispenser (Roadside Survival Stops)","summary":"Single Hose Dispenser: 0.6 × 1.4 × 0.5 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 1.4m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape fuel. 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/roadside-survival-stops-single-hose-dispenser-c4863571","cdnUrl":"https://cdn.3dassets.dev/assets/23532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-single-hose-dispenser-c4863571","thumbnailUrl":"https://cdn.3dassets.dev/assets/23532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23532/v1/poster.webp","blurhash":"U79aKo.7009F~qxu9FIUxvogIURio#WCadxt","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":29880,"triangles":552,"vertices":1656,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.36379411206170986,0,-0.2712179533942839],"max":[0.3638303816972459,1.399999976158142,0.27124443443033713]},"sizeMeters":[0.728,1.4,0.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T20:11:29.155Z","updatedAt":"2026-10-25T13:55:09.958Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SingleHoseDispenserRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23532/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23532/v1/model.glb\" alt=\"Single Hose Dispenser (Roadside Survival Stops)\" 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/23532/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/23532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23531","slug":"roadside-survival-stops-compressed-air-station-6a3b15a0","title":"Compressed Air Station (Roadside Survival Stops)","summary":"Compressed Air Station: 0.6 × 1.2 × 0.5 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 1.2m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape compressor. 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/roadside-survival-stops-compressed-air-station-6a3b15a0","cdnUrl":"https://cdn.3dassets.dev/assets/23531/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-compressed-air-station-6a3b15a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/23531/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23531/v1/poster.webp","blurhash":"U69%@v-;00D%~qoe4nWB?bt69EMy-;ofIURj","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":13508,"triangles":228,"vertices":684,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.300045789686962,0,-0.27124241929897275],"max":[0.300045789686962,1.2000000476837158,0.27124443443033713]},"sizeMeters":[0.6,1.2,0.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:29.141Z","updatedAt":"2026-10-25T10:06:14.367Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23531/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompressedAirStationRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23531/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23531/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23531/v1/model.glb\" alt=\"Compressed Air Station (Roadside Survival Stops)\" 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/23531/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/23531/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23534","slug":"roadside-survival-stops-tyre-inflation-post-3e7e616c","title":"Tyre Inflation Post (Roadside Survival Stops)","summary":"Tyre Inflation Post: 0.3 × 1 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.3m wide, 1m 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/roadside-survival-stops-tyre-inflation-post-3e7e616c","cdnUrl":"https://cdn.3dassets.dev/assets/23534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-tyre-inflation-post-3e7e616c","thumbnailUrl":"https://cdn.3dassets.dev/assets/23534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23534/v1/poster.webp","blurhash":"U27x2Y?b000000of%gIU~qxuDiIAIARPtRtl","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.14997894130150244,6.705522803684971e-10,-0.14997894130150244],"max":[0.14997894130150244,0.8799999952316284,0.14997894130150244]},"sizeMeters":[0.3,0.88,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:29.755Z","updatedAt":"2026-10-13T10:57:03.979Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TyreInflationPostRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23534/v1/model.glb\" alt=\"Tyre Inflation Post (Roadside Survival Stops)\" 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/23534/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/23534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23536","slug":"roadside-survival-stops-hose-reel-wall-b596a6da","title":"Hose Reel Wall (Roadside Survival Stops)","summary":"Hose Reel Wall: 0.6 × 0.6 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 0.6m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape reel. 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/roadside-survival-stops-hose-reel-wall-b596a6da","cdnUrl":"https://cdn.3dassets.dev/assets/23536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-hose-reel-wall-b596a6da","thumbnailUrl":"https://cdn.3dassets.dev/assets/23536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23536/v1/poster.webp","blurhash":"U59aBQ?H00o~~W-;S$E100tQ-;IU9Zt7wvMd","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":26536,"triangles":388,"vertices":1164,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3149999976158142,-0.000008637521957233218,-0.14997756776037835],"max":[0.3149999976158142,0.5490086623174895,0.14997756776037835]},"sizeMeters":[0.63,0.549,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:30.111Z","updatedAt":"2026-10-25T10:08:28.531Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoseReelWallRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23536/v1/model.glb\" alt=\"Hose Reel Wall (Roadside Survival Stops)\" 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/23536/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/23536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23535","slug":"roadside-survival-stops-underground-fill-collar-aff14339","title":"Underground Fill Collar (Roadside Survival Stops)","summary":"Underground Fill Collar: 0.6 × 0.12 × 0.6 m nominal survival hatch assembly.","description":"Original weathered survival hatch. Nominal envelope 0.6m wide, 0.12m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form hatch; style collar. 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/roadside-survival-stops-underground-fill-collar-aff14339","cdnUrl":"https://cdn.3dassets.dev/assets/23535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-underground-fill-collar-aff14339","thumbnailUrl":"https://cdn.3dassets.dev/assets/23535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23535/v1/poster.webp","blurhash":"U49*0}-=00t7_4RjR$xu00IU%MM{00x]IAD%","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":3408,"triangles":48,"vertices":144,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0.00001281404919895035,-0.30000001192092896],"max":[0.30000001192092896,0.11998718326859203,0.30000001192092896]},"sizeMeters":[0.6,0.12,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:30.089Z","updatedAt":"2026-10-13T11:35:51.487Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UndergroundFillCollarRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23535/v1/model.glb\" alt=\"Underground Fill Collar (Roadside Survival Stops)\" 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/23535/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/23535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23537","slug":"roadside-survival-stops-spill-grate-296e933e","title":"Spill Grate (Roadside Survival Stops)","summary":"Spill Grate: 0.8 × 0.1 × 0.5 m nominal survival hatch assembly.","description":"Original weathered survival hatch. Nominal envelope 0.8m wide, 0.1m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form hatch; style grate. 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/roadside-survival-stops-spill-grate-296e933e","cdnUrl":"https://cdn.3dassets.dev/assets/23537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-spill-grate-296e933e","thumbnailUrl":"https://cdn.3dassets.dev/assets/23537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23537/v1/poster.webp","blurhash":"U9A13DtR00t74Toej]Rj4TIUayoy_NWBx]x]","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":8732,"triangles":132,"vertices":396,"meshes":2,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4000000059604645,-0.0000015262980255711933,-0.24998321854482838],"max":[0.4000000059604645,0.10000152704308363,0.24998321854482838]},"sizeMeters":[0.8,0.1,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:30.812Z","updatedAt":"2026-10-12T17:52:04.115Z","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/23537/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 SpillGrateRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23537/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/23537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23537/v1/model.glb\" alt=\"Spill Grate (Roadside Survival Stops)\" 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/23537/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/23537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23539","slug":"roadside-survival-stops-spill-sorbent-bin-52b57bac","title":"Spill Sorbent Bin (Roadside Survival Stops)","summary":"Spill Sorbent Bin: 0.7 × 0.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 0.8m high, 0.5m 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/roadside-survival-stops-spill-sorbent-bin-52b57bac","cdnUrl":"https://cdn.3dassets.dev/assets/23539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-spill-sorbent-bin-52b57bac","thumbnailUrl":"https://cdn.3dassets.dev/assets/23539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23539/v1/poster.webp","blurhash":"U18C%G^j030~~8R-Aqt51Hi{OX-A-Q$%J-AD","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":12880,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499984792899099,0,-0.2604832249225254],"max":[0.3499984792899099,0.800000011920929,0.2605141078667361]},"sizeMeters":[0.7,0.8,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:30.880Z","updatedAt":"2026-10-25T10:09:53.251Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23539/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpillSorbentBinRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23539/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23539/v1/model.glb\" alt=\"Spill Sorbent Bin (Roadside Survival Stops)\" 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/23539/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/23539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23538","slug":"roadside-survival-stops-windshield-wash-stand-1b90adbe","title":"Windshield Wash Stand (Roadside Survival Stops)","summary":"Windshield Wash Stand: 0.5 × 1 × 0.4 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.5m wide, 1m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape basin. 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/roadside-survival-stops-windshield-wash-stand-1b90adbe","cdnUrl":"https://cdn.3dassets.dev/assets/23538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-windshield-wash-stand-1b90adbe","thumbnailUrl":"https://cdn.3dassets.dev/assets/23538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23538/v1/poster.webp","blurhash":"U8BDWl%M00D%~pt74oM{00Rk?aof00M{~p%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":22068,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.25,0,-0.2000106814783166],"max":[0.25,1.2070307731628418,0.2000106814783166]},"sizeMeters":[0.5,1.207,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:30.836Z","updatedAt":"2026-10-06T04:38:54.935Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23538/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindshieldWashStandRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23538/v1/model.glb\" alt=\"Windshield Wash Stand (Roadside Survival Stops)\" 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/23538/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/23538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23540","slug":"roadside-survival-stops-oil-return-tank-7ba22ca6","title":"Oil Return Tank (Roadside Survival Stops)","summary":"Oil Return Tank: 0.7 × 1.2 × 0.7 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.7m wide, 1.2m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape boiler. 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/roadside-survival-stops-oil-return-tank-7ba22ca6","cdnUrl":"https://cdn.3dassets.dev/assets/23540/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-oil-return-tank-7ba22ca6","thumbnailUrl":"https://cdn.3dassets.dev/assets/23540/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23540/v1/poster.webp","blurhash":"U27K*l~q00000JIU-;-;00M{_N-;%gkCMxaK","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":11600,"triangles":204,"vertices":612,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3569999933242798,0,-0.2939999997615814],"max":[0.3570292405278208,1.184000015258789,0.2939999997615814]},"sizeMeters":[0.714,1.184,0.588],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:30.913Z","updatedAt":"2026-10-13T10:40:08.836Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23540/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OilReturnTankRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23540/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23540/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23540/v1/model.glb\" alt=\"Oil Return Tank (Roadside Survival Stops)\" 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/23540/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/23540/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23541","slug":"roadside-survival-stops-service-signal-pole-fd7f5b55","title":"Service Signal Pole (Roadside Survival Stops)","summary":"Service Signal Pole: 0.3 × 2.8 × 0.3 m nominal survival post assembly.","description":"Original weathered survival post. Nominal envelope 0.3m wide, 2.8m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form post; shape flag. 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/roadside-survival-stops-service-signal-pole-fd7f5b55","cdnUrl":"https://cdn.3dassets.dev/assets/23541/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-signal-pole-fd7f5b55","thumbnailUrl":"https://cdn.3dassets.dev/assets/23541/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23541/v1/poster.webp","blurhash":"U57Ae:xa01EL}?Rj0zx]yDofMdNGAus.;{Iq","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":12780,"triangles":96,"vertices":288,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5475070284986553,0,-0.19501785661978713],"max":[0.5475070284986553,2.825000047683716,0.19501785661978713]},"sizeMeters":[1.095,2.825,0.39],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:31.418Z","updatedAt":"2026-10-25T10:09:35.932Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23541/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceSignalPoleRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23541/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23541/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23541/v1/model.glb\" alt=\"Service Signal Pole (Roadside Survival Stops)\" 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/23541/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/23541/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23544","slug":"roadside-survival-stops-fuel-price-board-b3535fca","title":"Fuel Price Board (Roadside Survival Stops)","summary":"Fuel Price Board: 1 × 1.5 × 0.15 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 1m wide, 1.5m high, 0.15m 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/roadside-survival-stops-fuel-price-board-b3535fca","cdnUrl":"https://cdn.3dassets.dev/assets/23544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-fuel-price-board-b3535fca","thumbnailUrl":"https://cdn.3dassets.dev/assets/23544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23544/v1/poster.webp","blurhash":"U57T@0xt00IUVss.tRNH00RQ_Nx]?Hs.9ZNc","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":22832,"triangles":288,"vertices":864,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.5000305184598024,1.4901158085223187e-10,-0.09148397386347434],"max":[0.501230510804651,1.5011999607086182,0.09151785298395201]},"sizeMeters":[1.001,1.501,0.183],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:31.901Z","updatedAt":"2026-10-05T21:47:17.370Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FuelPriceBoardRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23544/v1/model.glb\" alt=\"Fuel Price Board (Roadside Survival Stops)\" 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/23544/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/23544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23543","slug":"roadside-survival-stops-canopy-direction-sign-477acfd9","title":"Canopy Direction Sign (Roadside Survival Stops)","summary":"Canopy Direction Sign: 1.5 × 0.5 × 0.1 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 1.5m wide, 0.5m high, 0.1m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape bolt. 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/roadside-survival-stops-canopy-direction-sign-477acfd9","cdnUrl":"https://cdn.3dassets.dev/assets/23543/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-canopy-direction-sign-477acfd9","thumbnailUrl":"https://cdn.3dassets.dev/assets/23543/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23543/v1/poster.webp","blurhash":"U38gQv-p00xa-B~CxaIA00v$~qjZRj4Tiw?v","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":15004,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,0.00003051858398184226,-0.06398931895381708],"max":[0.7512000203132629,0.5011694916756539,0.06398976320073918]},"sizeMeters":[1.501,0.501,0.128],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:32.844Z","updatedAt":"2026-10-12T22:40:41.905Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23543/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanopyDirectionSignRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23543/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23543/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23543/v1/model.glb\" alt=\"Canopy Direction Sign (Roadside Survival Stops)\" 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/23543/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/23543/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23542","slug":"roadside-survival-stops-rest-stop-map-frame-b7b15534","title":"Rest Stop Map Frame (Roadside Survival Stops)","summary":"Rest Stop Map Frame: 1.2 × 1 × 0.15 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 1.2m wide, 1m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape notice; roof 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/roadside-survival-stops-rest-stop-map-frame-b7b15534","cdnUrl":"https://cdn.3dassets.dev/assets/23542/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-map-frame-b7b15534","thumbnailUrl":"https://cdn.3dassets.dev/assets/23542/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23542/v1/poster.webp","blurhash":"U47m]G%M00IVnPs9t5SP01RP?ax^?^xZ8_I=","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":45652,"triangles":608,"vertices":1824,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6745004057884216,-0.00002138275119112354,-0.2262289821142047],"max":[0.6745004057884216,1.3350000381469727,0.224970700242978]},"sizeMeters":[1.349,1.335,0.451],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:31.808Z","updatedAt":"2026-10-05T13:01:05.542Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23542/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestStopMapFrameRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23542/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23542/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23542/v1/model.glb\" alt=\"Rest Stop Map Frame (Roadside Survival Stops)\" 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/23542/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/23542/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23547","slug":"roadside-survival-stops-height-restriction-frame-64990cf4","title":"Height Restriction Frame (Roadside Survival Stops)","summary":"Height Restriction Frame: 4 × 3.5 × 0.4 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 4m wide, 3.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof open; walls none. 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/roadside-survival-stops-height-restriction-frame-64990cf4","cdnUrl":"https://cdn.3dassets.dev/assets/23547/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-height-restriction-frame-64990cf4","thumbnailUrl":"https://cdn.3dassets.dev/assets/23547/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23547/v1/poster.webp","blurhash":"U367Dm,?aN=d}=-AI=R+OBt5J8EgI;$%xFEg","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":58100,"triangles":864,"vertices":2592,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2.069999933242798,-0.000046977195136577166,-0.26987639133314717],"max":[2.069999933242798,2.8000469295114208,0.26987639133314717]},"sizeMeters":[4.14,2.8,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:32.675Z","updatedAt":"2026-10-13T01:55:39.905Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23547/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeightRestrictionFrameRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23547/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23547/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23547/v1/model.glb\" alt=\"Height Restriction Frame (Roadside Survival Stops)\" 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/23547/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/23547/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23545","slug":"roadside-survival-stops-picnic-shelter-3bfedd67","title":"Picnic Shelter (Roadside Survival Stops)","summary":"Picnic Shelter: 3 × 2.8 × 2 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 3m wide, 2.8m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof gable; walls none. 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/roadside-survival-stops-picnic-shelter-3bfedd67","cdnUrl":"https://cdn.3dassets.dev/assets/23545/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-picnic-shelter-3bfedd67","thumbnailUrl":"https://cdn.3dassets.dev/assets/23545/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23545/v1/poster.webp","blurhash":"U47JnSs+D*%1~AxCE2t72HR*EfXS5mI;$ibc","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":91424,"triangles":1184,"vertices":3552,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.5953068733215332,4.126867201303952e-7,-1.0750928182832147],"max":[1.5953068733215332,2.934985196193508,1.076200008392334]},"sizeMeters":[3.191,2.935,2.151],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:32.564Z","updatedAt":"2026-10-13T02:23:01.811Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23545/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PicnicShelterRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23545/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23545/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23545/v1/model.glb\" alt=\"Picnic Shelter (Roadside Survival Stops)\" 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/23545/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/23545/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23546","slug":"roadside-survival-stops-roadside-rain-shelter-ab1fb56a","title":"Roadside Rain Shelter (Roadside Survival Stops)","summary":"Roadside Rain Shelter: 2.5 × 2.4 × 1.5 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 2.5m wide, 2.4m high, 1.5m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof shed; walls back. 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/roadside-survival-stops-roadside-rain-shelter-ab1fb56a","cdnUrl":"https://cdn.3dassets.dev/assets/23546/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-rain-shelter-ab1fb56a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23546/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23546/v1/poster.webp","blurhash":"U270b.SJ0}^O^i$gEgEi0hn,oMEN0zJ--AxD","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":134268,"triangles":1800,"vertices":5400,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.3360412120819092,0.00002467043650766776,-0.8263256082049614],"max":[1.3360412120819092,2.4649752437328036,0.8263256082049614]},"sizeMeters":[2.672,2.465,1.653],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:32.601Z","updatedAt":"2026-10-13T02:59:09.298Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23546/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsideRainShelterRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23546/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23546/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23546/v1/model.glb\" alt=\"Roadside Rain Shelter (Roadside Survival Stops)\" 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/23546/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/23546/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23548","slug":"roadside-survival-stops-service-kiosk-shell-0ee82b7b","title":"Service Kiosk Shell (Roadside Survival Stops)","summary":"Service Kiosk Shell: 2 × 2.8 × 2 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 2m wide, 2.8m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof flat; walls 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/roadside-survival-stops-service-kiosk-shell-0ee82b7b","cdnUrl":"https://cdn.3dassets.dev/assets/23548/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-kiosk-shell-0ee82b7b","thumbnailUrl":"https://cdn.3dassets.dev/assets/23548/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23548/v1/poster.webp","blurhash":"U87wKPRi57%M~Wi_E1o~pJaJM{o}bvNGM{%2","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":129380,"triangles":2064,"vertices":6192,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.075023675145354,0,-1.097045832060551],"max":[1.075023675145354,2.319999933242798,1.097045832060551]},"sizeMeters":[2.15,2.32,2.194],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:32.708Z","updatedAt":"2026-10-12T22:32:17.969Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23548/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceKioskShellRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23548/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23548/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23548/v1/model.glb\" alt=\"Service Kiosk Shell (Roadside Survival Stops)\" 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/23548/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/23548/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23549","slug":"roadside-survival-stops-maintenance-shed-shell-7048924e","title":"Maintenance Shed Shell (Roadside Survival Stops)","summary":"Maintenance Shed Shell: 2 × 2.6 × 2 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 2m wide, 2.6m high, 2m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof shed; walls door. 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/roadside-survival-stops-maintenance-shed-shell-7048924e","cdnUrl":"https://cdn.3dassets.dev/assets/23549/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-maintenance-shed-shell-7048924e","thumbnailUrl":"https://cdn.3dassets.dev/assets/23549/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23549/v1/poster.webp","blurhash":"U17A3p^i0NjcsEIpJOSw0}Eg#pwg5Ajc=_t6","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":267380,"triangles":3744,"vertices":11232,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.089745723746805,0,-1.0888298284648397],"max":[1.0897347927093506,2.6649999618530273,1.0888298284648397]},"sizeMeters":[2.179,2.665,2.178],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:34.253Z","updatedAt":"2026-10-12T22:03:23.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23549/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MaintenanceShedShellRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23549/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23549/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23549/v1/model.glb\" alt=\"Maintenance Shed Shell (Roadside Survival Stops)\" 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/23549/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/23549/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23551","slug":"roadside-survival-stops-roadside-toilet-shell-fac92926","title":"Roadside Toilet Shell (Roadside Survival Stops)","summary":"Roadside Toilet Shell: 1.5 × 2.5 × 1.8 m nominal survival shelter assembly.","description":"Original weathered survival shelter. Nominal envelope 1.5m wide, 2.5m high, 1.8m deep; applied framing, handles or rails can extend beyond this. Construction: form shelter; roof flat; walls door. 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/roadside-survival-stops-roadside-toilet-shell-fac92926","cdnUrl":"https://cdn.3dassets.dev/assets/23551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-toilet-shell-fac92926","thumbnailUrl":"https://cdn.3dassets.dev/assets/23551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23551/v1/poster.webp","blurhash":"U58M,Kng0z%M~qM{IV%NX.IUM{%Nb^M_a0%N","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":222464,"triangles":3672,"vertices":11016,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8337438362267294,-0.00004296197909281485,-0.9887499809265137],"max":[0.8338230109691463,2.0950000286102295,0.9887499809265137]},"sizeMeters":[1.668,2.095,1.977],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:33.625Z","updatedAt":"2026-10-12T22:29:17.669Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23551/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsideToiletShellRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23551/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23551/v1/model.glb\" alt=\"Roadside Toilet Shell (Roadside Survival Stops)\" 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/23551/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/23551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23550","slug":"roadside-survival-stops-restroom-sink-trough-cba8cb5d","title":"Restroom Sink Trough (Roadside Survival Stops)","summary":"Restroom Sink Trough: 1.4 × 0.9 × 0.5 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 1.4m wide, 0.9m 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/roadside-survival-stops-restroom-sink-trough-cba8cb5d","cdnUrl":"https://cdn.3dassets.dev/assets/23550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-sink-trough-cba8cb5d","thumbnailUrl":"https://cdn.3dassets.dev/assets/23550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23550/v1/poster.webp","blurhash":"UHE3Cz-p9Fxu~p-;M{IU00t6t6D*00M|%2s:","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":22088,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.000008502725271752887,-0.2499679513081213],"max":[0.699999988079071,1.1070626170670077,0.2499679513081213]},"sizeMeters":[1.4,1.107,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:33.510Z","updatedAt":"2026-10-05T23:00:06.690Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23550/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestroomSinkTroughRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23550/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23550/v1/model.glb\" alt=\"Restroom Sink Trough (Roadside Survival Stops)\" 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/23550/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/23550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23553","slug":"roadside-survival-stops-restroom-toilet-c760a88a","title":"Restroom Toilet (Roadside Survival Stops)","summary":"Restroom Toilet: 0.55 × 0.7 × 0.7 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.55m wide, 0.7m high, 0.7m 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/roadside-survival-stops-restroom-toilet-c760a88a","cdnUrl":"https://cdn.3dassets.dev/assets/23553/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-toilet-c760a88a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23553/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23553/v1/poster.webp","blurhash":"UBC?ozNG00oM~q9GIU~p4oM{%L-;M{t6IVIV","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":31940,"triangles":628,"vertices":1884,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.25301965616822375,0,-0.3347431134207334],"max":[0.25301965616822375,0.8050000071525574,0.3347431134207334]},"sizeMeters":[0.506,0.805,0.669],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:34.322Z","updatedAt":"2026-10-13T01:39:51.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23553/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestroomToiletRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23553/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23553/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23553/v1/model.glb\" alt=\"Restroom Toilet (Roadside Survival Stops)\" 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/23553/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/23553/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23552","slug":"roadside-survival-stops-service-floor-sump-67a69e57","title":"Service Floor Sump (Roadside Survival Stops)","summary":"Service Floor Sump: 1 × 0.5 × 1 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 1m wide, 0.5m high, 1m 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/roadside-survival-stops-service-floor-sump-67a69e57","cdnUrl":"https://cdn.3dassets.dev/assets/23552/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-floor-sump-67a69e57","thumbnailUrl":"https://cdn.3dassets.dev/assets/23552/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23552/v1/poster.webp","blurhash":"U3D,1K~q00t8_3M{V@%M009E4oD%D$-;9F9F","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":9380,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.000021364446749314037,-0.5],"max":[0.5,0.1999786385334829,0.5]},"sizeMeters":[1,0.2,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:34.270Z","updatedAt":"2026-10-12T22:52:30.814Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23552/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceFloorSumpRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23552/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23552/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23552/v1/model.glb\" alt=\"Service Floor Sump (Roadside Survival Stops)\" 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/23552/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/23552/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23554","slug":"roadside-survival-stops-drinking-fountain-eb08e6c6","title":"Drinking Fountain (Roadside Survival Stops)","summary":"Drinking Fountain: 0.45 × 1 × 0.4 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.45m wide, 1m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape basin. 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/roadside-survival-stops-drinking-fountain-eb08e6c6","cdnUrl":"https://cdn.3dassets.dev/assets/23554/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-drinking-fountain-eb08e6c6","thumbnailUrl":"https://cdn.3dassets.dev/assets/23554/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23554/v1/poster.webp","blurhash":"UAA,%o-:009G~poe4oNH4nWA-;kD00Rj_2xu","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":22080,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2250174711711545,0,-0.2000053354408262],"max":[0.2250174711711545,1.2070307731628418,0.2000053354408262]},"sizeMeters":[0.45,1.207,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:34.374Z","updatedAt":"2026-10-13T02:13:56.525Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23554/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrinkingFountainRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23554/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23554/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23554/v1/model.glb\" alt=\"Drinking Fountain (Roadside Survival Stops)\" 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/23554/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/23554/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23555","slug":"roadside-survival-stops-roadside-picnic-bench-9cb6e902","title":"Roadside Picnic Bench (Roadside Survival Stops)","summary":"Roadside Picnic Bench: 1.8 × 0.45 × 0.4 m nominal survival bed assembly.","description":"Original weathered survival bed. Nominal envelope 1.8m 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/roadside-survival-stops-roadside-picnic-bench-9cb6e902","cdnUrl":"https://cdn.3dassets.dev/assets/23555/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-picnic-bench-9cb6e902","thumbnailUrl":"https://cdn.3dassets.dev/assets/23555/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23555/v1/poster.webp","blurhash":"U26@m1tl9t-9~p~BbuEf00=|?GEz000ewI-U","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":11708,"triangles":84,"vertices":252,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.901199996471405,0.00006966909241493124,-0.2249768355704243],"max":[0.901199996471405,0.39493034163642116,0.2249768355704243]},"sizeMeters":[1.802,0.395,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:35.515Z","updatedAt":"2026-10-25T08:52:14.093Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23555/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsidePicnicBenchRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23555/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23555/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23555/v1/model.glb\" alt=\"Roadside Picnic Bench (Roadside Survival Stops)\" 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/23555/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/23555/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23556","slug":"roadside-survival-stops-roadside-table-frame-bdf258c5","title":"Roadside Table Frame (Roadside Survival Stops)","summary":"Roadside Table Frame: 1.8 × 0.75 × 0.8 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.8m wide, 0.75m high, 0.8m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape table. 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/roadside-survival-stops-roadside-table-frame-bdf258c5","cdnUrl":"https://cdn.3dassets.dev/assets/23556/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-table-frame-bdf258c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/23556/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23556/v1/poster.webp","blurhash":"U46jXaazEN$$}r-ANbNb5l$%j[Eg5SOA$%Rn","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":10552,"triangles":72,"vertices":216,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000002278954042589376,-0.39994200423715043],"max":[0.8999999761581421,0.7500022789540426,0.39994200423715043]},"sizeMeters":[1.8,0.75,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:35.534Z","updatedAt":"2026-10-06T00:04:34.435Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23556/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsideTableFrameRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23556/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23556/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23556/v1/model.glb\" alt=\"Roadside Table Frame (Roadside Survival Stops)\" 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/23556/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/23556/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23557","slug":"roadside-survival-stops-maintenance-key-rack-0c0f8cc2","title":"Maintenance Key Rack (Roadside Survival Stops)","summary":"Maintenance Key Rack: 0.6 × 0.5 × 0.2 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.6m wide, 0.5m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape pegs. 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/roadside-survival-stops-maintenance-key-rack-0c0f8cc2","cdnUrl":"https://cdn.3dassets.dev/assets/23557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-maintenance-key-rack-0c0f8cc2","thumbnailUrl":"https://cdn.3dassets.dev/assets/23557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23557/v1/poster.webp","blurhash":"U27m~a^,00b^;0^kgPEK00MI~WEkGc0JQl-=","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":15396,"triangles":172,"vertices":516,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0.000008542699465964587,-0.11251297359562762],"max":[0.30000001192092896,0.0799914555123947,0.11248809866879818]},"sizeMeters":[0.6,0.08,0.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:35.306Z","updatedAt":"2026-10-05T21:37:33.973Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23557/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MaintenanceKeyRackRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23557/v1/model.glb\" alt=\"Maintenance Key Rack (Roadside Survival Stops)\" 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/23557/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/23557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23558","slug":"roadside-survival-stops-roadside-bulletin-locker-15b9ba6a","title":"Roadside Bulletin Locker (Roadside Survival Stops)","summary":"Roadside Bulletin Locker: 0.8 × 1.1 × 0.3 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 1.1m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape postbox. 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/roadside-survival-stops-roadside-bulletin-locker-15b9ba6a","cdnUrl":"https://cdn.3dassets.dev/assets/23558/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-bulletin-locker-15b9ba6a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23558/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23558/v1/poster.webp","blurhash":"U46@4l}s0z9vozkBjqaf5SEMn%xGRjnis:W=","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":20408,"triangles":200,"vertices":600,"meshes":5,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3999908531167253,0,-0.19000915418484374],"max":[0.3999908531167253,1.100000023841858,0.19001939467726275]},"sizeMeters":[0.8,1.1,0.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:35.480Z","updatedAt":"2026-10-25T12:54:53.412Z","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/23558/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 RoadsideBulletinLockerRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23558/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/23558/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23558/v1/model.glb\" alt=\"Roadside Bulletin Locker (Roadside Survival Stops)\" 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/23558/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/23558/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23559","slug":"roadside-survival-stops-payphone-enclosure-5dfe5d4a","title":"Payphone Enclosure (Roadside Survival Stops)","summary":"Payphone Enclosure: 0.6 × 1.2 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 1.2m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape phone. 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/roadside-survival-stops-payphone-enclosure-5dfe5d4a","cdnUrl":"https://cdn.3dassets.dev/assets/23559/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-payphone-enclosure-5dfe5d4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23559/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23559/v1/poster.webp","blurhash":"U170i5}@010f]%soJVOTX3EfAH-V,os:OsJ*","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":21780,"triangles":272,"vertices":816,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.300045789686962,0,-0.21047559206585142],"max":[0.300045789686962,1.2000000476837158,0.21049775996859627]},"sizeMeters":[0.6,1.2,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:35.968Z","updatedAt":"2026-10-25T14:19:38.299Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23559/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PayphoneEnclosureRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23559/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23559/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23559/v1/model.glb\" alt=\"Payphone Enclosure (Roadside Survival Stops)\" 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/23559/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/23559/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23560","slug":"roadside-survival-stops-emergency-call-post-03ecd16c","title":"Emergency Call Post (Roadside Survival Stops)","summary":"Emergency Call Post: 0.3 × 1.5 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.3m wide, 1.5m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape call. 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/roadside-survival-stops-emergency-call-post-03ecd16c","cdnUrl":"https://cdn.3dassets.dev/assets/23560/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-emergency-call-post-03ecd16c","thumbnailUrl":"https://cdn.3dassets.dev/assets/23560/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23560/v1/poster.webp","blurhash":"U46RW6xu00IUM|V@oytS_4of9EV[V[WBW-t7","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":11556,"triangles":188,"vertices":564,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.14994963937115036,6.705522803684971e-10,-0.14994963937115036],"max":[0.14994963937115036,1.4249999523162842,0.14994963937115036]},"sizeMeters":[0.3,1.425,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:35.998Z","updatedAt":"2026-10-05T11:32:20.761Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23560/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EmergencyCallPostRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23560/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23560/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23560/v1/model.glb\" alt=\"Emergency Call Post (Roadside Survival Stops)\" 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/23560/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/23560/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23562","slug":"roadside-survival-stops-vending-cabinet-shell-91192335","title":"Vending Cabinet Shell (Roadside Survival Stops)","summary":"Vending Cabinet Shell: 0.9 × 1.8 × 0.7 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 1.8m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape vending. 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/roadside-survival-stops-vending-cabinet-shell-91192335","cdnUrl":"https://cdn.3dassets.dev/assets/23562/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vending-cabinet-shell-91192335","thumbnailUrl":"https://cdn.3dassets.dev/assets/23562/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23562/v1/poster.webp","blurhash":"U07Td[?]0000[lvTPDu000}S.T6Uzt--Ng9c","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":17976,"triangles":192,"vertices":576,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.450068654723573,0,-0.3749526930001962],"max":[0.450068654723573,1.7999999523162842,0.3750057934911613]},"sizeMeters":[0.9,1.8,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:36.128Z","updatedAt":"2026-10-10T02:15:57.989Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23562/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VendingCabinetShellRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23562/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23562/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23562/v1/model.glb\" alt=\"Vending Cabinet Shell (Roadside Survival Stops)\" 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/23562/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/23562/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23561","slug":"roadside-survival-stops-service-window-counter-59cc1d76","title":"Service Window Counter (Roadside Survival Stops)","summary":"Service Window Counter: 1.6 × 1 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.6m wide, 1m 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/roadside-survival-stops-service-window-counter-59cc1d76","cdnUrl":"https://cdn.3dassets.dev/assets/23561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-window-counter-59cc1d76","thumbnailUrl":"https://cdn.3dassets.dev/assets/23561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23561/v1/poster.webp","blurhash":"U57]w[xF9^xY}r-AI=J89]xFj[J8R*oJj[Nb","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":11996,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.800000011920929,0.00003356291034323222,-0.31253395649891086],"max":[0.800000011920929,0.9999664370896568,0.31253395649891086]},"sizeMeters":[1.6,1,0.625],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:36.119Z","updatedAt":"2026-10-25T13:26:45.917Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23561/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceWindowCounterRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23561/v1/model.glb\" alt=\"Service Window Counter (Roadside Survival Stops)\" 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/23561/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/23561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23563","slug":"roadside-survival-stops-convenience-stock-rack-2158b594","title":"Convenience Stock Rack (Roadside Survival Stops)","summary":"Convenience Stock Rack: 1.2 × 1.6 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 1.6m high, 0.45m 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/roadside-survival-stops-convenience-stock-rack-2158b594","cdnUrl":"https://cdn.3dassets.dev/assets/23563/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-convenience-stock-rack-2158b594","thumbnailUrl":"https://cdn.3dassets.dev/assets/23563/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23563/v1/poster.webp","blurhash":"U17JnM~8030~}=-TNaI;KI$hr^NK=^-USNEM","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":15064,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.599969490430766,0,-0.2355312912031373],"max":[0.599969490430766,1.600000023841858,0.23550799797554056]},"sizeMeters":[1.2,1.6,0.471],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:37.039Z","updatedAt":"2026-10-05T21:37:43.663Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23563/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConvenienceStockRackRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23563/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23563/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23563/v1/model.glb\" alt=\"Convenience Stock Rack (Roadside Survival Stops)\" 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/23563/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/23563/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23564","slug":"roadside-survival-stops-roadside-litter-bin-10662781","title":"Roadside Litter Bin (Roadside Survival Stops)","summary":"Roadside Litter Bin: 0.6 × 0.9 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 0.9m high, 0.5m 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/roadside-survival-stops-roadside-litter-bin-10662781","cdnUrl":"https://cdn.3dassets.dev/assets/23564/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-litter-bin-10662781","thumbnailUrl":"https://cdn.3dassets.dev/assets/23564/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23564/v1/poster.webp","blurhash":"U27cvt~A0g0#=sR%Nat6AWJ8wf$6xss:ShR+","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":12900,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30001830315791456,0,-0.2605289923381928],"max":[0.30001830315791456,0.8999999761581421,0.2605141073073798]},"sizeMeters":[0.6,0.9,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:37.167Z","updatedAt":"2026-10-25T13:49:47.650Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23564/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsideLitterBinRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23564/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23564/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23564/v1/model.glb\" alt=\"Roadside Litter Bin (Roadside Survival Stops)\" 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/23564/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/23564/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23565","slug":"roadside-survival-stops-vehicle-service-stand-71f071a4","title":"Vehicle Service Stand (Roadside Survival Stops)","summary":"Vehicle Service Stand: 1 × 1 × 0.7 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 1m wide, 1m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape horse. 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/roadside-survival-stops-vehicle-service-stand-71f071a4","cdnUrl":"https://cdn.3dassets.dev/assets/23565/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vehicle-service-stand-71f071a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/23565/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23565/v1/poster.webp","blurhash":"U27,71}X0hIX]o#qOATDAVSeAFI=$Os.OCNb","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":19932,"triangles":228,"vertices":684,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.5000227867372778,0,-0.3500074164476743],"max":[0.5000227867372778,1.1185694932937622,0.3500074164476743]},"sizeMeters":[1,1.119,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:38.223Z","updatedAt":"2026-10-12T21:51:43.070Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23565/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VehicleServiceStandRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23565/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23565/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23565/v1/model.glb\" alt=\"Vehicle Service Stand (Roadside Survival Stops)\" 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/23565/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/23565/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23566","slug":"roadside-survival-stops-tyre-storage-rack-7850e809","title":"Tyre Storage Rack (Roadside Survival Stops)","summary":"Tyre Storage Rack: 1.5 × 1.5 × 0.6 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 1.5m wide, 1.5m high, 0.6m 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/roadside-survival-stops-tyre-storage-rack-7850e809","cdnUrl":"https://cdn.3dassets.dev/assets/23566/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-tyre-storage-rack-7850e809","thumbnailUrl":"https://cdn.3dassets.dev/assets/23566/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23566/v1/poster.webp","blurhash":"U06%p7?q00$x^Q].AUFX0ev,185A}+=w5F0%","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":58728,"triangles":1056,"vertices":3168,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,0,-0.2999588000122074],"max":[0.75,1.5600159983471125,0.2999588000122074]},"sizeMeters":[1.5,1.56,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:37.380Z","updatedAt":"2026-10-05T07:59:48.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23566/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TyreStorageRackRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23566/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23566/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23566/v1/model.glb\" alt=\"Tyre Storage Rack (Roadside Survival Stops)\" 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/23566/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/23566/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23567","slug":"roadside-survival-stops-parts-washing-tub-1bca1f6b","title":"Parts Washing Tub (Roadside Survival Stops)","summary":"Parts Washing Tub: 1 × 0.85 × 0.65 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 1m wide, 0.85m 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/roadside-survival-stops-parts-washing-tub-1bca1f6b","cdnUrl":"https://cdn.3dassets.dev/assets/23567/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-parts-washing-tub-1bca1f6b","thumbnailUrl":"https://cdn.3dassets.dev/assets/23567/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23567/v1/poster.webp","blurhash":"UYE:0htRE1of~pxtM|WBIUt6WBWB9Gj@RjWB","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":9692,"triangles":152,"vertices":456,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.0000022829277462332875,-0.3249916074098941],"max":[0.5,0.8499832327011816,0.3249916074098941]},"sizeMeters":[1,0.85,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:37.693Z","updatedAt":"2026-10-13T09:59:46.506Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23567/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PartsWashingTubRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23567/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23567/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23567/v1/model.glb\" alt=\"Parts Washing Tub (Roadside Survival Stops)\" 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/23567/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/23567/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23568","slug":"roadside-survival-stops-service-tool-cabinet-363921e5","title":"Service Tool Cabinet (Roadside Survival Stops)","summary":"Service Tool Cabinet: 0.9 × 1 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 1m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawers; 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/roadside-survival-stops-service-tool-cabinet-363921e5","cdnUrl":"https://cdn.3dassets.dev/assets/23568/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-tool-cabinet-363921e5","thumbnailUrl":"https://cdn.3dassets.dev/assets/23568/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23568/v1/poster.webp","blurhash":"U18C{t~U020y~8wMS1btE1IWAukX%0%1WY9^","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":24956,"triangles":308,"vertices":924,"meshes":5,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4500106814783166,0,-0.33752746069806394],"max":[0.4500106814783166,1,0.33748026775283113]},"sizeMeters":[0.9,1,0.675],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:37.709Z","updatedAt":"2026-10-05T22:08:55.650Z","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/23568/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 ServiceToolCabinetRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23568/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/23568/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23568/v1/model.glb\" alt=\"Service Tool Cabinet (Roadside Survival Stops)\" 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/23568/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/23568/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23570","slug":"roadside-survival-stops-garage-wall-cubby-8c9109cf","title":"Garage Wall Cubby (Roadside Survival Stops)","summary":"Garage Wall Cubby: 1.2 × 1 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 1m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; 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/roadside-survival-stops-garage-wall-cubby-8c9109cf","cdnUrl":"https://cdn.3dassets.dev/assets/23570/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-garage-wall-cubby-8c9109cf","thumbnailUrl":"https://cdn.3dassets.dev/assets/23570/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23570/v1/poster.webp","blurhash":"U68{dn}YM|=J-U-Aw{e:AXFdJUJ9S}oyS#E#","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":15024,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000021382825696969476,-0.1854992429182244],"max":[0.6000000238418579,1.000021382825697,0.18548601972455417]},"sizeMeters":[1.2,1,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:37.887Z","updatedAt":"2026-10-13T12:12:08.237Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23570/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GarageWallCubbyRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23570/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23570/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23570/v1/model.glb\" alt=\"Garage Wall Cubby (Roadside Survival Stops)\" 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/23570/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/23570/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23569","slug":"roadside-survival-stops-battery-test-pedestal-d5e5e60b","title":"Battery Test Pedestal (Roadside Survival Stops)","summary":"Battery Test Pedestal: 0.5 × 0.9 × 0.4 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.5m wide, 0.9m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape meter. 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/roadside-survival-stops-battery-test-pedestal-d5e5e60b","cdnUrl":"https://cdn.3dassets.dev/assets/23569/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-battery-test-pedestal-d5e5e60b","thumbnailUrl":"https://cdn.3dassets.dev/assets/23569/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23569/v1/poster.webp","blurhash":"U39H9D%N00D$00V@%Noz_NWo9FxG_4ogDiV?","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":11536,"triangles":188,"vertices":564,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.25000015797352554,6.705522803684971e-10,-0.19999229838097135],"max":[0.25000015797352554,0.8550000190734863,0.19999229838097135]},"sizeMeters":[0.5,0.855,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T20:11:37.817Z","updatedAt":"2026-10-06T05:24:59.244Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23569/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BatteryTestPedestalRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23569/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23569/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23569/v1/model.glb\" alt=\"Battery Test Pedestal (Roadside Survival Stops)\" 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/23569/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/23569/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23571","slug":"roadside-survival-stops-service-jib-hoist-4728eaba","title":"Service Jib Hoist (Roadside Survival Stops)","summary":"Service Jib Hoist: 1 × 2 × 0.8 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 1m wide, 2m high, 0.8m 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/roadside-survival-stops-service-jib-hoist-4728eaba","cdnUrl":"https://cdn.3dassets.dev/assets/23571/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-jib-hoist-4728eaba","thumbnailUrl":"https://cdn.3dassets.dev/assets/23571/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23571/v1/poster.webp","blurhash":"U37_4n~q0000-;t79ZD%00M{-;V@x]%gslDi","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":38628,"triangles":624,"vertices":1872,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5249749969642264,0,-0.4199862080883215],"max":[0.5249749969642264,2.0350000858306885,0.4199862080883215]},"sizeMeters":[1.05,2.035,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T20:11:38.796Z","updatedAt":"2026-10-13T03:03:57.930Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23571/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceJibHoistRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23571/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23571/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23571/v1/model.glb\" alt=\"Service Jib Hoist (Roadside Survival Stops)\" 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/23571/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/23571/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23572","slug":"roadside-survival-stops-vehicle-wheel-guide-111728da","title":"Vehicle Wheel Guide (Roadside Survival Stops)","summary":"Vehicle Wheel Guide: 2 × 0.15 × 0.2 m nominal survival beam assembly.","description":"Original weathered survival beam. Nominal envelope 2m wide, 0.15m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form beam; shape track. 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/roadside-survival-stops-vehicle-wheel-guide-111728da","cdnUrl":"https://cdn.3dassets.dev/assets/23572/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vehicle-wheel-guide-111728da","thumbnailUrl":"https://cdn.3dassets.dev/assets/23572/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23572/v1/poster.webp","blurhash":"U58g?IxaDitR-;_NWoM{00tR_3M{9F00xu%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":7352,"triangles":132,"vertices":396,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.000046543707183127614,-0.0999786370433668],"max":[1,0.14995346225328135,0.0999786370433668]},"sizeMeters":[2,0.15,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T20:11:38.930Z","updatedAt":"2026-10-05T20:36:05.965Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23572/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VehicleWheelGuideRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23572/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23572/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23572/v1/model.glb\" alt=\"Vehicle Wheel Guide (Roadside Survival Stops)\" 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/23572/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/23572/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23573","slug":"roadside-survival-stops-service-pit-ladder-fcf2047d","title":"Service Pit Ladder (Roadside Survival Stops)","summary":"Service Pit Ladder: 0.55 × 1.5 × 0.18 m nominal survival ladder assembly.","description":"Original weathered survival ladder. Nominal envelope 0.55m wide, 1.5m high, 0.18m 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/roadside-survival-stops-service-pit-ladder-fcf2047d","cdnUrl":"https://cdn.3dassets.dev/assets/23573/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-pit-ladder-fcf2047d","thumbnailUrl":"https://cdn.3dassets.dev/assets/23573/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23573/v1/poster.webp","blurhash":"U27-f[oz00V@~XtR4-IU8_WB.8xu%Mt7IoM_","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":11780,"triangles":224,"vertices":672,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.3100299081392865,0,-0.03497421185949278],"max":[0.3100299081392865,1.5,0.03497421185949278]},"sizeMeters":[0.62,1.5,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T20:11:39.135Z","updatedAt":"2026-10-06T01:13:46.834Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23573/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServicePitLadderRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23573/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23573/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23573/v1/model.glb\" alt=\"Service Pit Ladder (Roadside Survival Stops)\" 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/23573/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/23573/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23574","slug":"roadside-survival-stops-oil-drain-cart-aaf8726a","title":"Oil Drain Cart (Roadside Survival Stops)","summary":"Oil Drain Cart: 0.7 × 0.9 × 0.7 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.7m wide, 0.9m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape funnel. 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/roadside-survival-stops-oil-drain-cart-aaf8726a","cdnUrl":"https://cdn.3dassets.dev/assets/23574/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-oil-drain-cart-aaf8726a","thumbnailUrl":"https://cdn.3dassets.dev/assets/23574/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23574/v1/poster.webp","blurhash":"UBAAm.t700V@xuWBIUoLofayRjja_NofMxj[","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":23108,"triangles":444,"vertices":1332,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3149725403679328,-0.0000018294156485104685,-0.3149725403679328],"max":[0.3149725403679328,0.8550000190734863,0.3149725403679328]},"sizeMeters":[0.63,0.855,0.63],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:39.360Z","updatedAt":"2026-10-13T12:00:08.781Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23574/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OilDrainCartRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23574/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23574/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23574/v1/model.glb\" alt=\"Oil Drain Cart (Roadside Survival Stops)\" 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/23574/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/23574/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23575","slug":"roadside-survival-stops-shop-exhaust-hood-e50f23df","title":"Shop Exhaust Hood (Roadside Survival Stops)","summary":"Shop Exhaust Hood: 0.8 × 0.8 × 0.6 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.8m wide, 0.8m high, 0.6m 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/roadside-survival-stops-shop-exhaust-hood-e50f23df","cdnUrl":"https://cdn.3dassets.dev/assets/23575/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shop-exhaust-hood-e50f23df","thumbnailUrl":"https://cdn.3dassets.dev/assets/23575/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23575/v1/poster.webp","blurhash":"UHCs%C%g4mj?_NxuMxV@ITRjWBj[kBt7WBRP","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":5688,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000011595543657538787,-0.299984745215383],"max":[0.4000000059604645,0.6799884116088999,0.299984745215383]},"sizeMeters":[0.8,0.68,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:39.395Z","updatedAt":"2026-10-25T10: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/23575/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShopExhaustHoodRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23575/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23575/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23575/v1/model.glb\" alt=\"Shop Exhaust Hood (Roadside Survival Stops)\" 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/23575/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/23575/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23576","slug":"roadside-survival-stops-rainwater-chute-ec80e043","title":"Rainwater Chute (Roadside Survival Stops)","summary":"Rainwater Chute: 1 × 0.2 × 0.25 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 1m wide, 0.2m high, 0.25m 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/roadside-survival-stops-rainwater-chute-ec80e043","cdnUrl":"https://cdn.3dassets.dev/assets/23576/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rainwater-chute-ec80e043","thumbnailUrl":"https://cdn.3dassets.dev/assets/23576/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23576/v1/poster.webp","blurhash":"U5AAp^%M4Tx[?c_NbFIT00xu.8Mx9F4ms:a#","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":2752,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.000021364446749314037,-0.1250190740684225],"max":[0.5,0.1999786385334829,0.1250190740684225]},"sizeMeters":[1,0.2,0.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:39.438Z","updatedAt":"2026-10-12T21:30:28.941Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23576/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RainwaterChuteRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23576/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23576/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23576/v1/model.glb\" alt=\"Rainwater Chute (Roadside Survival Stops)\" 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/23576/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/23576/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23577","slug":"roadside-survival-stops-restroom-divider-4ed1e7d2","title":"Restroom Divider (Roadside Survival Stops)","summary":"Restroom Divider: 1 × 1.8 × 0.08 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 1m wide, 1.8m high, 0.08m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; pattern canvas. 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/roadside-survival-stops-restroom-divider-4ed1e7d2","cdnUrl":"https://cdn.3dassets.dev/assets/23577/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-divider-4ed1e7d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/23577/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23577/v1/poster.webp","blurhash":"U38z#z=_000Ni1xGu1Ip01Rl~ptirZs.XkM}","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":34584,"triangles":480,"vertices":1440,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5000579941071507,0,-0.05746025066857955],"max":[0.5000579941071507,1.801200032234192,0.06595925776746711]},"sizeMeters":[1,1.801,0.123],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:11:39.510Z","updatedAt":"2026-10-25T14:34:46.914Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23577/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RestroomDividerRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23577/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23577/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23577/v1/model.glb\" alt=\"Restroom Divider (Roadside Survival Stops)\" 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/23577/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/23577/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23578","slug":"roadside-survival-stops-shop-security-grille-1d82d95d","title":"Shop Security Grille (Roadside Survival Stops)","summary":"Shop Security Grille: 1.2 × 2.2 × 0.1 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 1.2m wide, 2.2m high, 0.1m 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/roadside-survival-stops-shop-security-grille-1d82d95d","cdnUrl":"https://cdn.3dassets.dev/assets/23578/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shop-security-grille-1d82d95d","thumbnailUrl":"https://cdn.3dassets.dev/assets/23578/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23578/v1/poster.webp","blurhash":"U38;lU?b00Di~qxu9FRi4TRj?vt7?boLD%WV","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":23032,"triangles":408,"vertices":1224,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6166461209487315,0,-0.0815088387419546],"max":[0.616680124352472,2.200000071525574,0.0815088367750013]},"sizeMeters":[1.233,2.2,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:39.831Z","updatedAt":"2026-10-12T21:26:37.668Z","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/23578/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 ShopSecurityGrilleRoadsideSurvivalStops(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/23578/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/23578/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23578/v1/model.glb\" alt=\"Shop Security Grille (Roadside Survival Stops)\" 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/23578/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/23578/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"23579","slug":"roadside-survival-stops-pump-fire-equipment-frame-257cba13","title":"Pump Fire Equipment Frame (Roadside Survival Stops)","summary":"Pump Fire Equipment Frame: 0.9 × 1.4 × 0.4 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.9m wide, 1.4m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape slots. 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/roadside-survival-stops-pump-fire-equipment-frame-257cba13","cdnUrl":"https://cdn.3dassets.dev/assets/23579/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-fire-equipment-frame-257cba13","thumbnailUrl":"https://cdn.3dassets.dev/assets/23579/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23579/v1/poster.webp","blurhash":"U16Z%m}?040$=xxGI;OA6KJPi~r^tMW-IqR,","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":22100,"triangles":264,"vertices":792,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.4500320367709498,0,-0.20801110519504118],"max":[0.4500320367709498,1.399999976158142,0.20801110519504118]},"sizeMeters":[0.9,1.4,0.416],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T20:11:40.456Z","updatedAt":"2026-10-12T18:24:35.504Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23579/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpFireEquipmentFrameRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23579/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23579/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23579/v1/model.glb\" alt=\"Pump Fire Equipment Frame (Roadside Survival Stops)\" 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/23579/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/23579/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23580","slug":"roadside-survival-stops-roadside-clock-mount-63924e33","title":"Roadside Clock Mount (Roadside Survival Stops)","summary":"Roadside Clock Mount: 0.6 × 0.8 × 0.3 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 0.8m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape meter. 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/roadside-survival-stops-roadside-clock-mount-63924e33","cdnUrl":"https://cdn.3dassets.dev/assets/23580/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-clock-mount-63924e33","thumbnailUrl":"https://cdn.3dassets.dev/assets/23580/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23580/v1/poster.webp","blurhash":"U49aKp-;009E9EtRozM{.8M{D%t8_N-;Mx8_","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":11572,"triangles":188,"vertices":564,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3000268522587826,6.705522803684971e-10,-0.1499844335457785],"max":[0.3000268522587826,0.7599999904632568,0.1499844335457785]},"sizeMeters":[0.6,0.76,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:40.686Z","updatedAt":"2026-10-25T14:02:18.538Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23580/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadsideClockMountRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23580/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23580/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23580/v1/model.glb\" alt=\"Roadside Clock Mount (Roadside Survival Stops)\" 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/23580/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/23580/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23581","slug":"roadside-survival-stops-utility-cable-overpass-95b9f605","title":"Utility Cable Overpass (Roadside Survival Stops)","summary":"Utility Cable Overpass: 2 × 0.6 × 0.2 m nominal survival truss assembly.","description":"Original weathered survival truss. Nominal envelope 2m wide, 0.6m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form truss; shape queen. 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/roadside-survival-stops-utility-cable-overpass-95b9f605","cdnUrl":"https://cdn.3dassets.dev/assets/23581/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-utility-cable-overpass-95b9f605","thumbnailUrl":"https://cdn.3dassets.dev/assets/23581/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23581/v1/poster.webp","blurhash":"U16@7qtl0k-T9z}@O:E20157}BWn$d4.v$-o","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":12476,"triangles":96,"vertices":288,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0514495372772217,-0.000051138698772768,-0.11123830075189142],"max":[1.0514495372772217,0.7858004549142878,0.11125770484883726]},"sizeMeters":[2.103,0.786,0.222],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:40.902Z","updatedAt":"2026-10-25T12:35:05.052Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23581/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityCableOverpassRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23581/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23581/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23581/v1/model.glb\" alt=\"Utility Cable Overpass (Roadside Survival Stops)\" 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/23581/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/23581/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23582","slug":"roadside-survival-stops-roof-maintenance-ladder-eeb5d823","title":"Roof Maintenance Ladder (Roadside Survival Stops)","summary":"Roof Maintenance Ladder: 0.65 × 3 × 0.5 m nominal survival ladder assembly.","description":"Original weathered survival ladder. Nominal envelope 0.65m wide, 3m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form ladder; cage 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/roadside-survival-stops-roof-maintenance-ladder-eeb5d823","cdnUrl":"https://cdn.3dassets.dev/assets/23582/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roof-maintenance-ladder-eeb5d823","thumbnailUrl":"https://cdn.3dassets.dev/assets/23582/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23582/v1/poster.webp","blurhash":"U37UVTM{00%g_NWV8_n%8_fk.8jZtRoLRPR*","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":58644,"triangles":1200,"vertices":3600,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.4440900906399732,0,-0.2799768059327982],"max":[0.4440900906399732,3,0.2799768059327982]},"sizeMeters":[0.888,3,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:41.059Z","updatedAt":"2026-10-25T07:46:05.671Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23582/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofMaintenanceLadderRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23582/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23582/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23582/v1/model.glb\" alt=\"Roof Maintenance Ladder (Roadside Survival Stops)\" 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/23582/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/23582/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23584","slug":"roadside-survival-stops-service-yard-drain-99548192","title":"Service Yard Drain (Roadside Survival Stops)","summary":"Service Yard Drain: 2 × 0.15 × 0.3 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 2m wide, 0.15m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape trough; grate 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/roadside-survival-stops-service-yard-drain-99548192","cdnUrl":"https://cdn.3dassets.dev/assets/23584/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-yard-drain-99548192","thumbnailUrl":"https://cdn.3dassets.dev/assets/23584/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23584/v1/poster.webp","blurhash":"U48g?Jtk9Es:%N~qodM_00of_3RjIA00j^%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":10804,"triangles":204,"vertices":612,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00003143764103896718,-0.1500289925840022],"max":[1,0.1799685695115184,0.1500289925840022]},"sizeMeters":[2,0.18,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T20:11:41.193Z","updatedAt":"2026-10-25T16:12:22.904Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23584/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceYardDrainRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23584/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23584/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23584/v1/model.glb\" alt=\"Service Yard Drain (Roadside Survival Stops)\" 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/23584/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/23584/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23583","slug":"roadside-survival-stops-service-yard-wash-screen-5b2bfcf7","title":"Service Yard Wash Screen (Roadside Survival Stops)","summary":"Service Yard Wash Screen: 2 × 1.8 × 0.15 m nominal survival rail assembly.","description":"Original weathered survival rail. Nominal envelope 2m wide, 1.8m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form rail; shape solid; 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/roadside-survival-stops-service-yard-wash-screen-5b2bfcf7","cdnUrl":"https://cdn.3dassets.dev/assets/23583/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-yard-wash-screen-5b2bfcf7","thumbnailUrl":"https://cdn.3dassets.dev/assets/23583/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23583/v1/poster.webp","blurhash":"U4AwVU-=00Vs~q_3IT9E00kC%MRPxv%MRiD$","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":6220,"triangles":108,"vertices":324,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000021386798491063175,-0.07495345927304911],"max":[1,1.8000213391147752,0.07495345927304911]},"sizeMeters":[2,1.8,0.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:41.171Z","updatedAt":"2026-10-25T13:30:41.522Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23583/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceYardWashScreenRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23583/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23583/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23583/v1/model.glb\" alt=\"Service Yard Wash Screen (Roadside Survival Stops)\" 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/23583/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/23583/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23585","slug":"roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","title":"Assembled Survivor Site (Roadside Survival Stops)","summary":"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.","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/roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/23585/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-assembled-surviv-a54469ce-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/23585/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23585/v1/poster.webp","blurhash":"U38:@n000#Td.8DiXmtm00?vs:niMJ?wMxMc","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":170164,"triangles":7524,"vertices":7281,"meshes":22,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2.139959982819825,-0.00007629627368999081,-2.11748827991812],"max":[2.000042765651394,3.3317355487910336,2.8599383526108584]},"sizeMeters":[4.14,3.332,4.977],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":18,"publishedAt":"2026-09-07T20:11:41.497Z","updatedAt":"2026-10-25T16:53:50.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23585/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23585/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23585/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23585/v1/model.glb\" alt=\"Assembled Survivor Site (Roadside Survival Stops)\" 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/23585/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/23585/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23586","slug":"roadside-survival-stops-construction-and-service-corne-1941d356","title":"Construction and Service Corner (Roadside Survival Stops)","summary":"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.","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/roadside-survival-stops-construction-and-service-corne-1941d356","cdnUrl":"https://cdn.3dassets.dev/assets/23586/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-construction-and-service-corne-1941d356","thumbnailUrl":"https://cdn.3dassets.dev/assets/23586/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23586/v1/poster.webp","blurhash":"U28Wjb0014uO.m4nS~t,00_Ni_Mw8w~qROVD","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":172644,"triangles":6892,"vertices":7430,"meshes":20,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.152035234506855,-0.00007629627368999081,-2.11748827991812],"max":[2.000042765651394,3.3317355487910336,2.8599383526108584]},"sizeMeters":[4.152,3.332,4.977],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T20:11:41.779Z","updatedAt":"2026-10-25T10:11:58.205Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23586/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConstructionAndServiceCornerRoadsideSurvivalStops(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23586/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23586/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23586/v1/model.glb\" alt=\"Construction and Service Corner (Roadside Survival Stops)\" 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/23586/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/23586/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23357","slug":"bunker-shelter-construction-shower-curtain-frame-4d85dba5","title":"Shower Curtain Frame (Underground Bunker and 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-4d85dba5","cdnUrl":"https://cdn.3dassets.dev/assets/23357/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-shower-curtain-frame-4d85dba5","thumbnailUrl":"https://cdn.3dassets.dev/assets/23357/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23357/v1/poster.webp","blurhash":"U28gToVs00.7[WS}F1R700R*.js:?YoeM#jG","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.5837100176059662,0,-0.5737282934342225],"max":[0.5837499831464943,1.652400016784668,0.5737282934342225]},"sizeMeters":[1.167,1.652,1.147],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:09:34.248Z","updatedAt":"2026-10-25T11:37:51.820Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23357/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShowerCurtainFrameUndergroundBunkerAndSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23357/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23357/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23357/v1/model.glb\" alt=\"Shower Curtain Frame (Underground Bunker and 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/23357/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/23357/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"23395","slug":"bunker-shelter-construction-entrance-boot-scraper-153de7bb","title":"Entrance Boot Scraper (Underground Bunker and 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-153de7bb","cdnUrl":"https://cdn.3dassets.dev/assets/23395/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bunker-shelter-construction-entrance-boot-scraper-153de7bb","thumbnailUrl":"https://cdn.3dassets.dev/assets/23395/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/23395/v1/poster.webp","blurhash":"U28M?O.502ix~o%2ICMy01OF.6My01Ri%{kq","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":62632,"triangles":1132,"vertices":3396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,-7.679298209550822e-7,-0.20799585774772372],"max":[0.30000001192092896,0.2511943718681956,0.20799585774772372]},"sizeMeters":[0.6,0.251,0.416],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T20:09:38.484Z","updatedAt":"2026-10-13T00:44:43.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/23395/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntranceBootScraperUndergroundBunkerAndSurvivorHideout(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/23395/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/23395/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/23395/v1/model.glb\" alt=\"Entrance Boot Scraper (Underground Bunker and 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/23395/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/23395/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}