{"data":{"id":8,"slug":"reclamation-yard","title":"Reclamation Yard","summary":"A practical salvage compound with repaired steel structures, workshop tools, water storage and a reclaimed utility truck.","description":"A practical salvage compound with repaired steel structures, workshop tools, water storage and a reclaimed utility truck. Individually reusable GLB models share a coordinated material palette, metre scale and grounded origins. The assembled sample scene demonstrates placement and a navigable layout. Static meshes only; collision meshes, scripts and animation are not included. CC0.","url":"https://3dassets.dev/packs/reclamation-yard","coverUrl":"https://cdn.3dassets.dev/assets/239/v1/poster.webp","assetCount":25,"aiGenerated":true,"aiGeneratedAssetCount":25,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":2091112,"totalTriangles":37988,"starterScene":{"id":"239","slug":"reclamation-yard-starter-scene","title":"Reclamation Yard starter scene","summary":"A composed reclamation yard scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Reclamation Yard kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/239/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/239/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/239/v1/poster.webp","blurhash":"U3BM-[?a00E34:t6oaIV00D*_1aI_2R-%M%f","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":930424,"triangles":18172,"vertices":54516,"meshes":80,"materials":8,"textures":2,"animations":[],"boundingBox":{"min":[-7.675000190734863,-0.20003357310786357,-6.749756263632267],"max":[7.5,4.4704508781433105,6.861756252188175]},"sizeMeters":[15.175,4.67,13.612],"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-06T03:19:41.004Z","updatedAt":"2026-09-06T03:41:44.730Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/239/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/239/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/239/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/239/v1/model.glb\" alt=\"Reclamation Yard starter scene\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/239/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/239/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"215","slug":"reclamation-yard-open-salvage-workshop","title":"Reclamation Yard: Open salvage workshop","summary":"Six-metre open-front repair shed with corrugated side walls, steel roof trusses and a clear central work bay.","description":"Six-metre open-front repair shed with corrugated side walls, steel roof trusses and a clear central work bay.\n\nPart of Reclamation Yard. Dimensions: 6.24 × 3.7 × 4.35 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-open-salvage-workshop","cdnUrl":"https://cdn.3dassets.dev/assets/215/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-open-salvage-workshop","thumbnailUrl":"https://cdn.3dassets.dev/assets/215/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/215/v1/poster.webp","blurhash":"U2DS,ayE00NFThocR4i_00%0D*nOZe?v?bD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":54876,"triangles":692,"vertices":2076,"meshes":6,"materials":6,"textures":2,"animations":[],"boundingBox":{"min":[-3.119999885559082,-0.00007553033072085769,-2.1749637557890726],"max":[3.119999885559082,3.700049249106474,2.1749637557890726]},"sizeMeters":[6.24,3.7,4.35],"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-06T03:18:33.078Z","updatedAt":"2026-09-06T03:41:44.938Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/215/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardOpenSalvageWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/215/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/215/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/215/v1/model.glb\" alt=\"Reclamation Yard: Open salvage workshop\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/215/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/215/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"216","slug":"reclamation-yard-salvage-lookout-platform","title":"Reclamation Yard: Salvage lookout platform","summary":"Braced elevated lookout with a ladder, partial sheet-metal parapet and a small pitched shelter roof.","description":"Braced elevated lookout with a ladder, partial sheet-metal parapet and a small pitched shelter roof.\n\nPart of Reclamation Yard. Dimensions: 2.5 × 4.47 × 2.5 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-salvage-lookout-platform","cdnUrl":"https://cdn.3dassets.dev/assets/216/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-salvage-lookout-platform","thumbnailUrl":"https://cdn.3dassets.dev/assets/216/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/216/v1/poster.webp","blurhash":"U69jr+%f00Dj~pRjD%%MI]RQn4oz0LRQ?Gxu","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33300,"triangles":532,"vertices":1596,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.2501218114696846,0,-1.2501218114696846],"max":[1.2501218114696846,4.4704508781433105,1.2501218114696846]},"sizeMeters":[2.5,4.47,2.5],"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-06T03:18:35.892Z","updatedAt":"2026-09-06T03:41:44.930Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/216/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardSalvageLookoutPlatform(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/216/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/216/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/216/v1/model.glb\" alt=\"Reclamation Yard: Salvage lookout platform\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/216/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/216/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"217","slug":"reclamation-yard-broken-masonry-wall","title":"Reclamation Yard: Broken masonry wall","summary":"Two-metre broken wall section with an uneven stepped top, exposed block joints and short protruding reinforcement rods.","description":"Two-metre broken wall section with an uneven stepped top, exposed block joints and short protruding reinforcement rods.\n\nPart of Reclamation Yard. Dimensions: 2 × 1.91 × 0.36 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Use 2 m placement increments for modular layout. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-broken-masonry-wall","cdnUrl":"https://cdn.3dassets.dev/assets/217/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-broken-masonry-wall","thumbnailUrl":"https://cdn.3dassets.dev/assets/217/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/217/v1/poster.webp","blurhash":"U5C6rq~W00D%9G_2?H4o00D*~o%Ms:M|kDoL","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29444,"triangles":256,"vertices":768,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.9850000143051147,-0.000013327498160409235,-0.16000427297376263],"max":[1.0099999904632568,1.9115790750602961,0.20000060962511781]},"sizeMeters":[1.995,1.912,0.36],"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-06T03:18:39.377Z","updatedAt":"2026-09-06T03:41:44.923Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/217/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardBrokenMasonryWall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/217/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/217/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/217/v1/model.glb\" alt=\"Reclamation Yard: Broken masonry wall\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/217/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/217/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"218","slug":"reclamation-yard-salvage-compound-gate","title":"Reclamation Yard: Salvage compound gate","summary":"Four-metre gate frame with a clear entrance, welded header, warning panels and offset light mount.","description":"Four-metre gate frame with a clear entrance, welded header, warning panels and offset light mount.\n\nPart of Reclamation Yard. Dimensions: 4.41 × 3.8 × 0.55 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Use 2 m placement increments for modular layout. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-salvage-compound-gate","cdnUrl":"https://cdn.3dassets.dev/assets/218/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-salvage-compound-gate","thumbnailUrl":"https://cdn.3dassets.dev/assets/218/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/218/v1/poster.webp","blurhash":"U39Z}-xB00~V~W?I4oD%0NSinN9G0L.l_14T","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":66264,"triangles":960,"vertices":2880,"meshes":6,"materials":6,"textures":2,"animations":[],"boundingBox":{"min":[-2.2049999237060547,-0.00000419155243891467,-0.27509505563861053],"max":[2.2049999237060547,3.800003694011639,0.27509505563861053]},"sizeMeters":[4.41,3.8,0.55],"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-06T03:18:41.636Z","updatedAt":"2026-09-06T03:41:44.915Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/218/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardSalvageCompoundGate(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/218/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/218/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/218/v1/model.glb\" alt=\"Reclamation Yard: Salvage compound gate\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/218/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/218/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"219","slug":"reclamation-yard-repaired-road-barricade","title":"Reclamation Yard: Repaired road barricade","summary":"Two-metre concrete traffic barrier with tapered profile, lifting loops and bolted rust-colour repair strips.","description":"Two-metre concrete traffic barrier with tapered profile, lifting loops and bolted rust-colour repair strips.\n\nPart of Reclamation Yard. Dimensions: 2 × 0.93 × 0.64 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Use 2 m placement increments for modular layout. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-repaired-road-barricade","cdnUrl":"https://cdn.3dassets.dev/assets/219/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-repaired-road-barricade","thumbnailUrl":"https://cdn.3dassets.dev/assets/219/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/219/v1/poster.webp","blurhash":"U7D]SM-p00s,-;~VenD*00Iq%1RjIVI;I[IU","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":93548,"triangles":1636,"vertices":4908,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.000004565855492466575,-0.2750633259071627],"max":[1,0.9249981635027573,0.3620333815339176]},"sizeMeters":[2,0.925,0.637],"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-06T03:18:43.919Z","updatedAt":"2026-09-06T03:41:44.905Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/219/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardRepairedRoadBarricade(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/219/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/219/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/219/v1/model.glb\" alt=\"Reclamation Yard: Repaired road barricade\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/219/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/219/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"220","slug":"reclamation-yard-patched-compound-road","title":"Reclamation Yard: Patched compound road","summary":"Four-metre concrete road tile with irregular repair plates, expansion joints and worn-colour edge marks.","description":"Four-metre concrete road tile with irregular repair plates, expansion joints and worn-colour edge marks.\n\nPart of Reclamation Yard. Dimensions: 4 × 0.14 × 4 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Use 2 m placement increments for modular layout. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-patched-compound-road","cdnUrl":"https://cdn.3dassets.dev/assets/220/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-patched-compound-road","thumbnailUrl":"https://cdn.3dassets.dev/assets/220/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/220/v1/poster.webp","blurhash":"U4Aw6f-=00$K%NWVawof00IT~oJB9Fs:V_Rk","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33972,"triangles":260,"vertices":780,"meshes":5,"materials":5,"textures":2,"animations":[],"boundingBox":{"min":[-2,-0.00005035479557733563,-2],"max":[2,0.14002014325933543,2]},"sizeMeters":[4,0.14,4],"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-06T03:18:46.540Z","updatedAt":"2026-09-06T03:41:44.897Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/220/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardPatchedCompoundRoad(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/220/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/220/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/220/v1/model.glb\" alt=\"Reclamation Yard: Patched compound road\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/220/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/220/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"221","slug":"reclamation-yard-reclaimed-utility-truck","title":"Reclamation Yard: Reclaimed utility truck","summary":"Short-bed utility pickup with patched cab panels, open cargo bed, tubular rack and reinforced front bumper.","description":"Short-bed utility pickup with patched cab panels, open cargo bed, tubular rack and reinforced front bumper.\n\nPart of Reclamation Yard. Dimensions: 2.04 × 2.06 × 4.34 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-reclaimed-utility-truck","cdnUrl":"https://cdn.3dassets.dev/assets/221/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-reclaimed-utility-truck","thumbnailUrl":"https://cdn.3dassets.dev/assets/221/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/221/v1/poster.webp","blurhash":"U7A^O9.94UMx-p9HIA%000IAx[xu9t~U-;oh","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38656,"triangles":724,"vertices":2172,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.0200568188294379,0.00008238750384947924,-2.1500000953674316],"max":[1.0200568188294379,2.0600935684201933,2.194999933242798]},"sizeMeters":[2.04,2.06,4.345],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:18:48.957Z","updatedAt":"2026-09-06T03:41:44.889Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/221/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardReclaimedUtilityTruck(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/221/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/221/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/221/v1/model.glb\" alt=\"Reclamation Yard: Reclaimed utility truck\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/221/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/221/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"222","slug":"reclamation-yard-two-wheel-salvage-handcart","title":"Reclamation Yard: Two-wheel salvage handcart","summary":"Manual cargo handcart with slatted wooden bed, steel side rails, long handles and a resting support leg.","description":"Manual cargo handcart with slatted wooden bed, steel side rails, long handles and a resting support leg.\n\nPart of Reclamation Yard. Dimensions: 1.15 × 0.87 × 2.16 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-two-wheel-salvage-handcart","cdnUrl":"https://cdn.3dassets.dev/assets/222/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-two-wheel-salvage-handcart","thumbnailUrl":"https://cdn.3dassets.dev/assets/222/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/222/v1/poster.webp","blurhash":"U47B1HI.4:r=~pM{E1jF00V[rqg401%2nhtl","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35300,"triangles":564,"vertices":1692,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5750224964952004,-0.00002877473300016975,-0.6499999761581421],"max":[0.5750224964952004,0.8729632499489607,1.5049999952316284]},"sizeMeters":[1.15,0.873,2.155],"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-06T03:18:50.980Z","updatedAt":"2026-09-06T03:41:44.881Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/222/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardTwoWheelSalvageHandcart(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/222/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/222/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/222/v1/model.glb\" alt=\"Reclamation Yard: Two-wheel salvage handcart\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/222/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/222/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"223","slug":"reclamation-yard-static-reclamation-worker","title":"Reclamation Yard: Static reclamation worker","summary":"Standing salvage worker with safety headgear, utility belt, work boots and an equipment harness. No rig or animation.","description":"Standing salvage worker with safety headgear, utility belt, work boots and an equipment harness. No rig or animation.\n\nPart of Reclamation Yard. Dimensions: 0.88 × 1.78 × 0.42 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-static-reclamation-worker","cdnUrl":"https://cdn.3dassets.dev/assets/223/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-static-reclamation-worker","thumbnailUrl":"https://cdn.3dassets.dev/assets/223/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/223/v1/poster.webp","blurhash":"U68XLG%M009GxtjIM|kB00Rk~pxtE1R%%2xH","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46560,"triangles":772,"vertices":2316,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.4400022523483642,0,-0.20997175294169756],"max":[0.4400022523483642,1.7799999713897705,0.20997175294169756]},"sizeMeters":[0.88,1.78,0.42],"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-06T03:18:53.454Z","updatedAt":"2026-09-06T03:41:44.872Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/223/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardStaticReclamationWorker(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/223/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/223/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/223/v1/model.glb\" alt=\"Reclamation Yard: Static reclamation worker\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/223/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/223/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"224","slug":"reclamation-yard-caged-water-cistern","title":"Reclamation Yard: Caged water cistern","summary":"Site water tank in a one-metre-wide steel cage with pallet foot, fill cap and a front outlet tap.","description":"Site water tank in a one-metre-wide steel cage with pallet foot, fill cap and a front outlet tap.\n\nPart of Reclamation Yard. Dimensions: 1.03 × 1.14 × 1.19 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-caged-water-cistern","cdnUrl":"https://cdn.3dassets.dev/assets/224/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-caged-water-cistern","thumbnailUrl":"https://cdn.3dassets.dev/assets/224/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/224/v1/poster.webp","blurhash":"U9CZIb-:00IU?]juM{t500IVtRxuIVWEaLWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38236,"triangles":348,"vertices":1044,"meshes":5,"materials":5,"textures":2,"animations":[],"boundingBox":{"min":[-0.5175257541838865,0.0000106844935427175,-0.5249999761581421],"max":[0.5175257541838865,1.1400412359403194,0.6600000262260437]},"sizeMeters":[1.035,1.14,1.185],"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-06T03:18:56.254Z","updatedAt":"2026-09-06T03:41:44.863Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/224/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardCagedWaterCistern(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/224/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/224/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/224/v1/model.glb\" alt=\"Reclamation Yard: Caged water cistern\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/224/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/224/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"225","slug":"reclamation-yard-ribbed-salvage-drum","title":"Reclamation Yard: Ribbed salvage drum","summary":"Standard steel storage drum with rolled rims, two reinforcing ribs, recessed lid and offset bung.","description":"Standard steel storage drum with rolled rims, two reinforcing ribs, recessed lid and offset bung.\n\nPart of Reclamation Yard. Dimensions: 0.61 × 0.9 × 0.61 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-ribbed-salvage-drum","cdnUrl":"https://cdn.3dassets.dev/assets/225/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-ribbed-salvage-drum","thumbnailUrl":"https://cdn.3dassets.dev/assets/225/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/225/v1/poster.webp","blurhash":"U5B:pS^%0056}?R%5mt8DjNK%z$$x]RkMytQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71076,"triangles":1356,"vertices":4068,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.3050112885617102,0,-0.3050112885617102],"max":[0.3050112885617102,0.8949986963074438,0.3064942753392827]},"sizeMeters":[0.61,0.895,0.612],"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-06T03:18:58.774Z","updatedAt":"2026-09-06T03:41:44.854Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/225/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardRibbedSalvageDrum(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/225/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/225/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/225/v1/model.glb\" alt=\"Reclamation Yard: Ribbed salvage drum\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/225/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/225/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"226","slug":"reclamation-yard-stacked-spare-tyres","title":"Reclamation Yard: Stacked spare tyres","summary":"Three hollow used tyres with staggered tread blocks and a loose steel rim visible on top.","description":"Three hollow used tyres with staggered tread blocks and a loose steel rim visible on top.\n\nPart of Reclamation Yard. Dimensions: 0.75 × 0.61 × 0.75 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-stacked-spare-tyres","cdnUrl":"https://cdn.3dassets.dev/assets/226/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-stacked-spare-tyres","thumbnailUrl":"https://cdn.3dassets.dev/assets/226/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/226/v1/poster.webp","blurhash":"U25=CC%L00IU_Mfj8{ju4oRkxas:9Fa{-;a#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":82368,"triangles":1680,"vertices":5040,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.375,-0.000016010296545965197,-0.375],"max":[0.375,0.6099865642015079,0.375]},"sizeMeters":[0.75,0.61,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:00.622Z","updatedAt":"2026-09-06T03:41:44.846Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/226/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardStackedSpareTyres(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/226/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/226/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/226/v1/model.glb\" alt=\"Reclamation Yard: Stacked spare tyres\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/226/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/226/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"227","slug":"reclamation-yard-timber-cable-spool","title":"Reclamation Yard: Timber cable spool","summary":"Large wooden cable spool with radial hub, wound dark cable and bolted circular flanges.","description":"Large wooden cable spool with radial hub, wound dark cable and bolted circular flanges.\n\nPart of Reclamation Yard. Dimensions: 1.06 × 0.7 × 1.06 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-timber-cable-spool","cdnUrl":"https://cdn.3dassets.dev/assets/227/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-timber-cable-spool","thumbnailUrl":"https://cdn.3dassets.dev/assets/227/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/227/v1/poster.webp","blurhash":"U28{zM^O01IC}-oIEksp0LJ6TxbvKiS##8NG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":151220,"triangles":2944,"vertices":8832,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5299999713897705,-0.000008680343184130912,-0.5299999713897705],"max":[0.5299999713897705,0.7019778182942396,0.5299999713897705]},"sizeMeters":[1.06,0.702,1.06],"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-06T03:19:02.844Z","updatedAt":"2026-09-06T03:41:44.836Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/227/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardTimberCableSpool(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/227/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/227/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/227/v1/model.glb\" alt=\"Reclamation Yard: Timber cable spool\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/227/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/227/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"228","slug":"reclamation-yard-caged-portable-generator","title":"Reclamation Yard: Caged portable generator","summary":"Portable combustion generator with protective frame, fuel tank, finned engine block and paired outlet panel.","description":"Portable combustion generator with protective frame, fuel tank, finned engine block and paired outlet panel.\n\nPart of Reclamation Yard. Dimensions: 0.97 × 0.76 × 0.73 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-caged-portable-generator","cdnUrl":"https://cdn.3dassets.dev/assets/228/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-caged-portable-generator","thumbnailUrl":"https://cdn.3dassets.dev/assets/228/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/228/v1/poster.webp","blurhash":"UFB|E7tR02s9_MxtIBRk4;sos+R-H@NGbvxY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":40780,"triangles":792,"vertices":2376,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.48500001430511475,-0.000022132064831426046,-0.364989634472177],"max":[0.48500001430511475,0.7600157181519613,0.364989634472177]},"sizeMeters":[0.97,0.76,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:05.164Z","updatedAt":"2026-09-06T03:41:44.826Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/228/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardCagedPortableGenerator(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/228/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/228/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/228/v1/model.glb\" alt=\"Reclamation Yard: Caged portable generator\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/228/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/228/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"229","slug":"reclamation-yard-heavy-repair-workbench","title":"Reclamation Yard: Heavy repair workbench","summary":"Two-metre workshop bench with a thick timber top, lower storage shelf, corner brackets and tool back rail.","description":"Two-metre workshop bench with a thick timber top, lower storage shelf, corner brackets and tool back rail.\n\nPart of Reclamation Yard. Dimensions: 2 × 1.3 × 0.9 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-heavy-repair-workbench","cdnUrl":"https://cdn.3dassets.dev/assets/229/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-heavy-repair-workbench","thumbnailUrl":"https://cdn.3dassets.dev/assets/229/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/229/v1/poster.webp","blurhash":"U29i*fsq1Q^%}9^j9v9Z01IVmRIU7LtQt7NI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52440,"triangles":940,"vertices":2820,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.000025064263370122575,-0.4499954222235786],"max":[1,1.3000250165796543,0.4499954222235786]},"sizeMeters":[2,1.3,0.9],"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-06T03:19:07.173Z","updatedAt":"2026-09-06T03:41:44.817Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/229/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardHeavyRepairWorkbench(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/229/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/229/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/229/v1/model.glb\" alt=\"Reclamation Yard: Heavy repair workbench\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/229/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/229/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"230","slug":"reclamation-yard-steel-bench-vice","title":"Reclamation Yard: Steel bench vice","summary":"Compact bench vice with opposing jaws, exposed leadscrew, sliding handle and slotted mounting feet.","description":"Compact bench vice with opposing jaws, exposed leadscrew, sliding handle and slotted mounting feet.\n\nPart of Reclamation Yard. Dimensions: 0.3 × 0.29 × 0.49 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-steel-bench-vice","cdnUrl":"https://cdn.3dassets.dev/assets/230/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-steel-bench-vice","thumbnailUrl":"https://cdn.3dassets.dev/assets/230/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/230/v1/poster.webp","blurhash":"U7AJyTEM00=_~WIpIU%101Mx?Ex^9anNxZkr","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33212,"triangles":640,"vertices":1920,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.14799206685051436,-0.000011432571330682872,-0.18000000715255737],"max":[0.14799206685051436,0.285011428995052,0.30799999833106995]},"sizeMeters":[0.296,0.285,0.488],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:09.472Z","updatedAt":"2026-09-06T03:41:44.807Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/230/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardSteelBenchVice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/230/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/230/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/230/v1/model.glb\" alt=\"Reclamation Yard: Steel bench vice\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/230/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/230/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"231","slug":"reclamation-yard-long-handle-bolt-cutters","title":"Reclamation Yard: Long-handle bolt cutters","summary":"Static workshop bolt cutters with paired grips, articulated-looking steel linkage and opposed cutting jaws.","description":"Static workshop bolt cutters with paired grips, articulated-looking steel linkage and opposed cutting jaws.\n\nPart of Reclamation Yard. Dimensions: 0.41 × 0.74 × 0.08 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-long-handle-bolt-cutters","cdnUrl":"https://cdn.3dassets.dev/assets/231/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-long-handle-bolt-cutters","thumbnailUrl":"https://cdn.3dassets.dev/assets/231/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/231/v1/poster.webp","blurhash":"U47AuOoM00SK-;t6D*Ip0iR+}rs.WAS5xa$f","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26476,"triangles":500,"vertices":1500,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.20533067802923455,0,-0.02600722248679717],"max":[0.20533067802923455,0.7407934665679932,0.053007221324506595]},"sizeMeters":[0.411,0.741,0.079],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:11.886Z","updatedAt":"2026-09-06T03:41:44.797Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/231/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardLongHandleBoltCutters(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/231/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/231/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/231/v1/model.glb\" alt=\"Reclamation Yard: Long-handle bolt cutters\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/231/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/231/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"232","slug":"reclamation-yard-adjustable-pipe-wrench","title":"Reclamation Yard: Adjustable pipe wrench","summary":"One-handed pipe wrench with cast handle, exposed adjustment wheel and serrated opposing jaws.","description":"One-handed pipe wrench with cast handle, exposed adjustment wheel and serrated opposing jaws.\n\nPart of Reclamation Yard. Dimensions: 0.13 × 0.49 × 0.05 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-adjustable-pipe-wrench","cdnUrl":"https://cdn.3dassets.dev/assets/232/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-adjustable-pipe-wrench","thumbnailUrl":"https://cdn.3dassets.dev/assets/232/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/232/v1/poster.webp","blurhash":"U37^i8^i0002~qs:8_S1GaNu#7-ABCN_#*,p","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15352,"triangles":268,"vertices":804,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.03499466141566866,0,-0.027002009929770837],"max":[0.09099948746299877,0.49000000953674316,0.027002009929770837]},"sizeMeters":[0.126,0.49,0.054],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:20.562Z","updatedAt":"2026-09-06T03:41:44.789Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/232/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardAdjustablePipeWrench(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/232/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/232/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/232/v1/model.glb\" alt=\"Reclamation Yard: Adjustable pipe wrench\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/232/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/232/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"233","slug":"reclamation-yard-field-trenching-shovel","title":"Reclamation Yard: Field trenching shovel","summary":"Wood-handled digging shovel with a tapered steel blade, reinforced socket and open D grip.","description":"Wood-handled digging shovel with a tapered steel blade, reinforced socket and open D grip.\n\nPart of Reclamation Yard. Dimensions: 0.24 × 1.18 × 0.06 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-field-trenching-shovel","cdnUrl":"https://cdn.3dassets.dev/assets/233/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-field-trenching-shovel","thumbnailUrl":"https://cdn.3dassets.dev/assets/233/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/233/v1/poster.webp","blurhash":"U15Xuy?H00004TWB_MoyystRQlMd?]oy8_Vt","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20656,"triangles":256,"vertices":768,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.1199720495005539,0,-0.027965015097104202],"max":[0.1199720495005539,1.180997676390211,0.027965015097104202]},"sizeMeters":[0.24,1.181,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-06T03:19:22.576Z","updatedAt":"2026-09-06T03:41:44.780Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/233/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardFieldTrenchingShovel(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/233/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/233/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/233/v1/model.glb\" alt=\"Reclamation Yard: Field trenching shovel\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/233/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/233/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"234","slug":"reclamation-yard-two-bay-salvage-rack","title":"Reclamation Yard: Two-bay salvage rack","summary":"Two-metre workshop rack with three shelf levels, diagonal bracing and distinct bins for reclaimed parts.","description":"Two-metre workshop rack with three shelf levels, diagonal bracing and distinct bins for reclaimed parts.\n\nPart of Reclamation Yard. Dimensions: 2 × 1.86 × 0.8 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-two-bay-salvage-rack","cdnUrl":"https://cdn.3dassets.dev/assets/234/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-two-bay-salvage-rack","thumbnailUrl":"https://cdn.3dassets.dev/assets/234/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/234/v1/poster.webp","blurhash":"U3Bfe3^j00IoDR?G?t4:00E2}q%ylnpIM0n4","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30452,"triangles":468,"vertices":1404,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.000055133714322863625,-0.3999450666829432],"max":[1,1.8629899615188883,0.3999450666829432]},"sizeMeters":[2,1.863,0.8],"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-06T03:19:28.117Z","updatedAt":"2026-09-06T03:41:44.772Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/234/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardTwoBaySalvageRack(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/234/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/234/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/234/v1/model.glb\" alt=\"Reclamation Yard: Two-bay salvage rack\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/234/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/234/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"235","slug":"reclamation-yard-open-scrap-collection-skip","title":"Reclamation Yard: Open scrap collection skip","summary":"Open steel skip with tapered side panels, reinforced top rim, lifting lugs and a small load of offcut beams.","description":"Open steel skip with tapered side panels, reinforced top rim, lifting lugs and a small load of offcut beams.\n\nPart of Reclamation Yard. Dimensions: 1.87 × 1.03 × 1.36 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-open-scrap-collection-skip","cdnUrl":"https://cdn.3dassets.dev/assets/235/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-open-scrap-collection-skip","thumbnailUrl":"https://cdn.3dassets.dev/assets/235/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/235/v1/poster.webp","blurhash":"U9DvM{.700RP_NsmRPXm00Meo|OErWpIIoHs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12936,"triangles":204,"vertices":612,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.9350000023841858,-0.000059230102517626726,-0.6799844372940809],"max":[0.9350000023841858,1.030013107975074,0.6799844372940809]},"sizeMeters":[1.87,1.03,1.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:30.600Z","updatedAt":"2026-09-06T03:41:44.765Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/235/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardOpenScrapCollectionSkip(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/235/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/235/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/235/v1/model.glb\" alt=\"Reclamation Yard: Open scrap collection skip\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/235/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/235/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"236","slug":"reclamation-yard-workshop-air-filtration-unit","title":"Reclamation Yard: Workshop air filtration unit","summary":"Floor-standing filter tower with intake grille, removable cartridge panel and a bent extraction duct.","description":"Floor-standing filter tower with intake grille, removable cartridge panel and a bent extraction duct.\n\nPart of Reclamation Yard. Dimensions: 0.7 × 1.97 × 1.25 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-workshop-air-filtration-unit","cdnUrl":"https://cdn.3dassets.dev/assets/236/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-workshop-air-filtration-unit","thumbnailUrl":"https://cdn.3dassets.dev/assets/236/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/236/v1/poster.webp","blurhash":"U38;f1_40000WJWlM^RX00D%_1.8?SICD-_J","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24884,"triangles":460,"vertices":1380,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3500175386304352,0,-0.8924497389731002],"max":[0.3500175386304352,1.9700000286102295,0.3549497449335647]},"sizeMeters":[0.7,1.97,1.247],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:32.884Z","updatedAt":"2026-09-06T03:41:44.757Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/236/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardWorkshopAirFiltrationUnit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/236/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/236/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/236/v1/model.glb\" alt=\"Reclamation Yard: Workshop air filtration unit\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/236/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/236/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"237","slug":"reclamation-yard-salvage-material-token","title":"Reclamation Yard: Salvage material token","summary":"Embossed hexagonal workshop badge with a raised nut motif and rust-colour insert for crafting inventories.","description":"Embossed hexagonal workshop badge with a raised nut motif and rust-colour insert for crafting inventories.\n\nPart of Reclamation Yard. Dimensions: 0.5 × 0.1 × 0.43 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-salvage-material-token","cdnUrl":"https://cdn.3dassets.dev/assets/237/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-salvage-material-token","thumbnailUrl":"https://cdn.3dassets.dev/assets/237/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/237/v1/poster.webp","blurhash":"U89Z_#%M00V@IUWBt7oL00Mx~Vf+.7t7RQS1","category":{"slug":"icons","title":"3D Icons & UI"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10684,"triangles":172,"vertices":516,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.25,0.000013198659301917604,-0.2165211951048311],"max":[0.25,0.0949868001486052,0.2165211951048311]},"sizeMeters":[0.5,0.095,0.433],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:35.398Z","updatedAt":"2026-09-06T03:41:44.748Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/237/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardSalvageMaterialToken(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/237/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/237/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/237/v1/model.glb\" alt=\"Reclamation Yard: Salvage material token\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/237/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/237/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"238","slug":"reclamation-yard-static-ember-brazier","title":"Reclamation Yard: Static ember brazier","summary":"Ventilated steel fire basket with a bed of emissive coals, raised legs and a protective rolled rim. No fire simulation.","description":"Ventilated steel fire basket with a bed of emissive coals, raised legs and a protective rolled rim. No fire simulation.\n\nPart of Reclamation Yard. Dimensions: 0.72 × 0.76 × 0.72 m (width × height × depth). One unit equals one metre. Grounded origin, +Y up and +Z forward. Static model with named material groups. No collision meshes or animation supplied. CC0 permits commercial use without attribution.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-static-ember-brazier","cdnUrl":"https://cdn.3dassets.dev/assets/238/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-static-ember-brazier","thumbnailUrl":"https://cdn.3dassets.dev/assets/238/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/238/v1/poster.webp","blurhash":"UEATAlxa0eWB~Ao2I:kBVtWCt6j?Rna#WXay","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":117996,"triangles":2392,"vertices":7176,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.36000001430511475,0,-0.36000001430511475],"max":[0.36000001430511475,0.7550006744475383,0.36000001430511475]},"sizeMeters":[0.72,0.755,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:19:37.679Z","updatedAt":"2026-09-06T03:41:44.739Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/238/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardStaticEmberBrazier(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/238/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/238/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/238/v1/model.glb\" alt=\"Reclamation Yard: Static ember brazier\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/238/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/238/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"239","slug":"reclamation-yard-starter-scene","title":"Reclamation Yard starter scene","summary":"A composed reclamation yard scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Reclamation Yard kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Reclamation Yard](/packs/reclamation-yard).","status":"published","url":"https://3dassets.dev/assets/reclamation-yard-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/239/v1/model.glb","downloadUrl":"https://3dassets.dev/download/reclamation-yard-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/239/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/239/v1/poster.webp","blurhash":"U3BM-[?a00E34:t6oaIV00D*_1aI_2R-%M%f","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":930424,"triangles":18172,"vertices":54516,"meshes":80,"materials":8,"textures":2,"animations":[],"boundingBox":{"min":[-7.675000190734863,-0.20003357310786357,-6.749756263632267],"max":[7.5,4.4704508781433105,6.861756252188175]},"sizeMeters":[15.175,4.67,13.612],"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-06T03:19:41.004Z","updatedAt":"2026-09-06T03:41:44.730Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/239/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationYardStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/239/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/239/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/239/v1/model.glb\" alt=\"Reclamation Yard starter scene\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/239/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/239/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}