{"data":{"id":56,"slug":"extraction-routes-and-objectives","title":"Extraction Routes and Objectives","summary":"Evacuation signals, objective cases, access controls, secured caches and cargo equipment for extraction routes.","description":"Original CC0 AI-created survival equipment. Practical, detailed silhouettes, metre scale, grounded origins and matching eight-material palette. Static models, no animation, rigging, collision or gameplay. Human publication review pending.","url":"https://3dassets.dev/packs/extraction-routes-and-objectives","coverUrl":"https://cdn.3dassets.dev/assets/2950/v1/poster.webp","assetCount":32,"aiGenerated":true,"aiGeneratedAssetCount":32,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":1306504,"totalTriangles":32764,"starterScene":{"id":"2950","slug":"extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","title":"Rendezvous Checkpoint (Extraction Routes and Objectives)","summary":"Composed example for Extraction Routes and Objectives.","description":"Rendezvous Checkpoint assembled from canonical models in this pack. Demonstration layout only; systems are not simulated.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/2950/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/2950/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2950/v1/poster.webp","blurhash":"U48NqYxa00OE?H-;E10100bI~qIU9ZD%-:_3","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":130492,"triangles":6456,"vertices":5169,"meshes":20,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.6,-0.0000017506431430197589,-0.542506867207731],"max":[1.676898435931561,1.350000023841858,1.1749999970197678]},"sizeMeters":[3.277,1.35,1.718],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:05:00.377Z","updatedAt":"2026-09-06T05:05:02.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2950/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RendezvousCheckpointExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2950/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2950/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2950/v1/model.glb\" alt=\"Rendezvous Checkpoint (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2950/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2950/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"2888","slug":"extraction-routes-and-objectives-evacuation-arrow-post-f728d7bd","title":"Evacuation Arrow Post (Extraction Routes and Objectives)","summary":"Evacuation Arrow Post, an original survival prop measuring 0.80 × 1.50 × 0.09 m.","description":"Evacuation Arrow Post. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.80 × 1.50 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-evacuation-arrow-post-f728d7bd","cdnUrl":"https://cdn.3dassets.dev/assets/2888/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-evacuation-arrow-post-f728d7bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/2888/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2888/v1/poster.webp","blurhash":"UB7mTnxG0$J7}=s:5SNaxZs.R+NHENoe$%NI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14576,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0,-0.046252213448753784],"max":[0.4000000059604645,1.5,0.04625038114609801]},"sizeMeters":[0.8,1.5,0.093],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:03:56.068Z","updatedAt":"2026-09-06T05:03:56.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2888/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EvacuationArrowPostExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2888/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2888/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2888/v1/model.glb\" alt=\"Evacuation Arrow Post (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2888/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2888/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2889","slug":"extraction-routes-and-objectives-route-marker-tripod-b46d5260","title":"Route Marker Tripod (Extraction Routes and Objectives)","summary":"Route Marker Tripod, an original survival prop measuring 0.55 × 1.01 × 0.48 m.","description":"Route Marker Tripod. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.55 × 1.01 × 0.48 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-route-marker-tripod-b46d5260","cdnUrl":"https://cdn.3dassets.dev/assets/2889/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-route-marker-tripod-b46d5260","thumbnailUrl":"https://cdn.3dassets.dev/assets/2889/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2889/v1/poster.webp","blurhash":"U27ndqIB00te?+jc02%L00tQ_4R7$.kS%GDk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31012,"triangles":648,"vertices":1944,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2768984359315612,0,-0.24232643237682805],"max":[0.2768984359315612,1.0063202381134033,0.24232643237682805]},"sizeMeters":[0.554,1.006,0.485],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:03:56.228Z","updatedAt":"2026-09-06T05:03:56.482Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2889/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RouteMarkerTripodExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2889/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2889/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2889/v1/model.glb\" alt=\"Route Marker Tripod (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2889/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2889/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2890","slug":"extraction-routes-and-objectives-reflective-route-stak-d2c43425","title":"Reflective Route Stake (Extraction Routes and Objectives)","summary":"Reflective Route Stake, an original survival prop measuring 0.11 × 0.85 × 0.06 m.","description":"Reflective Route Stake. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.11 × 0.85 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-reflective-route-stak-d2c43425","cdnUrl":"https://cdn.3dassets.dev/assets/2890/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-reflective-route-stak-d2c43425","thumbnailUrl":"https://cdn.3dassets.dev/assets/2890/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2890/v1/poster.webp","blurhash":"U55hGRt601IW~Ws:4oM|xuofM|RkD%a}-:jZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19220,"triangles":324,"vertices":972,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.05500199681661074,0,-0.028234054235799822],"max":[0.05500199681661074,0.8500000238418579,0.028249572932081926]},"sizeMeters":[0.11,0.85,0.056],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:03:56.782Z","updatedAt":"2026-09-06T05:04:02.643Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2890/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReflectiveRouteStakeExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2890/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2890/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2890/v1/model.glb\" alt=\"Reflective Route Stake (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2890/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2890/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2891","slug":"extraction-routes-and-objectives-trail-ribbon-line-fbe3dc7e","title":"Trail Ribbon Line (Extraction Routes and Objectives)","summary":"Trail Ribbon Line, an original survival prop measuring 1.63 × 0.53 × 0.03 m.","description":"Trail Ribbon Line. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.63 × 0.53 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-trail-ribbon-line-fbe3dc7e","cdnUrl":"https://cdn.3dassets.dev/assets/2891/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-trail-ribbon-line-fbe3dc7e","thumbnailUrl":"https://cdn.3dassets.dev/assets/2891/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2891/v1/poster.webp","blurhash":"UA9j4Ms.IUsq~C-oRkRk0L?G-pIo0LNc?Gxs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":53388,"triangles":900,"vertices":2700,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.8125,0.0000286111026337188,-0.01249732963042085],"max":[0.8125,0.530005357311185,0.01249732963042085]},"sizeMeters":[1.625,0.53,0.025],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:02.662Z","updatedAt":"2026-09-06T05:04:16.201Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2891/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrailRibbonLineExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2891/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2891/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2891/v1/model.glb\" alt=\"Trail Ribbon Line (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2891/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2891/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2892","slug":"extraction-routes-and-objectives-extraction-beacon-1f165349","title":"Extraction Beacon (Extraction Routes and Objectives)","summary":"Extraction Beacon, an original survival prop measuring 0.35 × 1.35 × 0.35 m.","description":"Extraction Beacon. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.35 × 1.35 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-extraction-beacon-1f165349","cdnUrl":"https://cdn.3dassets.dev/assets/2892/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-extraction-beacon-1f165349","thumbnailUrl":"https://cdn.3dassets.dev/assets/2892/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2892/v1/poster.webp","blurhash":"U56RASt700IU%LjuIoax0LWB~Bxa9uWB-ns;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23812,"triangles":444,"vertices":1332,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.17499999701976776,0,-0.17499999701976776],"max":[0.17499999701976776,1.350000023841858,0.17499999701976776]},"sizeMeters":[0.35,1.35,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:13.425Z","updatedAt":"2026-09-06T05:04:16.648Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2892/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExtractionBeaconExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2892/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2892/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2892/v1/model.glb\" alt=\"Extraction Beacon (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2892/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2892/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2893","slug":"extraction-routes-and-objectives-signal-flare-stand-6f7f1b6d","title":"Signal Flare Stand (Extraction Routes and Objectives)","summary":"Signal Flare Stand, an original survival prop measuring 0.25 × 0.42 × 0.20 m.","description":"Signal Flare Stand. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.25 × 0.42 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-signal-flare-stand-6f7f1b6d","cdnUrl":"https://cdn.3dassets.dev/assets/2893/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-signal-flare-stand-6f7f1b6d","thumbnailUrl":"https://cdn.3dassets.dev/assets/2893/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2893/v1/poster.webp","blurhash":"U79s^?%M00DkD4W9TzakIUWC%LoepybJ#PtL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28496,"triangles":556,"vertices":1668,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.1250047283403949,4.4703482582342247e-10,-0.09999487126769353],"max":[0.1250047283403949,0.41999998688697815,0.09999487126769353]},"sizeMeters":[0.25,0.42,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:14.272Z","updatedAt":"2026-09-06T05:04:16.774Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2893/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalFlareStandExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2893/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2893/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2893/v1/model.glb\" alt=\"Signal Flare Stand (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2893/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2893/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2894","slug":"extraction-routes-and-objectives-smoke-canister-13bdaad6","title":"Smoke Canister (Extraction Routes and Objectives)","summary":"Smoke Canister, an original survival prop measuring 0.08 × 0.19 × 0.09 m.","description":"Smoke Canister. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.08 × 0.19 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-smoke-canister-13bdaad6","cdnUrl":"https://cdn.3dassets.dev/assets/2894/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-smoke-canister-13bdaad6","thumbnailUrl":"https://cdn.3dassets.dev/assets/2894/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2894/v1/poster.webp","blurhash":"U38#4q.6004V-tagM[tQ4YaO?rtiIRWBxwoM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25272,"triangles":476,"vertices":1428,"meshes":3,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.041999999433755875,0,-0.0442500002682209],"max":[0.041999999433755875,0.18999701070461095,0.04424742197990968]},"sizeMeters":[0.084,0.19,0.088],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:18.863Z","updatedAt":"2026-09-06T05:04:19.759Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2894/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmokeCanisterExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2894/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2894/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2894/v1/model.glb\" alt=\"Smoke Canister (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2894/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2894/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2895","slug":"extraction-routes-and-objectives-signal-mirror-6dc87ca8","title":"Signal Mirror (Extraction Routes and Objectives)","summary":"Signal Mirror, an original survival prop measuring 0.11 × 0.01 × 0.16 m.","description":"Signal Mirror. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.11 × 0.01 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-signal-mirror-6dc87ca8","cdnUrl":"https://cdn.3dassets.dev/assets/2895/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-signal-mirror-6dc87ca8","thumbnailUrl":"https://cdn.3dassets.dev/assets/2895/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2895/v1/poster.webp","blurhash":"U79%;ks,00S5?HRjE1t700NH~qxY0K%M?HM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25456,"triangles":492,"vertices":1476,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.054958726905672176,0.0000023821942423752143,-0.08160712569952011],"max":[0.05495348776458364,0.007955664420290299,0.08160712569952011]},"sizeMeters":[0.11,0.008,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:19.493Z","updatedAt":"2026-09-06T05:04:20.279Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2895/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalMirrorExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2895/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2895/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2895/v1/model.glb\" alt=\"Signal Mirror (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2895/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2895/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2896","slug":"extraction-routes-and-objectives-windsock-mast-20af4edc","title":"Windsock Mast (Extraction Routes and Objectives)","summary":"Windsock Mast, an original survival prop measuring 1.27 × 1.98 × 0.55 m.","description":"Windsock Mast. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.27 × 1.98 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-windsock-mast-20af4edc","cdnUrl":"https://cdn.3dassets.dev/assets/2896/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-windsock-mast-20af4edc","thumbnailUrl":"https://cdn.3dassets.dev/assets/2896/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2896/v1/poster.webp","blurhash":"U47-KG.9004T}=Io0g?F%3bHInn$Tf-orV4:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24652,"triangles":476,"vertices":1428,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.63749824733716,0,-0.27497203071680504],"max":[0.637499988079071,1.980004072189331,0.27497203071680504]},"sizeMeters":[1.275,1.98,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:19.410Z","updatedAt":"2026-09-06T05:04:20.303Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2896/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindsockMastExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2896/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2896/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2896/v1/model.glb\" alt=\"Windsock Mast (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2896/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2896/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2897","slug":"extraction-routes-and-objectives-landing-zone-light-6b719bae","title":"Landing Zone Light (Extraction Routes and Objectives)","summary":"Landing Zone Light, an original survival prop measuring 0.29 × 0.09 × 0.24 m.","description":"Landing Zone Light. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.29 × 0.09 × 0.24 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-landing-zone-light-6b719bae","cdnUrl":"https://cdn.3dassets.dev/assets/2897/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-landing-zone-light-6b719bae","thumbnailUrl":"https://cdn.3dassets.dev/assets/2897/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2897/v1/poster.webp","blurhash":"U884b-x]00I9%MxaIUIV00RP~p%M8_IV?b?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13328,"triangles":280,"vertices":840,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.14499999582767487,-4.577776319073662e-7,-0.11999999731779099],"max":[0.14499999582767487,0.09000182960689601,0.11999999731779099]},"sizeMeters":[0.29,0.09,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:19.518Z","updatedAt":"2026-09-06T05:04:20.402Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2897/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LandingZoneLightExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2897/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2897/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2897/v1/model.glb\" alt=\"Landing Zone Light (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2897/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2897/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2898","slug":"extraction-routes-and-objectives-portable-radio-beacon-fb35ded6","title":"Portable Radio Beacon (Extraction Routes and Objectives)","summary":"Portable Radio Beacon, an original survival prop measuring 0.24 × 0.90 × 0.20 m.","description":"Portable Radio Beacon. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.24 × 0.90 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-portable-radio-beacon-fb35ded6","cdnUrl":"https://cdn.3dassets.dev/assets/2898/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-portable-radio-beacon-fb35ded6","thumbnailUrl":"https://cdn.3dassets.dev/assets/2898/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2898/v1/poster.webp","blurhash":"U16keUt500Ia08IU?%?bI+tQ%5IB4Txa~qIW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49828,"triangles":1052,"vertices":3156,"meshes":6,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.11900000274181367,-0.000004582959517038243,-0.09950128628986452],"max":[0.11900000548362731,0.8999999761581421,0.09950460816413814]},"sizeMeters":[0.238,0.9,0.199],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:22.750Z","updatedAt":"2026-09-06T05:04:23.234Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2898/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PortableRadioBeaconExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2898/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2898/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2898/v1/model.glb\" alt=\"Portable Radio Beacon (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2898/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2898/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2900","slug":"extraction-routes-and-objectives-objective-briefcase-968cad61","title":"Objective Briefcase (Extraction Routes and Objectives)","summary":"Objective Briefcase, an original survival prop measuring 0.45 × 0.24 × 0.34 m.","description":"Objective Briefcase. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.45 × 0.24 × 0.34 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-objective-briefcase-968cad61","cdnUrl":"https://cdn.3dassets.dev/assets/2900/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-objective-briefcase-968cad61","thumbnailUrl":"https://cdn.3dassets.dev/assets/2900/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2900/v1/poster.webp","blurhash":"U471vG?ID%XR4mWAxvoM00D%MxV@~qxuWBNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":43692,"triangles":900,"vertices":2700,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2240000069141386,-0.0000017506431430197589,-0.17100343002035914],"max":[0.22400001382827758,0.24075175052393372,0.17099850915278464]},"sizeMeters":[0.448,0.241,0.342],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:22.948Z","updatedAt":"2026-09-06T05:04:23.839Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2900/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ObjectiveBriefcaseExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2900/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2900/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2900/v1/model.glb\" alt=\"Objective Briefcase (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2900/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2900/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2899","slug":"extraction-routes-and-objectives-sealed-document-tube-65aac009","title":"Sealed Document Tube (Extraction Routes and Objectives)","summary":"Sealed Document Tube, an original survival prop measuring 0.10 × 0.51 × 0.11 m.","description":"Sealed Document Tube. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.10 × 0.51 × 0.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-sealed-document-tube-65aac009","cdnUrl":"https://cdn.3dassets.dev/assets/2899/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-sealed-document-tube-65aac009","thumbnailUrl":"https://cdn.3dassets.dev/assets/2899/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2899/v1/poster.webp","blurhash":"U25}y~?b0000vfs9TeK68wVs?vt,J8SgxGwc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18520,"triangles":332,"vertices":996,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.05000000074505806,0,-0.05299999937415123],"max":[0.05000000074505806,0.5099999904632568,0.05300015196666678]},"sizeMeters":[0.1,0.51,0.106],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:22.972Z","updatedAt":"2026-09-06T05:04:23.729Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2899/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SealedDocumentTubeExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2899/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2899/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2899/v1/model.glb\" alt=\"Sealed Document Tube (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2899/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2899/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2901","slug":"extraction-routes-and-objectives-specimen-transport-ca-c46deb70","title":"Specimen Transport Case (Extraction Routes and Objectives)","summary":"Specimen Transport Case, an original survival prop measuring 0.34 × 0.49 × 0.30 m.","description":"Specimen Transport Case. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.34 × 0.49 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-specimen-transport-ca-c46deb70","cdnUrl":"https://cdn.3dassets.dev/assets/2901/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-specimen-transport-ca-c46deb70","thumbnailUrl":"https://cdn.3dassets.dev/assets/2901/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2901/v1/poster.webp","blurhash":"UDCGMh-p00E14.WB-:of00Ip^+xa~poL9GR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":41716,"triangles":900,"vertices":2700,"meshes":5,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.17000346118703705,4.4703482582342247e-10,-0.14999424401270162],"max":[0.17000346118703705,0.4907500147819519,0.14999786407691346]},"sizeMeters":[0.34,0.491,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:23.119Z","updatedAt":"2026-09-06T05:04:23.937Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2901/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpecimenTransportCaseExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2901/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2901/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2901/v1/model.glb\" alt=\"Specimen Transport Case (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2901/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2901/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2902","slug":"extraction-routes-and-objectives-data-recorder-case-3aee14d2","title":"Data Recorder Case (Extraction Routes and Objectives)","summary":"Data Recorder Case, an original survival prop measuring 0.26 × 0.29 × 0.19 m.","description":"Data Recorder Case. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.26 × 0.29 × 0.19 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-data-recorder-case-3aee14d2","cdnUrl":"https://cdn.3dassets.dev/assets/2902/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-data-recorder-case-3aee14d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/2902/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2902/v1/poster.webp","blurhash":"UDB_;t$*0frr10j[=cSL0}NuODS1}TjaNesA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":39424,"triangles":812,"vertices":2436,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1289999932050705,-0.000006710495806028227,-0.09499727607212596],"max":[0.128999986410141,0.29074999690055847,0.09500650530879688]},"sizeMeters":[0.258,0.291,0.19],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:25.906Z","updatedAt":"2026-09-06T05:04:26.718Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2902/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DataRecorderCaseExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2902/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2902/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2902/v1/model.glb\" alt=\"Data Recorder Case (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2902/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2902/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2903","slug":"extraction-routes-and-objectives-courier-satchel-06849529","title":"Courier Satchel (Extraction Routes and Objectives)","summary":"Courier Satchel, an original survival prop measuring 0.31 × 0.68 × 0.14 m.","description":"Courier Satchel. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.31 × 0.68 × 0.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-courier-satchel-06849529","cdnUrl":"https://cdn.3dassets.dev/assets/2903/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-courier-satchel-06849529","thumbnailUrl":"https://cdn.3dassets.dev/assets/2903/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2903/v1/poster.webp","blurhash":"U67d]=x[00Dk01Rk_1xa4VM|?Z%f~pxa9GIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35356,"triangles":768,"vertices":2304,"meshes":5,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1555433028585674,0,-0.07124816870753037],"max":[0.1555433028585674,0.6832500100135803,0.07124933411085882]},"sizeMeters":[0.311,0.683,0.142],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:26.546Z","updatedAt":"2026-09-06T05:04:27.231Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2903/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourierSatchelExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2903/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2903/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2903/v1/model.glb\" alt=\"Courier Satchel (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2903/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2903/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2904","slug":"extraction-routes-and-objectives-locked-dropbox-b61a8d1a","title":"Locked Dropbox (Extraction Routes and Objectives)","summary":"Locked Dropbox, an original survival prop measuring 0.42 × 0.58 × 0.36 m.","description":"Locked Dropbox. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.42 × 0.58 × 0.36 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-locked-dropbox-b61a8d1a","cdnUrl":"https://cdn.3dassets.dev/assets/2904/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-locked-dropbox-b61a8d1a","thumbnailUrl":"https://cdn.3dassets.dev/assets/2904/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2904/v1/poster.webp","blurhash":"U9A^g%%e00Dk_4jcD$fgM$RRV?xs-.xtIWIC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15944,"triangles":432,"vertices":1296,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.20998381914776534,0,-0.1784969437836138],"max":[0.20998381914776534,0.5799999833106995,0.1784987174065239]},"sizeMeters":[0.42,0.58,0.357],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:26.583Z","updatedAt":"2026-09-06T05:04:27.583Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2904/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LockedDropboxExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2904/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2904/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2904/v1/model.glb\" alt=\"Locked Dropbox (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2904/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2904/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2905","slug":"extraction-routes-and-objectives-buried-cache-hatch-0f1fd9b4","title":"Buried Cache Hatch (Extraction Routes and Objectives)","summary":"Buried Cache Hatch, an original survival prop measuring 0.80 × 0.20 × 0.65 m.","description":"Buried Cache Hatch. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.80 × 0.20 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-buried-cache-hatch-0f1fd9b4","cdnUrl":"https://cdn.3dassets.dev/assets/2905/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-buried-cache-hatch-0f1fd9b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/2905/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2905/v1/poster.webp","blurhash":"U797t#tR00Vs?bozMxRj00V@~qR*00Ri%Nt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20336,"triangles":468,"vertices":1404,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.00001823439990170095,-0.32499771595463256],"max":[0.4000000059604645,0.19587469381232864,0.32499771595463256]},"sizeMeters":[0.8,0.196,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:26.759Z","updatedAt":"2026-09-06T05:04:27.836Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2905/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BuriedCacheHatchExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2905/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2905/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2905/v1/model.glb\" alt=\"Buried Cache Hatch (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2905/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2905/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2914","slug":"extraction-routes-and-objectives-tree-cache-bracket-89cf2b4a","title":"Tree Cache Bracket (Extraction Routes and Objectives)","summary":"Tree Cache Bracket, an original survival prop measuring 0.69 × 0.60 × 0.35 m.","description":"Tree Cache Bracket. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.69 × 0.60 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-tree-cache-bracket-89cf2b4a","cdnUrl":"https://cdn.3dassets.dev/assets/2914/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-tree-cache-bracket-89cf2b4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/2914/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2914/v1/poster.webp","blurhash":"U67naqIT00-;4n%M-;D%8_t7-;WA_ND%IT-=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":42168,"triangles":840,"vertices":2520,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.344993749873318,0,-0.174999243991108],"max":[0.34501221304188145,0.6000000238418579,0.174999243991108]},"sizeMeters":[0.69,0.6,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:30.514Z","updatedAt":"2026-09-06T05:04:31.486Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2914/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TreeCacheBracketExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2914/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2914/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2914/v1/model.glb\" alt=\"Tree Cache Bracket (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2914/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2914/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2915","slug":"extraction-routes-and-objectives-dead-drop-pipe-5c90f28c","title":"Dead Drop Pipe (Extraction Routes and Objectives)","summary":"Dead Drop Pipe, an original survival prop measuring 0.14 × 0.58 × 0.14 m.","description":"Dead Drop Pipe. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.14 × 0.58 × 0.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-dead-drop-pipe-5c90f28c","cdnUrl":"https://cdn.3dassets.dev/assets/2915/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-dead-drop-pipe-5c90f28c","thumbnailUrl":"https://cdn.3dassets.dev/assets/2915/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2915/v1/poster.webp","blurhash":"U44U~Qt700M{_Nof8_Rj-=j[D$WBt8fkRjay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17652,"triangles":332,"vertices":996,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07199999690055847,0,-0.07199999690055847],"max":[0.07199999690055847,0.5800046287466785,0.07199999690055847]},"sizeMeters":[0.144,0.58,0.144],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:50.789Z","updatedAt":"2026-09-06T05:04:51.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2915/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DeadDropPipeExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2915/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2915/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2915/v1/model.glb\" alt=\"Dead Drop Pipe (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2915/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2915/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2916","slug":"extraction-routes-and-objectives-keycard-reader-5dd5e101","title":"Keycard Reader (Extraction Routes and Objectives)","summary":"Keycard Reader, an original survival prop measuring 0.09 × 0.17 × 0.05 m.","description":"Keycard Reader. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.09 × 0.17 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-keycard-reader-5dd5e101","cdnUrl":"https://cdn.3dassets.dev/assets/2916/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-keycard-reader-5dd5e101","thumbnailUrl":"https://cdn.3dassets.dev/assets/2916/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2916/v1/poster.webp","blurhash":"U14_|P_N0000T{S#mlv#00IA?^?v;Lw^GGKi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15932,"triangles":432,"vertices":1296,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.04499679602980232,0,-0.024495117520748004],"max":[0.04499679602980232,0.17000000178813934,0.02449914513368248]},"sizeMeters":[0.09,0.17,0.049],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:50.813Z","updatedAt":"2026-09-06T05:04:51.634Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2916/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KeycardReaderExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2916/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2916/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2916/v1/model.glb\" alt=\"Keycard Reader (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2916/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2916/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2917","slug":"extraction-routes-and-objectives-keypad-pedestal-ef6eb0e2","title":"Keypad Pedestal (Extraction Routes and Objectives)","summary":"Keypad Pedestal, an original survival prop measuring 0.30 × 1.22 × 0.30 m.","description":"Keypad Pedestal. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.30 × 1.22 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-keypad-pedestal-ef6eb0e2","cdnUrl":"https://cdn.3dassets.dev/assets/2917/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-keypad-pedestal-ef6eb0e2","thumbnailUrl":"https://cdn.3dassets.dev/assets/2917/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2917/v1/poster.webp","blurhash":"U168Nw_N000000ni_NNbD%NG-;-pIUWB%Mt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80264,"triangles":1620,"vertices":4860,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1500155588728118,4.470348535789981e-10,-0.1500155588728118],"max":[0.1500155588728118,1.2200000286102295,0.1500155588728118]},"sizeMeters":[0.3,1.22,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:50.617Z","updatedAt":"2026-09-06T05:04:50.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2917/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KeypadPedestalExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2917/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2917/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2917/v1/model.glb\" alt=\"Keypad Pedestal (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2917/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2917/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2926","slug":"extraction-routes-and-objectives-handwheel-access-lock-c248873a","title":"Handwheel Access Lock (Extraction Routes and Objectives)","summary":"Handwheel Access Lock, an original survival prop measuring 0.24 × 0.24 × 0.11 m.","description":"Handwheel Access Lock. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.24 × 0.24 × 0.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-handwheel-access-lock-c248873a","cdnUrl":"https://cdn.3dassets.dev/assets/2926/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-handwheel-access-lock-c248873a","thumbnailUrl":"https://cdn.3dassets.dev/assets/2926/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2926/v1/poster.webp","blurhash":"U5A,^4%M00RQ_NtRDiRP00M{%MaeWUxuV@D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":56212,"triangles":1148,"vertices":3444,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.12200000137090683,0,-0.055241981882386076],"max":[0.12200000137090683,0.24400000274181366,0.055241981882386076]},"sizeMeters":[0.244,0.244,0.11],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:52.197Z","updatedAt":"2026-09-06T05:04:53.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2926/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HandwheelAccessLockExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2926/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2926/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2926/v1/model.glb\" alt=\"Handwheel Access Lock (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2926/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2926/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2927","slug":"extraction-routes-and-objectives-chain-barrier-post-0434bc6f","title":"Chain Barrier Post (Extraction Routes and Objectives)","summary":"Chain Barrier Post, an original survival prop measuring 1.25 × 0.95 × 0.30 m.","description":"Chain Barrier Post. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.25 × 0.95 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-chain-barrier-post-0434bc6f","cdnUrl":"https://cdn.3dassets.dev/assets/2927/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-chain-barrier-post-0434bc6f","thumbnailUrl":"https://cdn.3dassets.dev/assets/2927/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2927/v1/poster.webp","blurhash":"UA8XIB~oIT8{?GxrRPM|4UIVtRt7E2o$x^V@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22912,"triangles":424,"vertices":1272,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6265555024147034,5.513429712777906e-9,-0.14998936005557217],"max":[0.6265555024147034,0.949999988079071,0.14998936005557217]},"sizeMeters":[1.253,0.95,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:53.798Z","updatedAt":"2026-09-06T05:04:54.592Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2927/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChainBarrierPostExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2927/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2927/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2927/v1/model.glb\" alt=\"Chain Barrier Post (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2927/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2927/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2933","slug":"extraction-routes-and-objectives-folding-access-gate-01def88d","title":"Folding Access Gate (Extraction Routes and Objectives)","summary":"Folding Access Gate, an original survival prop measuring 1.42 × 1.00 × 0.50 m.","description":"Folding Access Gate. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.42 × 1.00 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-folding-access-gate-01def88d","cdnUrl":"https://cdn.3dassets.dev/assets/2933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-folding-access-gate-01def88d","thumbnailUrl":"https://cdn.3dassets.dev/assets/2933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2933/v1/poster.webp","blurhash":"U5AmxVxu4.%g%g~qMxD%00Rj={RP9FNG-;WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":96868,"triangles":1980,"vertices":5940,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7099999785423279,0.000013660177106245008,-0.24998534356037588],"max":[0.7099999785423279,1.0049820431475696,0.24998534356037588]},"sizeMeters":[1.42,1.005,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:55.330Z","updatedAt":"2026-09-06T05:04:55.622Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2933/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingAccessGateExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2933/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2933/v1/model.glb\" alt=\"Folding Access Gate (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2933/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2928","slug":"extraction-routes-and-objectives-checkpoint-turnstile-e4ae7fcd","title":"Checkpoint Turnstile (Extraction Routes and Objectives)","summary":"Checkpoint Turnstile, an original survival prop measuring 0.77 × 1.09 × 0.45 m.","description":"Checkpoint Turnstile. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.77 × 1.09 × 0.45 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-checkpoint-turnstile-e4ae7fcd","cdnUrl":"https://cdn.3dassets.dev/assets/2928/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-checkpoint-turnstile-e4ae7fcd","thumbnailUrl":"https://cdn.3dassets.dev/assets/2928/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2928/v1/poster.webp","blurhash":"U79Q+~_M0000.7tkM|RP9GNG%f%LoykVa#aL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31572,"triangles":620,"vertices":1860,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.38583847462551585,0,-0.22500839333516395],"max":[0.38583847462551585,1.0925655364990234,0.22498863806272917]},"sizeMeters":[0.772,1.093,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:54.506Z","updatedAt":"2026-09-06T05:04:55.284Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2928/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheckpointTurnstileExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2928/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2928/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2928/v1/model.glb\" alt=\"Checkpoint Turnstile (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2928/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2928/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2938","slug":"extraction-routes-and-objectives-evacuation-supply-rac-226a14bd","title":"Evacuation Supply Rack (Extraction Routes and Objectives)","summary":"Evacuation Supply Rack, an original survival prop measuring 1.25 × 1.60 × 0.55 m.","description":"Evacuation Supply Rack. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.25 × 1.60 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-evacuation-supply-rac-226a14bd","cdnUrl":"https://cdn.3dassets.dev/assets/2938/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-evacuation-supply-rac-226a14bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/2938/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2938/v1/poster.webp","blurhash":"U6Bf|d~q00x]}p-pAI9Z00IAOZELD%s.xuEM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62068,"triangles":1296,"vertices":3888,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6225055618165639,0,-0.2725070921339398],"max":[0.6225055618165639,1.5999685583485128,0.2725070921339398]},"sizeMeters":[1.245,1.6,0.545],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:55.840Z","updatedAt":"2026-09-06T05:04:56.618Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2938/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EvacuationSupplyRackExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2938/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2938/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2938/v1/model.glb\" alt=\"Evacuation Supply Rack (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2938/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2938/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2939","slug":"extraction-routes-and-objectives-pickup-cargo-sling-52a44b67","title":"Pickup Cargo Sling (Extraction Routes and Objectives)","summary":"Pickup Cargo Sling, an original survival prop measuring 0.90 × 1.34 × 0.90 m.","description":"Pickup Cargo Sling. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.90 × 1.34 × 0.90 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-pickup-cargo-sling-52a44b67","cdnUrl":"https://cdn.3dassets.dev/assets/2939/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-pickup-cargo-sling-52a44b67","thumbnailUrl":"https://cdn.3dassets.dev/assets/2939/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2939/v1/poster.webp","blurhash":"U5BptZ%M00M~00NGx-oc00V[~qWA%LkB^+t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33064,"triangles":636,"vertices":1908,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.000023727639644421927,-0.44999998807907104],"max":[0.44999998807907104,1.3440000116825104,0.44999998807907104]},"sizeMeters":[0.9,1.344,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:57.269Z","updatedAt":"2026-09-06T05:04:58.086Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2939/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PickupCargoSlingExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2939/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2939/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2939/v1/model.glb\" alt=\"Pickup Cargo Sling (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2939/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2939/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2940","slug":"extraction-routes-and-objectives-rescue-winch-1339822a","title":"Rescue Winch (Extraction Routes and Objectives)","summary":"Rescue Winch, an original survival prop measuring 0.72 × 0.37 × 0.89 m.","description":"Rescue Winch. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 0.72 × 0.37 × 0.89 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-rescue-winch-1339822a","cdnUrl":"https://cdn.3dassets.dev/assets/2940/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-rescue-winch-1339822a","thumbnailUrl":"https://cdn.3dassets.dev/assets/2940/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2940/v1/poster.webp","blurhash":"U57K;v9H00WSMyWTozof00?Z_4WF.7fAMxof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":48632,"triangles":960,"vertices":2880,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.35997408696154953,-0.000018020662694739897,-0.4465000033378601],"max":[0.3599981716801465,0.37001098845171443,0.4465000033378601]},"sizeMeters":[0.72,0.37,0.893],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:58.294Z","updatedAt":"2026-09-06T05:04:58.800Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2940/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RescueWinchExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2940/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2940/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2940/v1/model.glb\" alt=\"Rescue Winch (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2940/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2940/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2942","slug":"extraction-routes-and-objectives-rendezvous-map-board-b13c0787","title":"Rendezvous Map Board (Extraction Routes and Objectives)","summary":"Rendezvous Map Board, an original survival prop measuring 1.00 × 1.25 × 0.08 m.","description":"Rendezvous Map Board. Purpose-built extraction equipment with constructed hardware and material separation. Dimensions 1.00 × 1.25 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette. Static geometry; no rig, animation, collision or navigation data. Movable named parts are separate static nodes; consumer supplies interaction. No functional medical, electrical or food-safety simulation.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-rendezvous-map-board-b13c0787","cdnUrl":"https://cdn.3dassets.dev/assets/2942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-rendezvous-map-board-b13c0787","thumbnailUrl":"https://cdn.3dassets.dev/assets/2942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2942/v1/poster.webp","blurhash":"U9ATZbof00Rj~V%L4o9Z01s:_2Ip00WB~pof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49280,"triangles":864,"vertices":2592,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,0.000002287135197120982,-0.04250686720773098],"max":[0.5,1.2500167911406763,0.04250001139007509]},"sizeMeters":[1,1.25,0.085],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:04:58.457Z","updatedAt":"2026-09-06T05:05:00.307Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2942/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RendezvousMapBoardExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2942/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2942/v1/model.glb\" alt=\"Rendezvous Map Board (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2942/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2950","slug":"extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","title":"Rendezvous Checkpoint (Extraction Routes and Objectives)","summary":"Composed example for Extraction Routes and Objectives.","description":"Rendezvous Checkpoint assembled from canonical models in this pack. Demonstration layout only; systems are not simulated.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/2950/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-rendezv-cee551d5-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/2950/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2950/v1/poster.webp","blurhash":"U48NqYxa00OE?H-;E10100bI~qIU9ZD%-:_3","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":130492,"triangles":6456,"vertices":5169,"meshes":20,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.6,-0.0000017506431430197589,-0.542506867207731],"max":[1.676898435931561,1.350000023841858,1.1749999970197678]},"sizeMeters":[3.277,1.35,1.718],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:05:00.377Z","updatedAt":"2026-09-06T05:05:02.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2950/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RendezvousCheckpointExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2950/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2950/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2950/v1/model.glb\" alt=\"Rendezvous Checkpoint (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2950/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2950/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"2951","slug":"extraction-routes-and-objectives-cargo-extraction-pad-12c03acc","title":"Cargo Extraction Pad (Extraction Routes and Objectives)","summary":"Composed example for Extraction Routes and Objectives.","description":"Cargo Extraction Pad assembled from canonical models in this pack. Demonstration layout only; systems are not simulated.","status":"published","url":"https://3dassets.dev/assets/extraction-routes-and-objectives-cargo-extraction-pad-12c03acc","cdnUrl":"https://cdn.3dassets.dev/assets/2951/v1/model.glb","downloadUrl":"https://3dassets.dev/download/extraction-routes-and-objectives-cargo-extraction-pad-12c03acc","thumbnailUrl":"https://cdn.3dassets.dev/assets/2951/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/2951/v1/poster.webp","blurhash":"U4Amey0000=xmSELK4=x00_3%#xt.l^jR50g","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":95360,"triangles":4764,"vertices":3903,"meshes":21,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.63749824733716,-0.000023727639644421927,-1.6725070921339398],"max":[1.2599981716801465,1.980004072189331,1.119999997317791]},"sizeMeters":[2.897,1.98,2.793],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T05:05:02.110Z","updatedAt":"2026-09-06T05:05:02.711Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/2951/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CargoExtractionPadExtractionRoutesAndObjectives(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/2951/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/2951/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/2951/v1/model.glb\" alt=\"Cargo Extraction Pad (Extraction Routes and Objectives)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/2951/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/2951/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}