{"data":{"id":64,"slug":"roadside-survival-stops","title":"Roadside Survival Stops","summary":"Roadside Survival Stops: 74 distinct designs plus explicitly tracked variants and two composed scenes.","description":"Original CC0 survival construction assets in the weathered-survival-v1 family. Itemised scope, states and honest static limitations in blueprint.json.","url":"https://3dassets.dev/packs/roadside-survival-stops","coverUrl":"https://cdn.3dassets.dev/assets/10587/v1/poster.webp","assetCount":76,"aiGenerated":true,"aiGeneratedAssetCount":76,"aiModels":["GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":3193052,"totalTriangles":55624,"starterScene":{"id":"10587","slug":"roadside-survival-stops-assembled-surviv-80818ec9-starter-scene","title":"Assembled Survivor Site (Roadside Survival Stops)","summary":"Composed example for Roadside Survival Stops.","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-80818ec9-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10587/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-assembled-surviv-80818ec9-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10587/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10587/v1/poster.webp","blurhash":"U38zW0000#X-.89FXmx^00?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":158068,"triangles":6024,"vertices":5813,"meshes":21,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2.140043341848278,-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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:21.693Z","updatedAt":"2026-09-06T14:35:21.980Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10587/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/10587/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10587/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10587/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/10587/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/10587/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"10370","slug":"roadside-survival-stops-service-bay-side-e032a787","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-e032a787","cdnUrl":"https://cdn.3dassets.dev/assets/10370/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-side-e032a787","thumbnailUrl":"https://cdn.3dassets.dev/assets/10370/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10370/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":73100,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:30.703Z","updatedAt":"2026-09-06T14:34:31.441Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10370/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/10370/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10370/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10370/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/10370/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/10370/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10371","slug":"roadside-survival-stops-service-bay-wide-entry-44a46693","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-44a46693","cdnUrl":"https://cdn.3dassets.dev/assets/10371/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-wide-entry-44a46693","thumbnailUrl":"https://cdn.3dassets.dev/assets/10371/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10371/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":116260,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:30.679Z","updatedAt":"2026-09-06T14:34:31.458Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10371/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/10371/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10371/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10371/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/10371/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/10371/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10373","slug":"roadside-survival-stops-service-counter-front-861fd5d3","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-861fd5d3","cdnUrl":"https://cdn.3dassets.dev/assets/10373/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-counter-front-861fd5d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10373/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10373/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":137620,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:30.893Z","updatedAt":"2026-09-06T14:34:31.627Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10373/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/10373/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10373/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10373/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/10373/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/10373/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10372","slug":"roadside-survival-stops-restroom-entry-wall-3596951d","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-3596951d","cdnUrl":"https://cdn.3dassets.dev/assets/10372/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-entry-wall-3596951d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10372/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10372/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":104468,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:30.876Z","updatedAt":"2026-09-06T14:34:31.654Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10372/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/10372/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10372/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10372/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/10372/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/10372/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10385","slug":"roadside-survival-stops-rest-stop-window-wall-d71b77ab","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-d71b77ab","cdnUrl":"https://cdn.3dassets.dev/assets/10385/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-window-wall-d71b77ab","thumbnailUrl":"https://cdn.3dassets.dev/assets/10385/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10385/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":140500,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:34.569Z","updatedAt":"2026-09-06T14:34:35.019Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10385/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/10385/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10385/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10385/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/10385/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/10385/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10382","slug":"roadside-survival-stops-utility-vent-wall-f9e1392c","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-f9e1392c","cdnUrl":"https://cdn.3dassets.dev/assets/10382/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-utility-vent-wall-f9e1392c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10382/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10382/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":111676,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:34.407Z","updatedAt":"2026-09-06T14:34:35.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10382/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/10382/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10382/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10382/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/10382/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/10382/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10384","slug":"roadside-survival-stops-pump-canopy-column-7f14f758","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-7f14f758","cdnUrl":"https://cdn.3dassets.dev/assets/10384/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-canopy-column-7f14f758","thumbnailUrl":"https://cdn.3dassets.dev/assets/10384/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10384/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":7936,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:34.451Z","updatedAt":"2026-09-06T14:34:35.056Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10384/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/10384/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10384/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10384/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/10384/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/10384/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10383","slug":"roadside-survival-stops-pump-canopy-corner-03fe3565","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-03fe3565","cdnUrl":"https://cdn.3dassets.dev/assets/10383/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-canopy-corner-03fe3565","thumbnailUrl":"https://cdn.3dassets.dev/assets/10383/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10383/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":25304,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:34.423Z","updatedAt":"2026-09-06T14:34:34.887Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10383/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/10383/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10383/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10383/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/10383/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/10383/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10394","slug":"roadside-survival-stops-service-bay-roof-819c8b03","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-819c8b03","cdnUrl":"https://cdn.3dassets.dev/assets/10394/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-roof-819c8b03","thumbnailUrl":"https://cdn.3dassets.dev/assets/10394/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10394/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":29548,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:37.315Z","updatedAt":"2026-09-06T14:34:37.849Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10394/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/10394/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10394/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10394/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/10394/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/10394/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10395","slug":"roadside-survival-stops-rest-stop-roof-758d792e","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-758d792e","cdnUrl":"https://cdn.3dassets.dev/assets/10395/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-roof-758d792e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10395/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10395/v1/poster.webp","blurhash":"U27J|VS$00#9uPRjQmxt00Mx?at,HXnO.Tkq","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":29136,"triangles":320,"vertices":960,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0312347412109375,0.00005595617547232701,-1.000014767967087],"max":[1.0312347412109375,0.9740988128399992,1.000014767967087]},"sizeMeters":[2.062,0.974,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:37.371Z","updatedAt":"2026-09-06T14:34:37.892Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10395/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/10395/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10395/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10395/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/10395/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/10395/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10396","slug":"roadside-survival-stops-service-floor-drain-52e4513d","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-52e4513d","cdnUrl":"https://cdn.3dassets.dev/assets/10396/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-floor-drain-52e4513d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10396/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10396/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":21528,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:37.149Z","updatedAt":"2026-09-06T14:34:37.942Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10396/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/10396/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10396/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10396/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/10396/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/10396/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10397","slug":"roadside-survival-stops-inspection-channel-floor-ebfc7b30","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-ebfc7b30","cdnUrl":"https://cdn.3dassets.dev/assets/10397/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-inspection-channel-floor-ebfc7b30","thumbnailUrl":"https://cdn.3dassets.dev/assets/10397/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10397/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":72444,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:37.674Z","updatedAt":"2026-09-06T14:34:38.381Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10397/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/10397/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10397/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10397/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/10397/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/10397/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10406","slug":"roadside-survival-stops-pump-island-platform-3cfae6e0","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-3cfae6e0","cdnUrl":"https://cdn.3dassets.dev/assets/10406/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-island-platform-3cfae6e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10406/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10406/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":26412,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:39.841Z","updatedAt":"2026-09-06T14:34:40.495Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10406/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/10406/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10406/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10406/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/10406/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/10406/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10407","slug":"roadside-survival-stops-loading-bay-step-ff8b6e17","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-ff8b6e17","cdnUrl":"https://cdn.3dassets.dev/assets/10407/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-loading-bay-step-ff8b6e17","thumbnailUrl":"https://cdn.3dassets.dev/assets/10407/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10407/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":13952,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:40.026Z","updatedAt":"2026-09-06T14:34:40.530Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10407/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/10407/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10407/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10407/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/10407/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/10407/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10408","slug":"roadside-survival-stops-service-bay-ramp-94e6e96e","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-94e6e96e","cdnUrl":"https://cdn.3dassets.dev/assets/10408/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-bay-ramp-94e6e96e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10408/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10408/v1/poster.webp","blurhash":"U27wHG?E01Tb_3RjIVoy00D+}rRR00xbxsVu","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":15208,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.00005603096914214012,-1.0098057985305786],"max":[1,0.5290850426955216,1.0098057985305786]},"sizeMeters":[2,0.529,2.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:39.956Z","updatedAt":"2026-09-06T14:34:40.577Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10408/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/10408/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10408/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10408/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/10408/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/10408/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10409","slug":"roadside-survival-stops-shutter-guide-post-6c4d0675","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-6c4d0675","cdnUrl":"https://cdn.3dassets.dev/assets/10409/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shutter-guide-post-6c4d0675","thumbnailUrl":"https://cdn.3dassets.dev/assets/10409/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10409/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":2752,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:40.419Z","updatedAt":"2026-09-06T14:34:41.268Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10409/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/10409/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10409/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10409/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/10409/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/10409/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10417","slug":"roadside-survival-stops-rolling-shutter-leaf-4473f8a0","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-4473f8a0","cdnUrl":"https://cdn.3dassets.dev/assets/10417/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rolling-shutter-leaf-4473f8a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10417/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10417/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":22008,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:42.651Z","updatedAt":"2026-09-06T14:34:43.389Z","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/10417/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/10417/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/10417/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10417/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/10417/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/10417/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10418","slug":"roadside-survival-stops-service-wicket-door-473abe53","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-473abe53","cdnUrl":"https://cdn.3dassets.dev/assets/10418/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-wicket-door-473abe53","thumbnailUrl":"https://cdn.3dassets.dev/assets/10418/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10418/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":30716,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:42.563Z","updatedAt":"2026-09-06T14:34:43.410Z","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/10418/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/10418/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/10418/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10418/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/10418/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/10418/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10419","slug":"roadside-survival-stops-restroom-door-4b8cb01b","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-4b8cb01b","cdnUrl":"https://cdn.3dassets.dev/assets/10419/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-door-4b8cb01b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10419/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10419/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":45784,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:42.908Z","updatedAt":"2026-09-06T14:34:43.394Z","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/10419/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/10419/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/10419/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10419/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/10419/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/10419/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10421","slug":"roadside-survival-stops-manual-fuel-pump-144d0467","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-144d0467","cdnUrl":"https://cdn.3dassets.dev/assets/10421/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-manual-fuel-pump-144d0467","thumbnailUrl":"https://cdn.3dassets.dev/assets/10421/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10421/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":13176,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:44.190Z","updatedAt":"2026-09-06T14:34:45.246Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10421/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/10421/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10421/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10421/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/10421/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/10421/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10428","slug":"roadside-survival-stops-twin-hose-dispenser-bcddbf70","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-bcddbf70","cdnUrl":"https://cdn.3dassets.dev/assets/10428/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-twin-hose-dispenser-bcddbf70","thumbnailUrl":"https://cdn.3dassets.dev/assets/10428/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10428/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":48740,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:45.771Z","updatedAt":"2026-09-06T14:34:46.338Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10428/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/10428/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10428/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10428/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/10428/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/10428/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10429","slug":"roadside-survival-stops-single-hose-dispenser-3b417706","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-3b417706","cdnUrl":"https://cdn.3dassets.dev/assets/10429/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-single-hose-dispenser-3b417706","thumbnailUrl":"https://cdn.3dassets.dev/assets/10429/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10429/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":29888,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:45.728Z","updatedAt":"2026-09-06T14:34:46.434Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10429/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/10429/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10429/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10429/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/10429/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/10429/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10430","slug":"roadside-survival-stops-compressed-air-station-586e5c78","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-586e5c78","cdnUrl":"https://cdn.3dassets.dev/assets/10430/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-compressed-air-station-586e5c78","thumbnailUrl":"https://cdn.3dassets.dev/assets/10430/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10430/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":13512,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:45.929Z","updatedAt":"2026-09-06T14:34:46.443Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10430/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/10430/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10430/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10430/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/10430/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/10430/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10433","slug":"roadside-survival-stops-tyre-inflation-post-0dbb9226","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-0dbb9226","cdnUrl":"https://cdn.3dassets.dev/assets/10433/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-tyre-inflation-post-0dbb9226","thumbnailUrl":"https://cdn.3dassets.dev/assets/10433/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10433/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":14728,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:47.138Z","updatedAt":"2026-09-06T14:34:48.142Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10433/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/10433/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10433/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10433/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/10433/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/10433/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10440","slug":"roadside-survival-stops-hose-reel-wall-f62855b9","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-f62855b9","cdnUrl":"https://cdn.3dassets.dev/assets/10440/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-hose-reel-wall-f62855b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10440/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10440/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":26540,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:48.223Z","updatedAt":"2026-09-06T14:34:48.968Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10440/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/10440/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10440/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10440/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/10440/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/10440/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10441","slug":"roadside-survival-stops-underground-fill-collar-c9e283a1","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-c9e283a1","cdnUrl":"https://cdn.3dassets.dev/assets/10441/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-underground-fill-collar-c9e283a1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10441/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10441/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":3412,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:48.369Z","updatedAt":"2026-09-06T14:34:49.030Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10441/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/10441/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10441/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10441/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/10441/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/10441/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10442","slug":"roadside-survival-stops-spill-grate-3183548b","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-3183548b","cdnUrl":"https://cdn.3dassets.dev/assets/10442/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-spill-grate-3183548b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10442/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10442/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":8736,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:48.455Z","updatedAt":"2026-09-06T14:34:49.078Z","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/10442/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/10442/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/10442/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10442/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/10442/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/10442/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10445","slug":"roadside-survival-stops-spill-sorbent-bin-016d2ef3","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-016d2ef3","cdnUrl":"https://cdn.3dassets.dev/assets/10445/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-spill-sorbent-bin-016d2ef3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10445/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10445/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":12888,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:49.756Z","updatedAt":"2026-09-06T14:34:50.714Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10445/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/10445/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10445/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10445/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/10445/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/10445/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10452","slug":"roadside-survival-stops-windshield-wash-stand-57a1c778","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-57a1c778","cdnUrl":"https://cdn.3dassets.dev/assets/10452/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-windshield-wash-stand-57a1c778","thumbnailUrl":"https://cdn.3dassets.dev/assets/10452/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10452/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":22072,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:50.573Z","updatedAt":"2026-09-06T14:34:51.583Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10452/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/10452/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10452/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10452/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/10452/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/10452/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10453","slug":"roadside-survival-stops-oil-return-tank-a23944f3","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-a23944f3","cdnUrl":"https://cdn.3dassets.dev/assets/10453/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-oil-return-tank-a23944f3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10453/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10453/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":11608,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:51.004Z","updatedAt":"2026-09-06T14:34:51.582Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10453/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/10453/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10453/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10453/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/10453/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/10453/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10454","slug":"roadside-survival-stops-service-signal-pole-fb4e2dc4","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-fb4e2dc4","cdnUrl":"https://cdn.3dassets.dev/assets/10454/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-signal-pole-fb4e2dc4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10454/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10454/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":12784,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:50.606Z","updatedAt":"2026-09-06T14:34:51.614Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10454/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/10454/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10454/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10454/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/10454/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/10454/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10457","slug":"roadside-survival-stops-fuel-price-board-d44bfa57","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-d44bfa57","cdnUrl":"https://cdn.3dassets.dev/assets/10457/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-fuel-price-board-d44bfa57","thumbnailUrl":"https://cdn.3dassets.dev/assets/10457/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10457/v1/poster.webp","blurhash":"U57daux[00IBjEs:ozNG00Rj_Nx[?aso9GNb","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":22764,"triangles":288,"vertices":864,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.500030518509476,0,-0.09148397583047299],"max":[0.500030518509476,1.5,0.09151785298395201]},"sizeMeters":[1,1.5,0.183],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:52.603Z","updatedAt":"2026-09-06T14:34:53.368Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10457/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/10457/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10457/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10457/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/10457/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/10457/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10464","slug":"roadside-survival-stops-canopy-direction-sign-c3f0c098","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-c3f0c098","cdnUrl":"https://cdn.3dassets.dev/assets/10464/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-canopy-direction-sign-c3f0c098","thumbnailUrl":"https://cdn.3dassets.dev/assets/10464/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10464/v1/poster.webp","blurhash":"U49Z.gwJ01%L_3~CawM{00-;_3RiDiIA$+%N","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":14976,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,0.000030518509475996325,-0.06398931895381708],"max":[0.75,0.49996948156502985,0.06398976320073918]},"sizeMeters":[1.5,0.5,0.128],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:53.333Z","updatedAt":"2026-09-06T14:34:54.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10464/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/10464/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10464/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10464/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/10464/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/10464/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10465","slug":"roadside-survival-stops-rest-stop-map-frame-c225766d","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-c225766d","cdnUrl":"https://cdn.3dassets.dev/assets/10465/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rest-stop-map-frame-c225766d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10465/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10465/v1/poster.webp","blurhash":"U47dXo%M00IVrss9oxSO01RP?bx^?^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":45636,"triangles":608,"vertices":1824,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6745004057884216,-0.00002138275119112354,-0.22502898415268355],"max":[0.6745004057884216,1.3350000381469727,0.22502898415268355]},"sizeMeters":[1.349,1.335,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:53.387Z","updatedAt":"2026-09-06T14:34:54.179Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10465/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/10465/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10465/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10465/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/10465/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/10465/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10466","slug":"roadside-survival-stops-height-restriction-frame-168eed22","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-168eed22","cdnUrl":"https://cdn.3dassets.dev/assets/10466/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-height-restriction-frame-168eed22","thumbnailUrl":"https://cdn.3dassets.dev/assets/10466/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10466/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":58104,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:53.357Z","updatedAt":"2026-09-06T14:34:54.190Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10466/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/10466/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10466/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10466/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/10466/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/10466/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10469","slug":"roadside-survival-stops-picnic-shelter-969c07d7","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-969c07d7","cdnUrl":"https://cdn.3dassets.dev/assets/10469/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-picnic-shelter-969c07d7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10469/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10469/v1/poster.webp","blurhash":"U47JnSs+D*%1~AxCE2t72HWBEfXS5mI;$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":91412,"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.0750928182832147]},"sizeMeters":[3.191,2.935,2.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:55.237Z","updatedAt":"2026-09-06T14:34:56.020Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10469/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/10469/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10469/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10469/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/10469/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/10469/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10476","slug":"roadside-survival-stops-roadside-rain-shelter-1492e384","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-1492e384","cdnUrl":"https://cdn.3dassets.dev/assets/10476/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-rain-shelter-1492e384","thumbnailUrl":"https://cdn.3dassets.dev/assets/10476/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10476/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":134276,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:56.290Z","updatedAt":"2026-09-06T14:34:56.724Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10476/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/10476/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10476/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10476/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/10476/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/10476/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10477","slug":"roadside-survival-stops-service-kiosk-shell-61ceb609","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-61ceb609","cdnUrl":"https://cdn.3dassets.dev/assets/10477/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-kiosk-shell-61ceb609","thumbnailUrl":"https://cdn.3dassets.dev/assets/10477/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10477/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":129384,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:56.082Z","updatedAt":"2026-09-06T14:34:56.737Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10477/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/10477/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10477/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10477/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/10477/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/10477/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10478","slug":"roadside-survival-stops-maintenance-shed-shell-db5c37e3","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-db5c37e3","cdnUrl":"https://cdn.3dassets.dev/assets/10478/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-maintenance-shed-shell-db5c37e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10478/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10478/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":267384,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:56.408Z","updatedAt":"2026-09-06T14:34:56.839Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10478/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/10478/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10478/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10478/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/10478/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/10478/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10481","slug":"roadside-survival-stops-roadside-toilet-shell-1bcbb2c2","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-1bcbb2c2","cdnUrl":"https://cdn.3dassets.dev/assets/10481/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-toilet-shell-1bcbb2c2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10481/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10481/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":222468,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:58.066Z","updatedAt":"2026-09-06T14:34:58.779Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10481/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/10481/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10481/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10481/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/10481/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/10481/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10489","slug":"roadside-survival-stops-restroom-sink-trough-e3f6c696","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-e3f6c696","cdnUrl":"https://cdn.3dassets.dev/assets/10489/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-sink-trough-e3f6c696","thumbnailUrl":"https://cdn.3dassets.dev/assets/10489/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10489/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":22092,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:59.017Z","updatedAt":"2026-09-06T14:34:59.656Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10489/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/10489/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10489/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10489/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/10489/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/10489/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10486","slug":"roadside-survival-stops-restroom-toilet-fea9677f","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-fea9677f","cdnUrl":"https://cdn.3dassets.dev/assets/10486/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-toilet-fea9677f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10486/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10486/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":31944,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:58.442Z","updatedAt":"2026-09-06T14:34:59.395Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10486/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/10486/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10486/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10486/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/10486/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/10486/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10485","slug":"roadside-survival-stops-service-floor-sump-7421222a","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-7421222a","cdnUrl":"https://cdn.3dassets.dev/assets/10485/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-floor-sump-7421222a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10485/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10485/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":9388,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:34:58.392Z","updatedAt":"2026-09-06T14:34:59.376Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10485/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/10485/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10485/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10485/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/10485/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/10485/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10493","slug":"roadside-survival-stops-drinking-fountain-36fc7205","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-36fc7205","cdnUrl":"https://cdn.3dassets.dev/assets/10493/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-drinking-fountain-36fc7205","thumbnailUrl":"https://cdn.3dassets.dev/assets/10493/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10493/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":22084,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:00.727Z","updatedAt":"2026-09-06T14:35:01.340Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10493/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/10493/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10493/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10493/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/10493/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/10493/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10497","slug":"roadside-survival-stops-roadside-picnic-bench-c1969756","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-c1969756","cdnUrl":"https://cdn.3dassets.dev/assets/10497/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-picnic-bench-c1969756","thumbnailUrl":"https://cdn.3dassets.dev/assets/10497/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10497/v1/poster.webp","blurhash":"U36*2Rxb9txZ~C?GShI;00-V-pJ80156wI%1","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":11716,"triangles":84,"vertices":252,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.00006966909241493124,-0.2250343273617865],"max":[0.8999999761581421,0.39493034163642116,0.2250343273617865]},"sizeMeters":[1.8,0.395,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:01.222Z","updatedAt":"2026-09-06T14:35:01.960Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10497/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/10497/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10497/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10497/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/10497/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/10497/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10499","slug":"roadside-survival-stops-roadside-table-frame-4b3a642a","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-4b3a642a","cdnUrl":"https://cdn.3dassets.dev/assets/10499/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-table-frame-4b3a642a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10499/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10499/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":10556,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:01.712Z","updatedAt":"2026-09-06T14:35:02.062Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10499/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/10499/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10499/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10499/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/10499/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/10499/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10500","slug":"roadside-survival-stops-maintenance-key-rack-a0b1c947","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-a0b1c947","cdnUrl":"https://cdn.3dassets.dev/assets/10500/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-maintenance-key-rack-a0b1c947","thumbnailUrl":"https://cdn.3dassets.dev/assets/10500/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10500/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":15400,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:01.486Z","updatedAt":"2026-09-06T14:35:02.189Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10500/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/10500/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10500/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10500/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/10500/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/10500/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10505","slug":"roadside-survival-stops-roadside-bulletin-locker-cd984b81","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-cd984b81","cdnUrl":"https://cdn.3dassets.dev/assets/10505/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-bulletin-locker-cd984b81","thumbnailUrl":"https://cdn.3dassets.dev/assets/10505/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10505/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":20412,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:03.468Z","updatedAt":"2026-09-06T14:35:04.039Z","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/10505/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/10505/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/10505/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10505/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/10505/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/10505/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10511","slug":"roadside-survival-stops-payphone-enclosure-e969b86f","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-e969b86f","cdnUrl":"https://cdn.3dassets.dev/assets/10511/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-payphone-enclosure-e969b86f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10511/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10511/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":21788,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:03.949Z","updatedAt":"2026-09-06T14:35:04.634Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10511/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/10511/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10511/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10511/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/10511/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/10511/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10509","slug":"roadside-survival-stops-emergency-call-post-80d601c3","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-80d601c3","cdnUrl":"https://cdn.3dassets.dev/assets/10509/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-emergency-call-post-80d601c3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10509/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10509/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":11560,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:03.852Z","updatedAt":"2026-09-06T14:35:04.589Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10509/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/10509/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10509/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10509/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/10509/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/10509/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10513","slug":"roadside-survival-stops-vending-cabinet-shell-bc2e2394","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-bc2e2394","cdnUrl":"https://cdn.3dassets.dev/assets/10513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vending-cabinet-shell-bc2e2394","thumbnailUrl":"https://cdn.3dassets.dev/assets/10513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10513/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":17980,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:04.098Z","updatedAt":"2026-09-06T14:35:04.966Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10513/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/10513/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10513/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/10513/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/10513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10517","slug":"roadside-survival-stops-service-window-counter-b0681d46","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-b0681d46","cdnUrl":"https://cdn.3dassets.dev/assets/10517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-window-counter-b0681d46","thumbnailUrl":"https://cdn.3dassets.dev/assets/10517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10517/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":12000,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:06.794Z","updatedAt":"2026-09-06T14:35:07.876Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10517/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/10517/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10517/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/10517/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/10517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10527","slug":"roadside-survival-stops-convenience-stock-rack-960d8ef2","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-960d8ef2","cdnUrl":"https://cdn.3dassets.dev/assets/10527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-convenience-stock-rack-960d8ef2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10527/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":15068,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:07.894Z","updatedAt":"2026-09-06T14:35:08.112Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10527/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/10527/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10527/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/10527/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/10527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10523","slug":"roadside-survival-stops-roadside-litter-bin-9d9293f1","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-9d9293f1","cdnUrl":"https://cdn.3dassets.dev/assets/10523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-litter-bin-9d9293f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10523/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":12904,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:07.596Z","updatedAt":"2026-09-06T14:35:07.866Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10523/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/10523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10523/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/10523/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/10523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10522","slug":"roadside-survival-stops-vehicle-service-stand-add6d6df","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-add6d6df","cdnUrl":"https://cdn.3dassets.dev/assets/10522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vehicle-service-stand-add6d6df","thumbnailUrl":"https://cdn.3dassets.dev/assets/10522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10522/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":19936,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:07.086Z","updatedAt":"2026-09-06T14:35:07.756Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10522/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/10522/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10522/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/10522/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/10522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10535","slug":"roadside-survival-stops-tyre-storage-rack-8868e39f","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-8868e39f","cdnUrl":"https://cdn.3dassets.dev/assets/10535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-tyre-storage-rack-8868e39f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10535/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":58732,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:09.654Z","updatedAt":"2026-09-06T14:35:10.609Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10535/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/10535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10535/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/10535/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/10535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10537","slug":"roadside-survival-stops-parts-washing-tub-e72a3253","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-e72a3253","cdnUrl":"https://cdn.3dassets.dev/assets/10537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-parts-washing-tub-e72a3253","thumbnailUrl":"https://cdn.3dassets.dev/assets/10537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10537/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":9696,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:09.808Z","updatedAt":"2026-09-06T14:35:10.714Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10537/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/10537/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10537/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/10537/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/10537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10539","slug":"roadside-survival-stops-service-tool-cabinet-d540e123","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-d540e123","cdnUrl":"https://cdn.3dassets.dev/assets/10539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-tool-cabinet-d540e123","thumbnailUrl":"https://cdn.3dassets.dev/assets/10539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10539/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":24964,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:10.060Z","updatedAt":"2026-09-06T14:35:10.795Z","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/10539/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/10539/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/10539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10539/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/10539/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/10539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10538","slug":"roadside-survival-stops-garage-wall-cubby-b0877d39","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-b0877d39","cdnUrl":"https://cdn.3dassets.dev/assets/10538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-garage-wall-cubby-b0877d39","thumbnailUrl":"https://cdn.3dassets.dev/assets/10538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10538/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":15028,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:09.922Z","updatedAt":"2026-09-06T14:35:10.721Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10538/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/10538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10538/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/10538/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/10538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10546","slug":"roadside-survival-stops-battery-test-pedestal-58b01120","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-58b01120","cdnUrl":"https://cdn.3dassets.dev/assets/10546/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-battery-test-pedestal-58b01120","thumbnailUrl":"https://cdn.3dassets.dev/assets/10546/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10546/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":11540,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:12.258Z","updatedAt":"2026-09-06T14:35:13.167Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10546/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/10546/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10546/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10546/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/10546/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/10546/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10550","slug":"roadside-survival-stops-service-jib-hoist-810393f4","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-810393f4","cdnUrl":"https://cdn.3dassets.dev/assets/10550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-jib-hoist-810393f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10550/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":38632,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:12.487Z","updatedAt":"2026-09-06T14:35:13.373Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10550/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/10550/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10550/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/10550/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/10550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10548","slug":"roadside-survival-stops-vehicle-wheel-guide-b1e43c27","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-b1e43c27","cdnUrl":"https://cdn.3dassets.dev/assets/10548/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-vehicle-wheel-guide-b1e43c27","thumbnailUrl":"https://cdn.3dassets.dev/assets/10548/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10548/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":7356,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:12.448Z","updatedAt":"2026-09-06T14:35:13.323Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10548/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/10548/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10548/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10548/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/10548/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/10548/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10551","slug":"roadside-survival-stops-service-pit-ladder-e7f86476","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-e7f86476","cdnUrl":"https://cdn.3dassets.dev/assets/10551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-pit-ladder-e7f86476","thumbnailUrl":"https://cdn.3dassets.dev/assets/10551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10551/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":11784,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:12.596Z","updatedAt":"2026-09-06T14:35:13.417Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10551/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/10551/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10551/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/10551/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/10551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10557","slug":"roadside-survival-stops-oil-drain-cart-b40488fc","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-b40488fc","cdnUrl":"https://cdn.3dassets.dev/assets/10557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-oil-drain-cart-b40488fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/10557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10557/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":23112,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:14.840Z","updatedAt":"2026-09-06T14:35:15.679Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10557/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/10557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10557/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/10557/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/10557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10559","slug":"roadside-survival-stops-shop-exhaust-hood-400b8a3e","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-400b8a3e","cdnUrl":"https://cdn.3dassets.dev/assets/10559/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shop-exhaust-hood-400b8a3e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10559/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10559/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":5692,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:15.217Z","updatedAt":"2026-09-06T14:35:15.903Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10559/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/10559/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10559/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10559/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/10559/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/10559/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10561","slug":"roadside-survival-stops-rainwater-chute-6656a403","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-6656a403","cdnUrl":"https://cdn.3dassets.dev/assets/10561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-rainwater-chute-6656a403","thumbnailUrl":"https://cdn.3dassets.dev/assets/10561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10561/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":2756,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:15.165Z","updatedAt":"2026-09-06T14:35:15.950Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10561/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/10561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10561/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/10561/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/10561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10564","slug":"roadside-survival-stops-restroom-divider-e9960f44","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-e9960f44","cdnUrl":"https://cdn.3dassets.dev/assets/10564/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-restroom-divider-e9960f44","thumbnailUrl":"https://cdn.3dassets.dev/assets/10564/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10564/v1/poster.webp","blurhash":"U38;Pa=_000MvQxaX+E201WE_Lovwht6SwIW","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":34588,"triangles":480,"vertices":1440,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5000579719209917,0,-0.05746024811923073],"max":[0.5000579719209917,1.7999999523162842,0.06595925776746711]},"sizeMeters":[1,1.8,0.123],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:15.400Z","updatedAt":"2026-09-06T14:35:16.169Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10564/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/10564/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10564/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10564/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/10564/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/10564/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10569","slug":"roadside-survival-stops-shop-security-grille-32d8efd7","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-32d8efd7","cdnUrl":"https://cdn.3dassets.dev/assets/10569/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-shop-security-grille-32d8efd7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10569/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10569/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":23036,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:17.703Z","updatedAt":"2026-09-06T14:35:18.272Z","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/10569/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/10569/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/10569/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10569/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/10569/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/10569/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10572","slug":"roadside-survival-stops-pump-fire-equipment-frame-bbe13f23","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-bbe13f23","cdnUrl":"https://cdn.3dassets.dev/assets/10572/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-pump-fire-equipment-frame-bbe13f23","thumbnailUrl":"https://cdn.3dassets.dev/assets/10572/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10572/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":22108,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:17.913Z","updatedAt":"2026-09-06T14:35:18.692Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10572/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/10572/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10572/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10572/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/10572/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/10572/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10571","slug":"roadside-survival-stops-roadside-clock-mount-3081eea2","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-3081eea2","cdnUrl":"https://cdn.3dassets.dev/assets/10571/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roadside-clock-mount-3081eea2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10571/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10571/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":11580,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:17.990Z","updatedAt":"2026-09-06T14:35:18.577Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10571/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/10571/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10571/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10571/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/10571/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/10571/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10576","slug":"roadside-survival-stops-utility-cable-overpass-0207d379","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-0207d379","cdnUrl":"https://cdn.3dassets.dev/assets/10576/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-utility-cable-overpass-0207d379","thumbnailUrl":"https://cdn.3dassets.dev/assets/10576/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10576/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":12480,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:19.065Z","updatedAt":"2026-09-06T14:35:19.275Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10576/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/10576/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10576/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10576/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/10576/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/10576/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10580","slug":"roadside-survival-stops-roof-maintenance-ladder-6911fd83","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-6911fd83","cdnUrl":"https://cdn.3dassets.dev/assets/10580/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-roof-maintenance-ladder-6911fd83","thumbnailUrl":"https://cdn.3dassets.dev/assets/10580/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10580/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":58648,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:20.445Z","updatedAt":"2026-09-06T14:35:21.134Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10580/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/10580/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10580/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10580/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/10580/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/10580/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10581","slug":"roadside-survival-stops-service-yard-drain-2e803d36","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-2e803d36","cdnUrl":"https://cdn.3dassets.dev/assets/10581/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-yard-drain-2e803d36","thumbnailUrl":"https://cdn.3dassets.dev/assets/10581/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10581/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":10808,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:20.292Z","updatedAt":"2026-09-06T14:35:21.177Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10581/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/10581/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10581/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10581/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/10581/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/10581/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10584","slug":"roadside-survival-stops-service-yard-wash-screen-197ba8a4","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-197ba8a4","cdnUrl":"https://cdn.3dassets.dev/assets/10584/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-service-yard-wash-screen-197ba8a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10584/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10584/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":6228,"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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:20.421Z","updatedAt":"2026-09-06T14:35:21.249Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10584/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/10584/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10584/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10584/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/10584/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/10584/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10587","slug":"roadside-survival-stops-assembled-surviv-80818ec9-starter-scene","title":"Assembled Survivor Site (Roadside Survival Stops)","summary":"Composed example for Roadside Survival Stops.","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-80818ec9-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10587/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-assembled-surviv-80818ec9-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10587/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10587/v1/poster.webp","blurhash":"U38zW0000#X-.89FXmx^00?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":158068,"triangles":6024,"vertices":5813,"meshes":21,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2.140043341848278,-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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:21.693Z","updatedAt":"2026-09-06T14:35:21.980Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10587/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/10587/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10587/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10587/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/10587/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/10587/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10592","slug":"roadside-survival-stops-construction-and-service-corne-c2e54a16","title":"Construction and Service Corner (Roadside Survival Stops)","summary":"Composed example for Roadside Survival Stops.","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-c2e54a16","cdnUrl":"https://cdn.3dassets.dev/assets/10592/v1/model.glb","downloadUrl":"https://3dassets.dev/download/roadside-survival-stops-construction-and-service-corne-c2e54a16","thumbnailUrl":"https://cdn.3dassets.dev/assets/10592/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10592/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":160548,"triangles":5392,"vertices":5962,"meshes":19,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.151927060838927,-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":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:22.907Z","updatedAt":"2026-09-06T14:35:23.752Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10592/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/10592/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10592/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10592/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/10592/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/10592/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}