{"data":{"id":34,"slug":"salvage-and-repair-workshop","title":"Salvage and Repair Workshop","summary":"70 distinct original survival designs with two assembled examples.","description":"Salvage and Repair Workshop: individually specified survival equipment, honest static construction, metre scale. CC0, AI-generated. ","url":"https://3dassets.dev/packs/salvage-and-repair-workshop","coverUrl":"https://cdn.3dassets.dev/assets/1804/v1/poster.webp","assetCount":72,"aiGenerated":true,"aiGeneratedAssetCount":72,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":6252200,"totalTriangles":123684,"starterScene":{"id":"1804","slug":"salvage-and-repair-workshop-electronics--3325f78c-starter-scene","title":"Electronics Repair Bay (Salvage and Repair Workshop)","summary":"Composed example for Salvage and Repair Workshop.","description":"Composed electronics repair bay with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-electronics--3325f78c-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1804/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-electronics--3325f78c-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1804/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1804/v1/poster.webp","blurhash":"U27T:]}R56~q~p^iVrtl00KQ#,IA0L0fkXR5","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":849584,"triangles":17020,"vertices":51060,"meshes":19,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-3.1500014315741605,0,-1.6207632671594512],"max":[1.949999988079071,1.7699999809265137,1.2999988472228499]},"sizeMeters":[5.1,1.77,2.921],"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-06T04:54:49.243Z","updatedAt":"2026-09-06T04:54:50.814Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1804/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ElectronicsRepairBaySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1804/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1804/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1804/v1/model.glb\" alt=\"Electronics Repair Bay (Salvage and Repair 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/1804/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1804/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"1693","slug":"salvage-and-repair-workshop-salvage-workbench-5bb65557","title":"Salvage Workbench (Salvage and Repair Workshop)","summary":"Salvage Workbench: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Salvage Workbench. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.80 × 1.00 × 0.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-salvage-workbench-5bb65557","cdnUrl":"https://cdn.3dassets.dev/assets/1693/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-salvage-workbench-5bb65557","thumbnailUrl":"https://cdn.3dassets.dev/assets/1693/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1693/v1/poster.webp","blurhash":"U48py0$*00RO~q^k9F4n0f%Nxa9GNeIAs:yE","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":89880,"triangles":1512,"vertices":4536,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000016421910939090623,-0.39994200423715043],"max":[0.8999999761581421,1.0050116769061532,0.39994200423715043]},"sizeMeters":[1.8,1.005,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-06T04:54:10.781Z","updatedAt":"2026-09-06T04:54:12.697Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1693/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SalvageWorkbenchSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1693/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1693/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1693/v1/model.glb\" alt=\"Salvage Workbench (Salvage and Repair 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/1693/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1693/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1691","slug":"salvage-and-repair-workshop-vice-bench-d3cb70c0","title":"Vice Bench (Salvage and Repair Workshop)","summary":"Vice Bench: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Vice Bench. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.40 × 1.09 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-vice-bench-d3cb70c0","cdnUrl":"https://cdn.3dassets.dev/assets/1691/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-vice-bench-d3cb70c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/1691/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1691/v1/poster.webp","blurhash":"U46%sNs:0fxC~B$%IUEfEixYn$Na0zj?-VX8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76848,"triangles":1268,"vertices":3804,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.000007997271808446449,-0.32499465372621567],"max":[0.699999988079071,1.0900092540517967,0.32499465372621567]},"sizeMeters":[1.4,1.09,0.65],"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-06T04:54:10.503Z","updatedAt":"2026-09-06T04:54:11.903Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1691/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ViceBenchSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1691/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1691/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1691/v1/model.glb\" alt=\"Vice Bench (Salvage and Repair 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/1691/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1691/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1680","slug":"salvage-and-repair-workshop-teardown-tray-b7edc7db","title":"Teardown Tray (Salvage and Repair Workshop)","summary":"Teardown Tray: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Teardown Tray. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.85 × 0.09 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-teardown-tray-b7edc7db","cdnUrl":"https://cdn.3dassets.dev/assets/1680/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-teardown-tray-b7edc7db","thumbnailUrl":"https://cdn.3dassets.dev/assets/1680/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1680/v1/poster.webp","blurhash":"U39%@v.9009F_3%gMyIU00Mw~qx]008_xu%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45828,"triangles":756,"vertices":2268,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.42500001192092896,0.000012510984074273757,-0.3000045861913232],"max":[0.42500001192092896,0.08501190350248546,0.3000045861913232]},"sizeMeters":[0.85,0.085,0.6],"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-06T04:54:09.152Z","updatedAt":"2026-09-06T04:54:09.677Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1680/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TeardownTraySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1680/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1680/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1680/v1/model.glb\" alt=\"Teardown Tray (Salvage and Repair 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/1680/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1680/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1692","slug":"salvage-and-repair-workshop-component-sorter-a1e161b3","title":"Component Sorter (Salvage and Repair Workshop)","summary":"Component Sorter: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Component Sorter. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.90 × 0.86 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-component-sorter-a1e161b3","cdnUrl":"https://cdn.3dassets.dev/assets/1692/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-component-sorter-a1e161b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/1692/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1692/v1/poster.webp","blurhash":"UC8p[it69Fn$_Nt7D%RktmozRPV@Rjt7ofV?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":207840,"triangles":3996,"vertices":11988,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000014113154574169062,-0.25002898596049583],"max":[0.44999998807907104,0.8649903778667202,0.25002898596049583]},"sizeMeters":[0.9,0.865,0.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-06T04:54:10.851Z","updatedAt":"2026-09-06T04:54:12.649Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1692/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ComponentSorterSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1692/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1692/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1692/v1/model.glb\" alt=\"Component Sorter (Salvage and Repair 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/1692/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1692/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1687","slug":"salvage-and-repair-workshop-pegboard-tool-wall-c9d5564a","title":"Pegboard Tool Wall (Salvage and Repair Workshop)","summary":"Pegboard Tool Wall: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pegboard Tool Wall. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.67 × 1.77 × 0.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-pegboard-tool-wall-c9d5564a","cdnUrl":"https://cdn.3dassets.dev/assets/1687/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-pegboard-tool-wall-c9d5564a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1687/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1687/v1/poster.webp","blurhash":"U684GFIU0KtR~qt79FNGKjt7rCM{o}tRRPMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":178728,"triangles":3552,"vertices":10656,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8349795436009273,0,-0.07076326715945107],"max":[0.8349795436009273,1.7699999809265137,0.07076326715945107]},"sizeMeters":[1.67,1.77,0.142],"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-06T04:54:10.523Z","updatedAt":"2026-09-06T04:54:11.879Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1687/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PegboardToolWallSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1687/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1687/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1687/v1/model.glb\" alt=\"Pegboard Tool Wall (Salvage and Repair 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/1687/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1687/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1685","slug":"salvage-and-repair-workshop-folding-repair-table-4ed064e4","title":"Folding Repair Table (Salvage and Repair Workshop)","summary":"Folding Repair Table: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Folding Repair Table. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.20 × 0.91 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-folding-repair-table-4ed064e4","cdnUrl":"https://cdn.3dassets.dev/assets/1685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-folding-repair-table-4ed064e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/1685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1685/v1/poster.webp","blurhash":"UGB42Rt7Dkog_M%MMzRQRixtM{RRIVocxtRl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":54364,"triangles":1080,"vertices":3240,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000014168219792387582,-0.325022138834589],"max":[0.6000000238418579,0.9125742152732085,0.325022138834589]},"sizeMeters":[1.2,0.913,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:09.883Z","updatedAt":"2026-09-06T04:54:10.345Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingRepairTableSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1685/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1685/v1/model.glb\" alt=\"Folding Repair Table (Salvage and Repair 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/1685/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1679","slug":"salvage-and-repair-workshop-parts-washing-basin-0f69944e","title":"Parts Washing Basin (Salvage and Repair Workshop)","summary":"Parts Washing Basin: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Parts Washing Basin. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.00 × 1.26 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-parts-washing-basin-0f69944e","cdnUrl":"https://cdn.3dassets.dev/assets/1679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-parts-washing-basin-0f69944e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1679/v1/poster.webp","blurhash":"U48;lV%L00s;_4%MITIT00RjxukC00M{?bj]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":65936,"triangles":1336,"vertices":4008,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.49999245218235705,0,-0.3250037386568224],"max":[0.49999245218235705,1.2589428424835205,0.3250037386568224]},"sizeMeters":[1,1.259,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:08.989Z","updatedAt":"2026-09-06T04:54:09.662Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PartsWashingBasinSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1679/v1/model.glb\" alt=\"Parts Washing Basin (Salvage and Repair 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/1679/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1681","slug":"salvage-and-repair-workshop-magnetic-parts-tray-21913336","title":"Magnetic Parts Tray (Salvage and Repair Workshop)","summary":"Magnetic Parts Tray: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Magnetic Parts Tray. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.32 × 0.04 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-magnetic-parts-tray-21913336","cdnUrl":"https://cdn.3dassets.dev/assets/1681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-magnetic-parts-tray-21913336","thumbnailUrl":"https://cdn.3dassets.dev/assets/1681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1681/v1/poster.webp","blurhash":"U384rW%f00V^_3bZMys;00M{_NWU00nmxuM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21776,"triangles":416,"vertices":1248,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.1599999964237213,-6.103701758776447e-7,-0.1599999964237213],"max":[0.1599999964237213,0.04000328038484458,0.1599999964237213]},"sizeMeters":[0.32,0.04,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:09.198Z","updatedAt":"2026-09-06T04:54:09.671Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagneticPartsTraySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1681/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1681/v1/model.glb\" alt=\"Magnetic Parts Tray (Salvage and Repair 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/1681/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1697","slug":"salvage-and-repair-workshop-spool-dispenser-462477ec","title":"Spool Dispenser (Salvage and Repair Workshop)","summary":"Spool Dispenser: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Spool Dispenser. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.82 × 0.72 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-spool-dispenser-462477ec","cdnUrl":"https://cdn.3dassets.dev/assets/1697/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-spool-dispenser-462477ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/1697/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1697/v1/poster.webp","blurhash":"U9AmPN-A00S5.TxuMcIU0LT0?HVrMdt7x]R%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":87868,"triangles":1644,"vertices":4932,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.4099999964237213,-0.000020142738094947044,-0.17501755075091338],"max":[0.4099999964237213,0.7199997119403401,0.17501755075091338]},"sizeMeters":[0.82,0.72,0.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-06T04:54:12.553Z","updatedAt":"2026-09-06T04:54:13.231Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1697/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpoolDispenserSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1697/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1697/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1697/v1/model.glb\" alt=\"Spool Dispenser (Salvage and Repair 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/1697/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1697/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1695","slug":"salvage-and-repair-workshop-bench-grinding-station-c773881a","title":"Bench Grinding Station (Salvage and Repair Workshop)","summary":"Bench Grinding Station: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bench Grinding Station. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.90 × 1.20 × 0.61 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-bench-grinding-station-c773881a","cdnUrl":"https://cdn.3dassets.dev/assets/1695/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-bench-grinding-station-c773881a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1695/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1695/v1/poster.webp","blurhash":"U89tP?t700t7~qWB9Fs:8_RQtRxu4nay%gt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":73640,"triangles":1480,"vertices":4440,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4499870203043189,0,-0.30503813714806743],"max":[0.4499870203043189,1.200012986712101,0.3050000071525574]},"sizeMeters":[0.9,1.2,0.61],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:12.020Z","updatedAt":"2026-09-06T04:54:12.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1695/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchGrindingStationSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1695/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1695/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1695/v1/model.glb\" alt=\"Bench Grinding Station (Salvage and Repair 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/1695/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1695/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1696","slug":"salvage-and-repair-workshop-bench-vice-68361773","title":"Bench Vice (Salvage and Repair Workshop)","summary":"Bench Vice: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bench Vice. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.43 × 0.25 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-bench-vice-68361773","cdnUrl":"https://cdn.3dassets.dev/assets/1696/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-bench-vice-68361773","thumbnailUrl":"https://cdn.3dassets.dev/assets/1696/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1696/v1/poster.webp","blurhash":"U68gpixb00M{.TtRMwM_00tR_NMx8wni.8W=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":43148,"triangles":728,"vertices":2184,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2151961624622345,0.000005341111687328509,-0.125],"max":[0.2151961624622345,0.249989672099801,0.125]},"sizeMeters":[0.43,0.25,0.25],"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-06T04:54:12.120Z","updatedAt":"2026-09-06T04:54:12.839Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1696/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchViceSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1696/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1696/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1696/v1/model.glb\" alt=\"Bench Vice (Salvage and Repair 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/1696/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1696/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1701","slug":"salvage-and-repair-workshop-pipe-vice-be5e915f","title":"Pipe Vice (Salvage and Repair Workshop)","summary":"Pipe Vice: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pipe Vice. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.30 × 0.46 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-pipe-vice-be5e915f","cdnUrl":"https://cdn.3dassets.dev/assets/1701/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-pipe-vice-be5e915f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1701/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1701/v1/poster.webp","blurhash":"U39j=g?v004m4nRPM{R%e=bcR*Mx_3%Nt6IT","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36696,"triangles":728,"vertices":2184,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000152850080936,4.4703482582342247e-10,-0.14000610610562209],"max":[0.15000152850080936,0.46000000834465027,0.14000610610562209]},"sizeMeters":[0.3,0.46,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:13.930Z","updatedAt":"2026-09-06T04:54:14.327Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1701/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PipeViceSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1701/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1701/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1701/v1/model.glb\" alt=\"Pipe Vice (Salvage and Repair 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/1701/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1701/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1705","slug":"salvage-and-repair-workshop-small-arbor-press-3604d39b","title":"Small Arbor Press (Salvage and Repair Workshop)","summary":"Small Arbor Press: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Small Arbor Press. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.46 × 0.71 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-small-arbor-press-3604d39b","cdnUrl":"https://cdn.3dassets.dev/assets/1705/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-small-arbor-press-3604d39b","thumbnailUrl":"https://cdn.3dassets.dev/assets/1705/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1705/v1/poster.webp","blurhash":"U584rW_N00009FM_t7t88_Ri-=%Mt9a$ofxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27728,"triangles":540,"vertices":1620,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.23153268526413603,0,-0.17498550750070754],"max":[0.2315180531788661,0.7085307864099741,0.17498550750070754]},"sizeMeters":[0.463,0.709,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:15.216Z","updatedAt":"2026-09-06T04:54:16.148Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1705/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmallArborPressSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1705/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1705/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1705/v1/model.glb\" alt=\"Small Arbor Press (Salvage and Repair 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/1705/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1705/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1704","slug":"salvage-and-repair-workshop-bearing-puller-35bcc749","title":"Bearing Puller (Salvage and Repair Workshop)","summary":"Bearing Puller: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bearing Puller. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.30 × 0.31 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-bearing-puller-35bcc749","cdnUrl":"https://cdn.3dassets.dev/assets/1704/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-bearing-puller-35bcc749","thumbnailUrl":"https://cdn.3dassets.dev/assets/1704/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1704/v1/poster.webp","blurhash":"U68N,_%g00IA~qx]9FMx9Fozt7MxM{bHbHMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25072,"triangles":500,"vertices":1500,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.1497398785628074,0,-0.017998150831525166],"max":[0.1497398785628074,0.3103923201560974,0.017998150831525166]},"sizeMeters":[0.299,0.31,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:16.097Z","updatedAt":"2026-09-06T04:54:17.135Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1704/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BearingPullerSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1704/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1704/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1704/v1/model.glb\" alt=\"Bearing Puller (Salvage and Repair 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/1704/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1704/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1707","slug":"salvage-and-repair-workshop-soldering-stand-29f41b18","title":"Soldering Stand (Salvage and Repair Workshop)","summary":"Soldering Stand: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Soldering Stand. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.18 × 0.22 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-soldering-stand-29f41b18","cdnUrl":"https://cdn.3dassets.dev/assets/1707/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-soldering-stand-29f41b18","thumbnailUrl":"https://cdn.3dassets.dev/assets/1707/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1707/v1/poster.webp","blurhash":"U371$V_N0000D%IAIU%g00M_~q%g?v-;x]IA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":107220,"triangles":2196,"vertices":6588,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.09000640927018996,0.000006943000849172001,-0.14000000059604645],"max":[0.09000640927018996,0.22492449867668457,0.14000000059604645]},"sizeMeters":[0.18,0.225,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:15.913Z","updatedAt":"2026-09-06T04:54:17.851Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1707/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SolderingStandSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1707/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1707/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1707/v1/model.glb\" alt=\"Soldering Stand (Salvage and Repair 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/1707/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1707/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1709","slug":"salvage-and-repair-workshop-helping-hands-clamp-0d4a5e87","title":"Helping Hands Clamp (Salvage and Repair Workshop)","summary":"Helping Hands Clamp: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Helping Hands Clamp. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.36 × 0.26 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-helping-hands-clamp-0d4a5e87","cdnUrl":"https://cdn.3dassets.dev/assets/1709/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-helping-hands-clamp-0d4a5e87","thumbnailUrl":"https://cdn.3dassets.dev/assets/1709/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1709/v1/poster.webp","blurhash":"U77K*l%M00D%~qxvIUM{Mx%M%gMxDix]%gM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30228,"triangles":592,"vertices":1776,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.17999999225139618,0.000006790144942175891,-0.10000000149011612],"max":[0.17999999225139618,0.2550094518299473,0.10000000149011612]},"sizeMeters":[0.36,0.255,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:15.825Z","updatedAt":"2026-09-06T04:54:16.375Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1709/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HelpingHandsClampSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1709/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1709/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1709/v1/model.glb\" alt=\"Helping Hands Clamp (Salvage and Repair 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/1709/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1709/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1710","slug":"salvage-and-repair-workshop-circuit-board-holder-3eab396a","title":"Circuit Board Holder (Salvage and Repair Workshop)","summary":"Circuit Board Holder: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Circuit Board Holder. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.44 × 0.26 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-circuit-board-holder-3eab396a","cdnUrl":"https://cdn.3dassets.dev/assets/1710/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-circuit-board-holder-3eab396a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1710/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1710/v1/poster.webp","blurhash":"U697Lp%f00Ip*J%NIAIA00kX?bMxD4R5?utR","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46424,"triangles":836,"vertices":2508,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2199999988079071,-3.8157450639279833e-7,-0.12499160927241419],"max":[0.2199999988079071,0.2600096834765905,0.12499160927241419]},"sizeMeters":[0.44,0.26,0.25],"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-06T04:54:17.137Z","updatedAt":"2026-09-06T04:54:18.420Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1710/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CircuitBoardHolderSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1710/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1710/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1710/v1/model.glb\" alt=\"Circuit Board Holder (Salvage and Repair 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/1710/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1710/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1711","slug":"salvage-and-repair-workshop-drill-guide-5023284a","title":"Drill Guide (Salvage and Repair Workshop)","summary":"Drill Guide: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Drill Guide. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.28 × 0.48 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-drill-guide-5023284a","cdnUrl":"https://cdn.3dassets.dev/assets/1711/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-drill-guide-5023284a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1711/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1711/v1/poster.webp","blurhash":"U58g]R%g00Di00V@-;WEaLjbk9WU_NozM{jG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33596,"triangles":664,"vertices":1992,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14000716739758487,-7.450581818169155e-11,-0.14000716739758487],"max":[0.14000716739758487,0.48499998450279236,0.14000716739758487]},"sizeMeters":[0.28,0.485,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:16.385Z","updatedAt":"2026-09-06T04:54:18.081Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1711/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrillGuideSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1711/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1711/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1711/v1/model.glb\" alt=\"Drill Guide (Salvage and Repair 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/1711/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1711/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1712","slug":"salvage-and-repair-workshop-gear-inspection-fixture-59dc67fa","title":"Gear Inspection Fixture (Salvage and Repair Workshop)","summary":"Gear Inspection Fixture: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Gear Inspection Fixture. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.32 × 0.27 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-gear-inspection-fixture-59dc67fa","cdnUrl":"https://cdn.3dassets.dev/assets/1712/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-gear-inspection-fixture-59dc67fa","thumbnailUrl":"https://cdn.3dassets.dev/assets/1712/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1712/v1/poster.webp","blurhash":"U5B|Z_.800M_8_axIUWC00IBxvoz~qjY?bxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76184,"triangles":1564,"vertices":4692,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.1599999964237213,8.346210054188674e-7,-0.12499892905822449],"max":[0.1599999964237213,0.2649991501798102,0.12499892905822449]},"sizeMeters":[0.32,0.265,0.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:17.328Z","updatedAt":"2026-09-06T04:54:18.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1712/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GearInspectionFixtureSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1712/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1712/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1712/v1/model.glb\" alt=\"Gear Inspection Fixture (Salvage and Repair 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/1712/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1712/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1714","slug":"salvage-and-repair-workshop-coil-winding-jig-111e86ba","title":"Coil Winding Jig (Salvage and Repair Workshop)","summary":"Coil Winding Jig: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Coil Winding Jig. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.50 × 0.46 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-coil-winding-jig-111e86ba","cdnUrl":"https://cdn.3dassets.dev/assets/1714/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-coil-winding-jig-111e86ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/1714/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1714/v1/poster.webp","blurhash":"U797O$-;00D**Jx]McIT4nof.8M{DhnN-;bv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":68336,"triangles":1224,"vertices":3672,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2484951913356781,0.000010319218295556931,-0.1499875780977983],"max":[0.2484951913356781,0.45800167722161106,0.1499875780977983]},"sizeMeters":[0.497,0.458,0.3],"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-06T04:54:18.121Z","updatedAt":"2026-09-06T04:54:19.747Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1714/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoilWindingJigSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1714/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1714/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1714/v1/model.glb\" alt=\"Coil Winding Jig (Salvage and Repair 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/1714/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1714/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1717","slug":"salvage-and-repair-workshop-adjustable-wrench-2fe82609","title":"Adjustable Wrench (Salvage and Repair Workshop)","summary":"Adjustable Wrench: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Adjustable Wrench. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.15 × 0.34 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-adjustable-wrench-2fe82609","cdnUrl":"https://cdn.3dassets.dev/assets/1717/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-adjustable-wrench-2fe82609","thumbnailUrl":"https://cdn.3dassets.dev/assets/1717/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1717/v1/poster.webp","blurhash":"U35#-AVY00yr~Wkq4.Z$rrkWXRVYTJaKa0pI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13764,"triangles":248,"vertices":744,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07338648056399671,0,-0.03873803721568303],"max":[0.07338648056399671,0.3435957431793213,0.038750000298023224]},"sizeMeters":[0.147,0.344,0.077],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:19.676Z","updatedAt":"2026-09-06T04:54:20.588Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1717/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AdjustableWrenchSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1717/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1717/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1717/v1/model.glb\" alt=\"Adjustable Wrench (Salvage and Repair 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/1717/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1717/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1720","slug":"salvage-and-repair-workshop-pipe-wrench-a1a8ef56","title":"Pipe Wrench (Salvage and Repair Workshop)","summary":"Pipe Wrench: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pipe Wrench. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.15 × 0.35 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-pipe-wrench-a1a8ef56","cdnUrl":"https://cdn.3dassets.dev/assets/1720/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-pipe-wrench-a1a8ef56","thumbnailUrl":"https://cdn.3dassets.dev/assets/1720/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1720/v1/poster.webp","blurhash":"U48g85I;00^5G^so:PJ71OxZ}9IV]zbcA0nN","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44224,"triangles":868,"vertices":2604,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.07339558005332947,0,-0.04124487798502281],"max":[0.07339558005332947,0.34524461215720476,0.041251714401228816]},"sizeMeters":[0.147,0.345,0.082],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:19.975Z","updatedAt":"2026-09-06T04:54:22.159Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1720/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PipeWrenchSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1720/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1720/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1720/v1/model.glb\" alt=\"Pipe Wrench (Salvage and Repair 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/1720/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1720/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1721","slug":"salvage-and-repair-workshop-ratchet-handle-f8a69d98","title":"Ratchet Handle (Salvage and Repair Workshop)","summary":"Ratchet Handle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Ratchet Handle. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.07 × 0.38 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-ratchet-handle-f8a69d98","cdnUrl":"https://cdn.3dassets.dev/assets/1721/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-ratchet-handle-f8a69d98","thumbnailUrl":"https://cdn.3dassets.dev/assets/1721/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1721/v1/poster.webp","blurhash":"U44V2XtR00IU_Nt78_M_%gt7IAM{kWofaKNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18500,"triangles":348,"vertices":1044,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.034997635084679686,0,-0.024738303359952522],"max":[0.034997635084679686,0.375,0.024738303359952522]},"sizeMeters":[0.07,0.375,0.049],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:20.007Z","updatedAt":"2026-09-06T04:54:22.283Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1721/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RatchetHandleSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1721/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1721/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1721/v1/model.glb\" alt=\"Ratchet Handle (Salvage and Repair 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/1721/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1721/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1722","slug":"salvage-and-repair-workshop-socket-rail-a2174e32","title":"Socket Rail (Salvage and Repair Workshop)","summary":"Socket Rail: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Socket Rail. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.35 × 0.07 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-socket-rail-a2174e32","cdnUrl":"https://cdn.3dassets.dev/assets/1722/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-socket-rail-a2174e32","thumbnailUrl":"https://cdn.3dassets.dev/assets/1722/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1722/v1/poster.webp","blurhash":"U37nas9Y00%M?c-=ROIA00?c~qIT004n-=?c","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":99120,"triangles":2028,"vertices":6084,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.17499999701976776,0.000001602265625413879,-0.03499252236925927],"max":[0.17499999701976776,0.07500091387892582,0.03499252236925927]},"sizeMeters":[0.35,0.075,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:20.849Z","updatedAt":"2026-09-06T04:54:22.894Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1722/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SocketRailSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1722/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1722/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1722/v1/model.glb\" alt=\"Socket Rail (Salvage and Repair 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/1722/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1722/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1726","slug":"salvage-and-repair-workshop-long-nose-pliers-dcdf48e6","title":"Long Nose Pliers (Salvage and Repair Workshop)","summary":"Long Nose Pliers: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Long Nose Pliers. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.14 × 0.32 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-long-nose-pliers-dcdf48e6","cdnUrl":"https://cdn.3dassets.dev/assets/1726/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-long-nose-pliers-dcdf48e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/1726/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1726/v1/poster.webp","blurhash":"U49GN]tR00Md22s:{wIp0yR*^k$*{Jn$C7XA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18728,"triangles":352,"vertices":1056,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07028168659128238,0,-0.021499811572024696],"max":[0.07028168659128238,0.3171786963939667,0.021502163041639172]},"sizeMeters":[0.141,0.317,0.043],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:22.005Z","updatedAt":"2026-09-06T04:54:24.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1726/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LongNosePliersSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1726/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1726/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1726/v1/model.glb\" alt=\"Long Nose Pliers (Salvage and Repair 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/1726/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1726/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1727","slug":"salvage-and-repair-workshop-diagonal-cutters-8f183501","title":"Diagonal Cutters (Salvage and Repair Workshop)","summary":"Diagonal Cutters: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Diagonal Cutters. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.14 × 0.23 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-diagonal-cutters-8f183501","cdnUrl":"https://cdn.3dassets.dev/assets/1727/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-diagonal-cutters-8f183501","thumbnailUrl":"https://cdn.3dassets.dev/assets/1727/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1727/v1/poster.webp","blurhash":"U6Altixa00V?3XxZ+GEM0#Na}r$%;1sAKjS#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18728,"triangles":352,"vertices":1056,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07028168659128238,0,-0.021499811572024696],"max":[0.07028168659128238,0.23194952728091772,0.02150277571358901]},"sizeMeters":[0.141,0.232,0.043],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:21.234Z","updatedAt":"2026-09-06T04:54:22.272Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1727/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DiagonalCuttersSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1727/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1727/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1727/v1/model.glb\" alt=\"Diagonal Cutters (Salvage and Repair 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/1727/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1727/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1728","slug":"salvage-and-repair-workshop-locking-pliers-d1d6f787","title":"Locking Pliers (Salvage and Repair Workshop)","summary":"Locking Pliers: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Locking Pliers. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.15 × 0.28 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-locking-pliers-d1d6f787","cdnUrl":"https://cdn.3dassets.dev/assets/1728/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-locking-pliers-d1d6f787","thumbnailUrl":"https://cdn.3dassets.dev/assets/1728/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1728/v1/poster.webp","blurhash":"U59ZZXTJ00z:GvxZq[EM0MRj}@tS[TWBF|t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":32968,"triangles":648,"vertices":1944,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.0735496307984456,0,-0.022999811566993558],"max":[0.07354704221217657,0.2840045392513275,0.022996221210817906]},"sizeMeters":[0.147,0.284,0.046],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:22.655Z","updatedAt":"2026-09-06T04:54:24.761Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1728/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LockingPliersSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1728/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1728/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1728/v1/model.glb\" alt=\"Locking Pliers (Salvage and Repair 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/1728/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1728/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1730","slug":"salvage-and-repair-workshop-wire-stripper-f2ca2bdf","title":"Wire Stripper (Salvage and Repair Workshop)","summary":"Wire Stripper: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Wire Stripper. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.14 × 0.27 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-wire-stripper-f2ca2bdf","cdnUrl":"https://cdn.3dassets.dev/assets/1730/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-wire-stripper-f2ca2bdf","thumbnailUrl":"https://cdn.3dassets.dev/assets/1730/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1730/v1/poster.webp","blurhash":"U69sVRt700i^15oL}SNH0LRk}[%1[TxYGGIq","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":109868,"triangles":2236,"vertices":6708,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.07028168659128238,0,-0.021499811572024696],"max":[0.07028168659128238,0.2690553241489655,0.021495552186434355]},"sizeMeters":[0.141,0.269,0.043],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:23.062Z","updatedAt":"2026-09-06T04:54:24.123Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1730/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireStripperSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1730/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1730/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1730/v1/model.glb\" alt=\"Wire Stripper (Salvage and Repair 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/1730/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1730/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1733","slug":"salvage-and-repair-workshop-hacksaw-49113e7c","title":"Hacksaw (Salvage and Repair Workshop)","summary":"Hacksaw: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hacksaw. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.49 × 0.24 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-hacksaw-49113e7c","cdnUrl":"https://cdn.3dassets.dev/assets/1733/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-hacksaw-49113e7c","thumbnailUrl":"https://cdn.3dassets.dev/assets/1733/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1733/v1/poster.webp","blurhash":"U8AJ[=^g=q_0~q?bRiox00O]9~4;9HIWt9IB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21936,"triangles":420,"vertices":1260,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.24694608242182792,0,-0.022993743147700002],"max":[0.24694928526878357,0.23866649674600762,0.022993743147700002]},"sizeMeters":[0.494,0.239,0.046],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:23.847Z","updatedAt":"2026-09-06T04:54:25.081Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1733/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HacksawSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1733/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1733/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1733/v1/model.glb\" alt=\"Hacksaw (Salvage and Repair 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/1733/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1733/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1735","slug":"salvage-and-repair-workshop-ball-peen-hammer-f60cfe74","title":"Ball Peen Hammer (Salvage and Repair Workshop)","summary":"Ball Peen Hammer: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Ball Peen Hammer. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.29 × 0.38 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-ball-peen-hammer-f60cfe74","cdnUrl":"https://cdn.3dassets.dev/assets/1735/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-ball-peen-hammer-f60cfe74","thumbnailUrl":"https://cdn.3dassets.dev/assets/1735/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1735/v1/poster.webp","blurhash":"UA6*gpof0KR+_NogDiWBx]t7RPM{M{t7t8M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62988,"triangles":1132,"vertices":3396,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.14749999344348907,0,-0.03999564933455612],"max":[0.14749999344348907,0.3799984781458943,0.03999564933455612]},"sizeMeters":[0.295,0.38,0.08],"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-06T04:54:26.235Z","updatedAt":"2026-09-06T04:54:26.892Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1735/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallPeenHammerSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1735/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1735/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1735/v1/model.glb\" alt=\"Ball Peen Hammer (Salvage and Repair 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/1735/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1735/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1738","slug":"salvage-and-repair-workshop-multimeter-a1c32e55","title":"Multimeter (Salvage and Repair Workshop)","summary":"Multimeter: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Multimeter. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.28 × 0.18 × 0.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-multimeter-a1c32e55","cdnUrl":"https://cdn.3dassets.dev/assets/1738/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-multimeter-a1c32e55","thumbnailUrl":"https://cdn.3dassets.dev/assets/1738/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1738/v1/poster.webp","blurhash":"UBBL*6Ej0M}=xFs.J8R-5Sr?-ANe$*baI:WA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31000,"triangles":608,"vertices":1824,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14054229855537415,-0.0000026954020360681064,-0.05419060906340916],"max":[0.14054229855537415,0.18000270255459344,0.0541913325295478]},"sizeMeters":[0.281,0.18,0.108],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:26.295Z","updatedAt":"2026-09-06T04:54:27.088Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1738/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MultimeterSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1738/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1738/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1738/v1/model.glb\" alt=\"Multimeter (Salvage and Repair 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/1738/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1738/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1742","slug":"salvage-and-repair-workshop-continuity-probe-16d5ff4b","title":"Continuity Probe (Salvage and Repair Workshop)","summary":"Continuity Probe: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Continuity Probe. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.16 × 0.23 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-continuity-probe-16d5ff4b","cdnUrl":"https://cdn.3dassets.dev/assets/1742/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-continuity-probe-16d5ff4b","thumbnailUrl":"https://cdn.3dassets.dev/assets/1742/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1742/v1/poster.webp","blurhash":"U77c?L}t0f0M%Mt8M{Mx1~At,o]iozoeaKWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15764,"triangles":316,"vertices":948,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.07960547165755366,-0.0000013664202692387217,-0.03134063336808418],"max":[0.07960846275091171,0.2317752093076706,0.03134559659375387]},"sizeMeters":[0.159,0.232,0.063],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:26.569Z","updatedAt":"2026-09-06T04:54:27.306Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1742/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ContinuityProbeSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1742/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1742/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1742/v1/model.glb\" alt=\"Continuity Probe (Salvage and Repair 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/1742/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1742/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1737","slug":"salvage-and-repair-workshop-soldering-iron-bc476be3","title":"Soldering Iron (Salvage and Repair Workshop)","summary":"Soldering Iron: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Soldering Iron. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.14 × 0.34 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-soldering-iron-bc476be3","cdnUrl":"https://cdn.3dassets.dev/assets/1737/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-soldering-iron-bc476be3","thumbnailUrl":"https://cdn.3dassets.dev/assets/1737/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1737/v1/poster.webp","blurhash":"U13+G$_30000_3%M9F9EV@WBbHoy4nM{?b-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18908,"triangles":356,"vertices":1068,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07067693053364524,0,-0.025576582304612867],"max":[0.07067693053364524,0.33806511759757996,0.025576582304612867]},"sizeMeters":[0.141,0.338,0.051],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:26.462Z","updatedAt":"2026-09-06T04:54:27.030Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1737/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SolderingIronSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1737/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1737/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1737/v1/model.glb\" alt=\"Soldering Iron (Salvage and Repair 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/1737/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1737/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1743","slug":"salvage-and-repair-workshop-desolder-pump-29c3843a","title":"Desolder Pump (Salvage and Repair Workshop)","summary":"Desolder Pump: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Desolder Pump. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.05 × 0.27 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-desolder-pump-29c3843a","cdnUrl":"https://cdn.3dassets.dev/assets/1743/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-desolder-pump-29c3843a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1743/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1743/v1/poster.webp","blurhash":"U78M:Hxa029uo}kCa0WA14WX}mxDsof6S2bH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15812,"triangles":320,"vertices":960,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.02500000037252903,4.4703483970121027e-10,-0.02500000037252903],"max":[0.02500000037252903,0.26499915370017824,0.02500000037252903]},"sizeMeters":[0.05,0.265,0.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:26.746Z","updatedAt":"2026-09-06T04:54:27.599Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1743/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DesolderPumpSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1743/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1743/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1743/v1/model.glb\" alt=\"Desolder Pump (Salvage and Repair 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/1743/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1743/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1744","slug":"salvage-and-repair-workshop-hot-air-handpiece-ba8a04ad","title":"Hot Air Handpiece (Salvage and Repair Workshop)","summary":"Hot Air Handpiece: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hot Air Handpiece. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.08 × 0.26 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-hot-air-handpiece-ba8a04ad","cdnUrl":"https://cdn.3dassets.dev/assets/1744/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-hot-air-handpiece-ba8a04ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/1744/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1744/v1/poster.webp","blurhash":"U24Ldwxu00D%~qof00Rj-;a|D%f6%Mj[M{ay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64776,"triangles":1312,"vertices":3936,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.038004700416773465,0,-0.038004700416773465],"max":[0.038004700416773465,0.25999999046325684,0.038004700416773465]},"sizeMeters":[0.076,0.26,0.076],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:26.784Z","updatedAt":"2026-09-06T04:54:27.765Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1744/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HotAirHandpieceSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1744/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1744/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1744/v1/model.glb\" alt=\"Hot Air Handpiece (Salvage and Repair 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/1744/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1744/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1745","slug":"salvage-and-repair-workshop-caliper-89dfd23b","title":"Caliper (Salvage and Repair Workshop)","summary":"Caliper: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Caliper. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.10 × 0.30 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-caliper-89dfd23b","cdnUrl":"https://cdn.3dassets.dev/assets/1745/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-caliper-89dfd23b","thumbnailUrl":"https://cdn.3dassets.dev/assets/1745/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1745/v1/poster.webp","blurhash":"U05r6{?w0000s;%MM{00McV[tloyIW%O%L00","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22516,"triangles":432,"vertices":1296,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.0475000012665987,0,-0.012500076792982094],"max":[0.04749603448109089,0.30000001192092896,0.012500076792982094]},"sizeMeters":[0.095,0.3,0.025],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:27.125Z","updatedAt":"2026-09-06T04:54:27.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1745/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CaliperSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1745/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1745/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1745/v1/model.glb\" alt=\"Caliper (Salvage and Repair 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/1745/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1745/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1748","slug":"salvage-and-repair-workshop-micrometer-17287b83","title":"Micrometer (Salvage and Repair Workshop)","summary":"Micrometer: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Micrometer. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.17 × 0.23 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-micrometer-17287b83","cdnUrl":"https://cdn.3dassets.dev/assets/1748/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-micrometer-17287b83","thumbnailUrl":"https://cdn.3dassets.dev/assets/1748/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1748/v1/poster.webp","blurhash":"U46a|;xu00IU00ay?vWB00IU?b.8_Nt7D%Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20612,"triangles":392,"vertices":1176,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.08657806366682053,-0.000005304110778911464,-0.018000125241067866],"max":[0.08657604870030713,0.2255883365869522,0.018000125241067866]},"sizeMeters":[0.173,0.226,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:27.576Z","updatedAt":"2026-09-06T04:54:28.510Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1748/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MicrometerSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1748/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1748/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1748/v1/model.glb\" alt=\"Micrometer (Salvage and Repair 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/1748/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1748/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1750","slug":"salvage-and-repair-workshop-dial-indicator-0595371e","title":"Dial Indicator (Salvage and Repair Workshop)","summary":"Dial Indicator: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Dial Indicator. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.12 × 0.18 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-dial-indicator-0595371e","cdnUrl":"https://cdn.3dassets.dev/assets/1750/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-dial-indicator-0595371e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1750/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1750/v1/poster.webp","blurhash":"UB9%-b%L00D*~qt79FM{01Rj?b%201NG-;%2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19264,"triangles":348,"vertices":1044,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06000365963811153,0,-0.031497618821239394],"max":[0.06000365963811153,0.17999999225139618,0.03149879195992846]},"sizeMeters":[0.12,0.18,0.063],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:29.506Z","updatedAt":"2026-09-06T04:54:30.409Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1750/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DialIndicatorSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1750/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1750/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1750/v1/model.glb\" alt=\"Dial Indicator (Salvage and Repair 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/1750/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1750/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1752","slug":"salvage-and-repair-workshop-precision-bit-case-d7c27ac7","title":"Precision Bit Case (Salvage and Repair Workshop)","summary":"Precision Bit Case: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Precision Bit Case. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.22 × 0.20 × 0.17 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-precision-bit-case-d7c27ac7","cdnUrl":"https://cdn.3dassets.dev/assets/1752/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-precision-bit-case-d7c27ac7","thumbnailUrl":"https://cdn.3dassets.dev/assets/1752/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1752/v1/poster.webp","blurhash":"ULDRf^5m0g-S}qI;9^xZ5R$$oMNdAHxFxDS4","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64392,"triangles":1288,"vertices":3864,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.10999999940395357,0.000005492993013160585,-0.0830023799963463],"max":[0.10999999940395355,0.199998167959817,0.0829981670850462]},"sizeMeters":[0.22,0.2,0.166],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:29.562Z","updatedAt":"2026-09-06T04:54:30.422Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1752/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PrecisionBitCaseSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1752/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1752/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1752/v1/model.glb\" alt=\"Precision Bit Case (Salvage and Repair 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/1752/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1752/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1754","slug":"salvage-and-repair-workshop-inspection-mirror-b050e5f8","title":"Inspection Mirror (Salvage and Repair Workshop)","summary":"Inspection Mirror: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Inspection Mirror. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.11 × 0.40 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-inspection-mirror-b050e5f8","cdnUrl":"https://cdn.3dassets.dev/assets/1754/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-inspection-mirror-b050e5f8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1754/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1754/v1/poster.webp","blurhash":"U65h#:x]00Di?^ozDOR5%gofIARjxan%RjSM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13360,"triangles":240,"vertices":720,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.05500007779016433,0,-0.014988784731103714],"max":[0.05500007779016433,0.39500001072883606,0.014999084413055811]},"sizeMeters":[0.11,0.395,0.03],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:29.681Z","updatedAt":"2026-09-06T04:54:30.713Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1754/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InspectionMirrorSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1754/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1754/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1754/v1/model.glb\" alt=\"Inspection Mirror (Salvage and Repair 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/1754/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1754/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1757","slug":"salvage-and-repair-workshop-stripped-fan-8b94aa70","title":"Stripped Fan (Salvage and Repair Workshop)","summary":"Stripped Fan: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stripped Fan. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.47 × 0.97 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-stripped-fan-8b94aa70","cdnUrl":"https://cdn.3dassets.dev/assets/1757/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-stripped-fan-8b94aa70","thumbnailUrl":"https://cdn.3dassets.dev/assets/1757/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1757/v1/poster.webp","blurhash":"U17naq.80000~qWV8_xa9Fsp-;Na00jZ~qSL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":48488,"triangles":988,"vertices":2964,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.23602154685286283,-3.7252906315288215e-10,-0.14002887097579828],"max":[0.23602154685286283,0.972000002861023,0.14002887097579828]},"sizeMeters":[0.472,0.972,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:29.946Z","updatedAt":"2026-09-06T04:54:30.813Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1757/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StrippedFanSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1757/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1757/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1757/v1/model.glb\" alt=\"Stripped Fan (Salvage and Repair 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/1757/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1757/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1758","slug":"salvage-and-repair-workshop-opened-radio-f061c956","title":"Opened Radio (Salvage and Repair Workshop)","summary":"Opened Radio: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Opened Radio. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.38 × 0.60 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-opened-radio-f061c956","cdnUrl":"https://cdn.3dassets.dev/assets/1758/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-opened-radio-f061c956","thumbnailUrl":"https://cdn.3dassets.dev/assets/1758/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1758/v1/poster.webp","blurhash":"U15XcDMc00.m1hIU}r.800k=~pQm[o-;5m8_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55084,"triangles":836,"vertices":2508,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.19004762172698975,-0.000008543905265362417,-0.08998931597802422],"max":[0.1900554345079658,0.601019024848938,0.08999732976806799]},"sizeMeters":[0.38,0.601,0.18],"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-06T04:54:30.106Z","updatedAt":"2026-09-06T04:54:30.830Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1758/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OpenedRadioSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1758/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1758/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1758/v1/model.glb\" alt=\"Opened Radio (Salvage and Repair 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/1758/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1758/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1760","slug":"salvage-and-repair-workshop-washer-drum-2b564e16","title":"Washer Drum (Salvage and Repair Workshop)","summary":"Washer Drum: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Washer Drum. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.57 × 0.45 × 0.54 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-washer-drum-2b564e16","cdnUrl":"https://cdn.3dassets.dev/assets/1760/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-washer-drum-2b564e16","thumbnailUrl":"https://cdn.3dassets.dev/assets/1760/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1760/v1/poster.webp","blurhash":"U39@hk?b00IV~qMx9E-;00IU_3%gWC%MtRD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":432624,"triangles":8976,"vertices":26928,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.28299999237060547,-0.000009628232028130457,-0.27000001072883606],"max":[0.28299999237060547,0.45000961631109915,0.27000001072883606]},"sizeMeters":[0.566,0.45,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:30.331Z","updatedAt":"2026-09-06T04:54:31.235Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1760/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WasherDrumSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1760/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1760/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1760/v1/model.glb\" alt=\"Washer Drum (Salvage and Repair 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/1760/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1760/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1759","slug":"salvage-and-repair-workshop-compressor-unit-a801f80e","title":"Compressor Unit (Salvage and Repair Workshop)","summary":"Compressor Unit: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Compressor Unit. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.56 × 0.47 × 0.46 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-compressor-unit-a801f80e","cdnUrl":"https://cdn.3dassets.dev/assets/1759/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-compressor-unit-a801f80e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1759/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1759/v1/poster.webp","blurhash":"U58XLQ.900Dh?vj]9FRP00Vr_NXT4TRj?cxa","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":79924,"triangles":1612,"vertices":4836,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.28095361590385437,0.000007628331754272466,-0.23000000417232513],"max":[0.28094987095718393,0.4699999988079071,0.23000000417232513]},"sizeMeters":[0.562,0.47,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:30.290Z","updatedAt":"2026-09-06T04:54:31.349Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1759/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompressorUnitSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1759/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1759/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1759/v1/model.glb\" alt=\"Compressor Unit (Salvage and Repair 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/1759/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1759/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1763","slug":"salvage-and-repair-workshop-exposed-toaster-2e8b9b8e","title":"Exposed Toaster (Salvage and Repair Workshop)","summary":"Exposed Toaster: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Exposed Toaster. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.30 × 0.21 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-exposed-toaster-2e8b9b8e","cdnUrl":"https://cdn.3dassets.dev/assets/1763/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-exposed-toaster-2e8b9b8e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1763/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1763/v1/poster.webp","blurhash":"U5A,|C_N8_jZs:%M-;a}00MxIAjZt6xuDiD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90652,"triangles":1836,"vertices":5508,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,-0.000008239997885947647,-0.10000610767578073],"max":[0.15000000596046448,0.21000000834465027,0.10000610767578073]},"sizeMeters":[0.3,0.21,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:30.521Z","updatedAt":"2026-09-06T04:54:31.603Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1763/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExposedToasterSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1763/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1763/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1763/v1/model.glb\" alt=\"Exposed Toaster (Salvage and Repair 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/1763/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1763/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1767","slug":"salvage-and-repair-workshop-fridge-condenser-e8694bcb","title":"Fridge Condenser (Salvage and Repair Workshop)","summary":"Fridge Condenser: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Fridge Condenser. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.67 × 1.17 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-fridge-condenser-e8694bcb","cdnUrl":"https://cdn.3dassets.dev/assets/1767/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-fridge-condenser-e8694bcb","thumbnailUrl":"https://cdn.3dassets.dev/assets/1767/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1767/v1/poster.webp","blurhash":"U371vG%M00D%~qxt8_IU?bt8D%IU?bxvIAD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":84732,"triangles":1728,"vertices":5184,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.33503554177450867,0,-0.03499252168166029],"max":[0.33503554177450867,1.1699999570846558,0.03499252168166029]},"sizeMeters":[0.67,1.17,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:35.556Z","updatedAt":"2026-09-06T04:54:36.760Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1767/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FridgeCondenserSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1767/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1767/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1767/v1/model.glb\" alt=\"Fridge Condenser (Salvage and Repair 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/1767/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1767/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1768","slug":"salvage-and-repair-workshop-disassembled-pump-c60bf102","title":"Disassembled Pump (Salvage and Repair Workshop)","summary":"Disassembled Pump: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Disassembled Pump. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.71 × 0.39 × 0.36 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-disassembled-pump-c60bf102","cdnUrl":"https://cdn.3dassets.dev/assets/1768/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-disassembled-pump-c60bf102","thumbnailUrl":"https://cdn.3dassets.dev/assets/1768/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1768/v1/poster.webp","blurhash":"U37-pHtm00D%IU_NM{4n00DO?H?bI900?H?c","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":100320,"triangles":2052,"vertices":6156,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3564999997615814,0.00001134586337139809,-0.18000043321562434],"max":[0.3564999997615814,0.3899886398315139,0.18000043321562434]},"sizeMeters":[0.713,0.39,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:35.459Z","updatedAt":"2026-09-06T04:54:36.914Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1768/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DisassembledPumpSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1768/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1768/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1768/v1/model.glb\" alt=\"Disassembled Pump (Salvage and Repair 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/1768/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1768/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1770","slug":"salvage-and-repair-workshop-open-motor-75802034","title":"Open Motor (Salvage and Repair Workshop)","summary":"Open Motor: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Open Motor. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.26 × 0.40 × 0.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-open-motor-75802034","cdnUrl":"https://cdn.3dassets.dev/assets/1770/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-open-motor-75802034","thumbnailUrl":"https://cdn.3dassets.dev/assets/1770/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1770/v1/poster.webp","blurhash":"U5AAEv-:009Z9aWU-Vn*0MNH}?%0VXafpJof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46304,"triangles":928,"vertices":2784,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.13199865900499633,4.4703482582342247e-10,-0.13199865900499633],"max":[0.13199865900499633,0.4000000059604645,0.13199865900499633]},"sizeMeters":[0.264,0.4,0.264],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:35.380Z","updatedAt":"2026-09-06T04:54:36.284Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1770/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OpenMotorSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1770/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1770/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1770/v1/model.glb\" alt=\"Open Motor (Salvage and Repair 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/1770/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1770/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1771","slug":"salvage-and-repair-workshop-transformer-chassis-52762461","title":"Transformer Chassis (Salvage and Repair Workshop)","summary":"Transformer Chassis: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Transformer Chassis. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.30 × 0.26 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-transformer-chassis-52762461","cdnUrl":"https://cdn.3dassets.dev/assets/1771/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-transformer-chassis-52762461","thumbnailUrl":"https://cdn.3dassets.dev/assets/1771/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1771/v1/poster.webp","blurhash":"U59QEd?G00M{1htR-AIV00Io?axG~BRPIB%L","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":190944,"triangles":3832,"vertices":11496,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0.000004271573250395205,-0.12500534570642424],"max":[0.15000000596046448,0.25999358796245153,0.12500534570642424]},"sizeMeters":[0.3,0.26,0.25],"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-06T04:54:35.361Z","updatedAt":"2026-09-06T04:54:36.203Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1771/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TransformerChassisSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1771/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1771/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1771/v1/model.glb\" alt=\"Transformer Chassis (Salvage and Repair 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/1771/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1771/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1772","slug":"salvage-and-repair-workshop-stove-burner-assembly-78a52880","title":"Stove Burner Assembly (Salvage and Repair Workshop)","summary":"Stove Burner Assembly: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stove Burner Assembly. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.35 × 0.08 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-stove-burner-assembly-78a52880","cdnUrl":"https://cdn.3dassets.dev/assets/1772/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-stove-burner-assembly-78a52880","thumbnailUrl":"https://cdn.3dassets.dev/assets/1772/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1772/v1/poster.webp","blurhash":"U28qZ]_300IAITWTxuae00D%kWM{.9o4E1tQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45024,"triangles":900,"vertices":2700,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.17499999701976776,0.000008544876501766219,-0.17499999701976776],"max":[0.17499999701976776,0.07999145314909437,0.17499999701976776]},"sizeMeters":[0.35,0.08,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:35.581Z","updatedAt":"2026-09-06T04:54:36.197Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1772/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoveBurnerAssemblySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1772/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1772/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1772/v1/model.glb\" alt=\"Stove Burner Assembly (Salvage and Repair 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/1772/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1772/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1775","slug":"salvage-and-repair-workshop-cable-stripping-machine-ebb323ff","title":"Cable Stripping Machine (Salvage and Repair Workshop)","summary":"Cable Stripping Machine: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Cable Stripping Machine. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.67 × 0.94 × 0.45 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-cable-stripping-machine-ebb323ff","cdnUrl":"https://cdn.3dassets.dev/assets/1775/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-cable-stripping-machine-ebb323ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/1775/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1775/v1/poster.webp","blurhash":"U59HCK~q00Mx_3t79FMx00IUo#RjM{xutRM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":66572,"triangles":1348,"vertices":4044,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.33509185817726483,0,-0.22496635164056752],"max":[0.33509185817726483,0.9449999928474426,0.22496635164056752]},"sizeMeters":[0.67,0.945,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:37.336Z","updatedAt":"2026-09-06T04:54:38.896Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1775/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CableStrippingMachineSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1775/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1775/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1775/v1/model.glb\" alt=\"Cable Stripping Machine (Salvage and Repair 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/1775/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1775/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1776","slug":"salvage-and-repair-workshop-wire-spool-rack-6a901d5a","title":"Wire Spool Rack (Salvage and Repair Workshop)","summary":"Wire Spool Rack: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Wire Spool Rack. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.30 × 1.57 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-wire-spool-rack-6a901d5a","cdnUrl":"https://cdn.3dassets.dev/assets/1776/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-wire-spool-rack-6a901d5a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1776/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1776/v1/poster.webp","blurhash":"U7B3Z*$~00NL*0%MMcD%01kr-nR4t6n+RjR%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55376,"triangles":968,"vertices":2904,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.6499999761581421,0,-0.2999557371589485],"max":[0.6499999761581421,1.5700000524520874,0.2999557371589485]},"sizeMeters":[1.3,1.57,0.6],"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-06T04:54:37.153Z","updatedAt":"2026-09-06T04:54:38.032Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1776/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireSpoolRackSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1776/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1776/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1776/v1/model.glb\" alt=\"Wire Spool Rack (Salvage and Repair 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/1776/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1776/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1777","slug":"salvage-and-repair-workshop-mechanical-crusher-9798a3c0","title":"Mechanical Crusher (Salvage and Repair Workshop)","summary":"Mechanical Crusher: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Mechanical Crusher. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.70 × 1.03 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-mechanical-crusher-9798a3c0","cdnUrl":"https://cdn.3dassets.dev/assets/1777/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-mechanical-crusher-9798a3c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/1777/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1777/v1/poster.webp","blurhash":"U29HFT_400004mt6ohIVDiRjx]bE-:xutSM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36724,"triangles":728,"vertices":2184,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,6.705522803684971e-10,-0.24997939289970347],"max":[0.3499999940395355,1.0299999713897705,0.24997939289970347]},"sizeMeters":[0.7,1.03,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:37.183Z","updatedAt":"2026-09-06T04:54:38.120Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1777/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MechanicalCrusherSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1777/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1777/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1777/v1/model.glb\" alt=\"Mechanical Crusher (Salvage and Repair 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/1777/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1777/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1783","slug":"salvage-and-repair-workshop-metal-shears-cf1044fc","title":"Metal Shears (Salvage and Repair Workshop)","summary":"Metal Shears: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Metal Shears. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.47 × 0.91 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-metal-shears-cf1044fc","cdnUrl":"https://cdn.3dassets.dev/assets/1783/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-metal-shears-cf1044fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/1783/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1783/v1/poster.webp","blurhash":"U47n2l%h00Hr8w9YyY~W5Rog^jjXuP%2q[E2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13468,"triangles":244,"vertices":732,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.23475824636408477,-0.000017989372848387086,-0.25],"max":[0.234743482976756,0.9094301746785641,0.25]},"sizeMeters":[0.47,0.909,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:41.058Z","updatedAt":"2026-09-06T04:54:42.116Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1783/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MetalShearsSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1783/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1783/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1783/v1/model.glb\" alt=\"Metal Shears (Salvage and Repair 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/1783/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1783/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1784","slug":"salvage-and-repair-workshop-coil-extraction-frame-0e3ffea4","title":"Coil Extraction Frame (Salvage and Repair Workshop)","summary":"Coil Extraction Frame: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Coil Extraction Frame. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.80 × 0.97 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-coil-extraction-frame-0e3ffea4","cdnUrl":"https://cdn.3dassets.dev/assets/1784/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-coil-extraction-frame-0e3ffea4","thumbnailUrl":"https://cdn.3dassets.dev/assets/1784/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1784/v1/poster.webp","blurhash":"U88||syX00Me*JtSMdRODirr-VS2vzxGS5I:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":225996,"triangles":4520,"vertices":13560,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-7.631490127855967e-7,-0.200030521490163],"max":[0.4000000059604645,0.9700000286102295,0.200030521490163]},"sizeMeters":[0.8,0.97,0.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-06T04:54:41.470Z","updatedAt":"2026-09-06T04:54:42.546Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1784/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoilExtractionFrameSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1784/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1784/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1784/v1/model.glb\" alt=\"Coil Extraction Frame (Salvage and Repair 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/1784/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1784/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1785","slug":"salvage-and-repair-workshop-filter-press-2f64acb8","title":"Filter Press (Salvage and Repair Workshop)","summary":"Filter Press: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Filter Press. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.80 × 1.07 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-filter-press-2f64acb8","cdnUrl":"https://cdn.3dassets.dev/assets/1785/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-filter-press-2f64acb8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1785/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1785/v1/poster.webp","blurhash":"UEBWi5xu00Rj~pt74oM{D%aekDWB9Zfj%May","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":79488,"triangles":1620,"vertices":4860,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3999849868378459,0,-0.24997905956784572],"max":[0.3999849868378459,1.0750083389459255,0.24997905956784572]},"sizeMeters":[0.8,1.075,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:40.024Z","updatedAt":"2026-09-06T04:54:40.444Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1785/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FilterPressSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1785/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1785/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1785/v1/model.glb\" alt=\"Filter Press (Salvage and Repair 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/1785/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1785/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1792","slug":"salvage-and-repair-workshop-belt-sander-54cf3c32","title":"Belt Sander (Salvage and Repair Workshop)","summary":"Belt Sander: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Belt Sander. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.40 × 0.34 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-belt-sander-54cf3c32","cdnUrl":"https://cdn.3dassets.dev/assets/1792/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-belt-sander-54cf3c32","thumbnailUrl":"https://cdn.3dassets.dev/assets/1792/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1792/v1/poster.webp","blurhash":"U5AT4b-.00Rn~UNG0hbc00jttlRP0$tS}rwI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27444,"triangles":484,"vertices":1452,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.19999542655836264,0.000007858475720875363,-0.2750000059604645],"max":[0.19999542655836264,0.3449929107047526,0.2750000059604645]},"sizeMeters":[0.4,0.345,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-06T04:54:41.929Z","updatedAt":"2026-09-06T04:54:42.140Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1792/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BeltSanderSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1792/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1792/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1792/v1/model.glb\" alt=\"Belt Sander (Salvage and Repair 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/1792/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1792/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1794","slug":"salvage-and-repair-workshop-parts-tumbler-e5831911","title":"Parts Tumbler (Salvage and Repair Workshop)","summary":"Parts Tumbler: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Parts Tumbler. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.65 × 0.71 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-parts-tumbler-e5831911","cdnUrl":"https://cdn.3dassets.dev/assets/1794/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-parts-tumbler-e5831911","thumbnailUrl":"https://cdn.3dassets.dev/assets/1794/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1794/v1/poster.webp","blurhash":"U48XOb%h00IoH@WBkpoe00Mw-:s._4ogR%oz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":37900,"triangles":780,"vertices":2340,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0,-0.32499998807907104],"max":[0.32499998807907104,0.7149970943836558,0.32499998807907104]},"sizeMeters":[0.65,0.715,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:41.539Z","updatedAt":"2026-09-06T04:54:42.135Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1794/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PartsTumblerSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1794/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1794/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1794/v1/model.glb\" alt=\"Parts Tumbler (Salvage and Repair 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/1794/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1794/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1788","slug":"salvage-and-repair-workshop-manual-winch-96af2fc9","title":"Manual Winch (Salvage and Repair Workshop)","summary":"Manual Winch: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Manual Winch. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.32 × 0.40 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-manual-winch-96af2fc9","cdnUrl":"https://cdn.3dassets.dev/assets/1788/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-manual-winch-96af2fc9","thumbnailUrl":"https://cdn.3dassets.dev/assets/1788/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1788/v1/poster.webp","blurhash":"U29aNx_N004U4TIU%M?b00xukq9Fx]xu%29E","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26372,"triangles":512,"vertices":1536,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.1614978508515874,0,-0.1499923726076915],"max":[0.1614978508515874,0.4000000059604645,0.1499923726076915]},"sizeMeters":[0.323,0.4,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:41.574Z","updatedAt":"2026-09-06T04:54:42.196Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1788/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ManualWinchSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1788/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1788/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1788/v1/model.glb\" alt=\"Manual Winch (Salvage and Repair 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/1788/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1788/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1789","slug":"salvage-and-repair-workshop-recovery-hoist-c23dce45","title":"Recovery Hoist (Salvage and Repair Workshop)","summary":"Recovery Hoist: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Recovery Hoist. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.68 × 2.37 × 1.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-recovery-hoist-c23dce45","cdnUrl":"https://cdn.3dassets.dev/assets/1789/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-recovery-hoist-c23dce45","thumbnailUrl":"https://cdn.3dassets.dev/assets/1789/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1789/v1/poster.webp","blurhash":"U46[8Y%200IV_4%M9EDjIAt7t7IUoLozf+Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":37488,"triangles":744,"vertices":2232,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8400000333786011,-0.000040591233508434355,-0.6000256593908364],"max":[0.8400000333786011,2.369999885559082,0.6000256593908364]},"sizeMeters":[1.68,2.37,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:40.765Z","updatedAt":"2026-09-06T04:54:41.748Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1789/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RecoveryHoistSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1789/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1789/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1789/v1/model.glb\" alt=\"Recovery Hoist (Salvage and Repair 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/1789/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1789/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1791","slug":"salvage-and-repair-workshop-scrap-metal-bin-2ed9a3c9","title":"Scrap Metal Bin (Salvage and Repair Workshop)","summary":"Scrap Metal Bin: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Scrap Metal Bin. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.10 × 0.68 × 0.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-scrap-metal-bin-2ed9a3c9","cdnUrl":"https://cdn.3dassets.dev/assets/1791/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-scrap-metal-bin-2ed9a3c9","thumbnailUrl":"https://cdn.3dassets.dev/assets/1791/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1791/v1/poster.webp","blurhash":"U3AT$Wxv00?bW.DjNF~q009FIAxu%N.8ni4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38072,"triangles":756,"vertices":2268,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.550000011920929,-0.00002348023450937653,-0.4000266855293537],"max":[0.550000011920929,0.6800234873870667,0.4000266855293537]},"sizeMeters":[1.1,0.68,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:41.610Z","updatedAt":"2026-09-06T04:54:41.998Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1791/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScrapMetalBinSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1791/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1791/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1791/v1/model.glb\" alt=\"Scrap Metal Bin (Salvage and Repair 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/1791/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1791/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1795","slug":"salvage-and-repair-workshop-wire-basket-bin-c972fedb","title":"Wire Basket Bin (Salvage and Repair Workshop)","summary":"Wire Basket Bin: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Wire Basket Bin. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.65 × 0.61 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-wire-basket-bin-c972fedb","cdnUrl":"https://cdn.3dassets.dev/assets/1795/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-wire-basket-bin-c972fedb","thumbnailUrl":"https://cdn.3dassets.dev/assets/1795/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1795/v1/poster.webp","blurhash":"U3Dcm:_300w|-;?b?bxa00WB00M|_NR*4TIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":141052,"triangles":2916,"vertices":8748,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0.000003881259396265602,-0.2500160130469419],"max":[0.32499998807907104,0.6119961071102475,0.2500160130469419]},"sizeMeters":[0.65,0.612,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:42.916Z","updatedAt":"2026-09-06T04:54:43.750Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1795/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WireBasketBinSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1795/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1795/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1795/v1/model.glb\" alt=\"Wire Basket Bin (Salvage and Repair 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/1795/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1795/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1796","slug":"salvage-and-repair-workshop-glass-sorting-rack-fe1b199f","title":"Glass Sorting Rack (Salvage and Repair Workshop)","summary":"Glass Sorting Rack: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Glass Sorting Rack. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.00 × 1.34 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-glass-sorting-rack-fe1b199f","cdnUrl":"https://cdn.3dassets.dev/assets/1796/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-glass-sorting-rack-fe1b199f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1796/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1796/v1/poster.webp","blurhash":"U49tW9?c00D$?c-=4T4m00IU?bt3_NxbtPW9","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":115140,"triangles":2376,"vertices":7128,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.49999833211771616,0,-0.24999916605885808],"max":[0.49999833211771616,1.3450000286102295,0.24999916605885808]},"sizeMeters":[1,1.345,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:43.724Z","updatedAt":"2026-09-06T04:54:44.571Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1796/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GlassSortingRackSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1796/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1796/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1796/v1/model.glb\" alt=\"Glass Sorting Rack (Salvage and Repair 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/1796/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1796/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1797","slug":"salvage-and-repair-workshop-component-drawer-cabinet-e466047f","title":"Component Drawer Cabinet (Salvage and Repair Workshop)","summary":"Component Drawer Cabinet: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Component Drawer Cabinet. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.70 × 1.00 × 0.45 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-component-drawer-cabinet-e466047f","cdnUrl":"https://cdn.3dassets.dev/assets/1797/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-component-drawer-cabinet-e466047f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1797/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1797/v1/poster.webp","blurhash":"U98}6|M{00%M_Nt7DiRj-;xuD%M{x]t7RjNF","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":162504,"triangles":3348,"vertices":10044,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3500167851802118,0,-0.22371593371379742],"max":[0.3500167851802118,1,0.22371593371379742]},"sizeMeters":[0.7,1,0.447],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:44.073Z","updatedAt":"2026-09-06T04:54:44.895Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1797/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ComponentDrawerCabinetSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1797/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1797/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1797/v1/model.glb\" alt=\"Component Drawer Cabinet (Salvage and Repair 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/1797/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1797/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1798","slug":"salvage-and-repair-workshop-oil-drain-tray-868a4069","title":"Oil Drain Tray (Salvage and Repair Workshop)","summary":"Oil Drain Tray: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Oil Drain Tray. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.80 × 0.08 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-oil-drain-tray-868a4069","cdnUrl":"https://cdn.3dassets.dev/assets/1798/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-oil-drain-tray-868a4069","thumbnailUrl":"https://cdn.3dassets.dev/assets/1798/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1798/v1/poster.webp","blurhash":"U03S39IA00?bo|xuRQIo00%N~qD$rs9Yxu?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23128,"triangles":444,"vertices":1332,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.39750000834465027,0.000008544969634025068,-0.3499999940395355],"max":[0.39750000834465027,0.07999145324222663,0.3499999940395355]},"sizeMeters":[0.795,0.08,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:44.228Z","updatedAt":"2026-09-06T04:54:44.917Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1798/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OilDrainTraySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1798/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1798/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1798/v1/model.glb\" alt=\"Oil Drain Tray (Salvage and Repair 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/1798/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1798/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1799","slug":"salvage-and-repair-workshop-fastener-compartment-case-a85c3537","title":"Fastener Compartment Case (Salvage and Repair Workshop)","summary":"Fastener Compartment Case: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Fastener Compartment Case. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.40 × 0.09 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-fastener-compartment-case-a85c3537","cdnUrl":"https://cdn.3dassets.dev/assets/1799/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-fastener-compartment-case-a85c3537","thumbnailUrl":"https://cdn.3dassets.dev/assets/1799/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1799/v1/poster.webp","blurhash":"U35rA3t700og-=fkM_j]00ay_4Rj4TjZ%NWU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":48504,"triangles":972,"vertices":2916,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.20000000298023224,0.000003889340503278327,-0.1499923726076915],"max":[0.20000000298023224,0.08499115065206198,0.1499923726076915]},"sizeMeters":[0.4,0.085,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:43.940Z","updatedAt":"2026-09-06T04:54:44.924Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1799/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FastenerCompartmentCaseSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1799/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1799/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1799/v1/model.glb\" alt=\"Fastener Compartment Case (Salvage and Repair 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/1799/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1799/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1800","slug":"salvage-and-repair-workshop-stacking-parts-tray-881f4de4","title":"Stacking Parts Tray (Salvage and Repair Workshop)","summary":"Stacking Parts Tray: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stacking Parts Tray. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.46 × 0.20 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-stacking-parts-tray-881f4de4","cdnUrl":"https://cdn.3dassets.dev/assets/1800/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-stacking-parts-tray-881f4de4","thumbnailUrl":"https://cdn.3dassets.dev/assets/1800/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1800/v1/poster.webp","blurhash":"U4FXCq~V02ivy?AcNG]z005T,.MyqZ^Kvf0,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38060,"triangles":756,"vertices":2268,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.22750000655651093,-0.0000016780709863328802,-0.25],"max":[0.22750000655651093,0.19499733475896333,0.25]},"sizeMeters":[0.455,0.195,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:44.124Z","updatedAt":"2026-09-06T04:54:45.070Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1800/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StackingPartsTraySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1800/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1800/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1800/v1/model.glb\" alt=\"Stacking Parts Tray (Salvage and Repair 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/1800/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1800/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1801","slug":"salvage-and-repair-workshop-reclamation-trolley-dd1b709e","title":"Reclamation Trolley (Salvage and Repair Workshop)","summary":"Reclamation Trolley: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Reclamation Trolley. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.76 × 1.07 × 1.10 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-reclamation-trolley-dd1b709e","cdnUrl":"https://cdn.3dassets.dev/assets/1801/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-reclamation-trolley-dd1b709e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1801/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1801/v1/poster.webp","blurhash":"UC9@edRj00%MM{D%j[%g9EV@xut7_NxuIUt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":238360,"triangles":4928,"vertices":14784,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.380015753248473,-0.000027604621443466648,-0.550000011920929],"max":[0.380015753248473,1.0700276570735308,0.550000011920929]},"sizeMeters":[0.76,1.07,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:54:44.292Z","updatedAt":"2026-09-06T04:54:45.106Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1801/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReclamationTrolleySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1801/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1801/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1801/v1/model.glb\" alt=\"Reclamation Trolley (Salvage and Repair 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/1801/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1801/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1802","slug":"salvage-and-repair-workshop-coil-storage-spindle-c6c4a245","title":"Coil Storage Spindle (Salvage and Repair Workshop)","summary":"Coil Storage Spindle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Coil Storage Spindle. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 0.60 × 0.85 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-coil-storage-spindle-c6c4a245","cdnUrl":"https://cdn.3dassets.dev/assets/1802/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-coil-storage-spindle-c6c4a245","thumbnailUrl":"https://cdn.3dassets.dev/assets/1802/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1802/v1/poster.webp","blurhash":"U29i*h={0057~os:0LNZ02WB^%oMRkaeoJof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":72200,"triangles":1264,"vertices":3792,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.30001067630530076,1.490116363633831e-10,-0.30001067630530076],"max":[0.30001067630530076,0.8550000190734863,0.30001067630530076]},"sizeMeters":[0.6,0.855,0.6],"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-06T04:54:44.589Z","updatedAt":"2026-09-06T04:54:45.303Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1802/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoilStorageSpindleSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1802/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1802/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1802/v1/model.glb\" alt=\"Coil Storage Spindle (Salvage and Repair 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/1802/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1802/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1803","slug":"salvage-and-repair-workshop-repaired-equipment-shelf-bb43ebf9","title":"Repaired Equipment Shelf (Salvage and Repair Workshop)","summary":"Repaired Equipment Shelf: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Repaired Equipment Shelf. Repair and recovery fixture with distinct working interfaces; purely static equipment, no simulated electronics or cutting. Dimensions 1.30 × 1.77 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-repaired-equipment-shelf-bb43ebf9","cdnUrl":"https://cdn.3dassets.dev/assets/1803/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-repaired-equipment-shelf-bb43ebf9","thumbnailUrl":"https://cdn.3dassets.dev/assets/1803/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1803/v1/poster.webp","blurhash":"U69ZZVog0NtQ}?g49^r;$xbIE3ad={xaEfI:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49068,"triangles":972,"vertices":2916,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.6500014315741606,0,-0.2999988472228499],"max":[0.6500014315741606,1.7699688496626624,0.2999988472228499]},"sizeMeters":[1.3,1.77,0.6],"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-06T04:54:46.037Z","updatedAt":"2026-09-06T04:54:48.678Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1803/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RepairedEquipmentShelfSalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1803/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1803/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1803/v1/model.glb\" alt=\"Repaired Equipment Shelf (Salvage and Repair 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/1803/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1803/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1804","slug":"salvage-and-repair-workshop-electronics--3325f78c-starter-scene","title":"Electronics Repair Bay (Salvage and Repair Workshop)","summary":"Composed example for Salvage and Repair Workshop.","description":"Composed electronics repair bay with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-electronics--3325f78c-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1804/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-electronics--3325f78c-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1804/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1804/v1/poster.webp","blurhash":"U27T:]}R56~q~p^iVrtl00KQ#,IA0L0fkXR5","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":849584,"triangles":17020,"vertices":51060,"meshes":19,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-3.1500014315741605,0,-1.6207632671594512],"max":[1.949999988079071,1.7699999809265137,1.2999988472228499]},"sizeMeters":[5.1,1.77,2.921],"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-06T04:54:49.243Z","updatedAt":"2026-09-06T04:54:50.814Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1804/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ElectronicsRepairBaySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1804/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1804/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1804/v1/model.glb\" alt=\"Electronics Repair Bay (Salvage and Repair 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/1804/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1804/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1805","slug":"salvage-and-repair-workshop-mechanical-recovery-bay-e3326ef8","title":"Mechanical Recovery Bay (Salvage and Repair Workshop)","summary":"Composed example for Salvage and Repair Workshop.","description":"Composed mechanical recovery bay with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/salvage-and-repair-workshop-mechanical-recovery-bay-e3326ef8","cdnUrl":"https://cdn.3dassets.dev/assets/1805/v1/model.glb","downloadUrl":"https://3dassets.dev/download/salvage-and-repair-workshop-mechanical-recovery-bay-e3326ef8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1805/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1805/v1/poster.webp","blurhash":"U37^_N4.9E.TM|Z~X9-;00-oMyiv-pcZwH8_","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":571036,"triangles":11440,"vertices":34320,"meshes":17,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.699999988079071,-0.000040591233508434355,-2.1000256593908366],"max":[2.649999976158142,2.369999885559082,2.3250037386568225]},"sizeMeters":[5.35,2.37,4.425],"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-06T04:54:49.346Z","updatedAt":"2026-09-06T04:54:51.125Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1805/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MechanicalRecoveryBaySalvageAndRepairWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1805/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1805/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1805/v1/model.glb\" alt=\"Mechanical Recovery Bay (Salvage and Repair 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/1805/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/1805/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}