{"data":{"id":65,"slug":"suburban-outbreak-interiors","title":"Lootable Apartment Interiors","summary":"Lootable Apartment Interiors: 95 distinct designs plus explicitly tracked variants and two composed scenes.","description":"Original CC0 survival construction assets in the weathered-survival-v1 family. Itemised scope, states and honest static limitations in blueprint.json.","url":"https://3dassets.dev/packs/suburban-outbreak-interiors","coverUrl":"https://cdn.3dassets.dev/assets/10887/v1/poster.webp","assetCount":97,"aiGenerated":true,"aiGeneratedAssetCount":97,"aiModels":["GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":2020232,"totalTriangles":30752,"starterScene":{"id":"10887","slug":"suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","title":"Assembled Survivor Site (Lootable Apartment Interiors)","summary":"Composed example for Lootable Apartment Interiors.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10887/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10887/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10887/v1/poster.webp","blurhash":"UKCiw09Z4:ae~qM{IAof4:xuRjt74U%LtRju","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":110776,"triangles":3512,"vertices":4473,"meshes":17,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.1149937482749985,-0.000004565855492466575,-2.0924344651739157],"max":[2.000042765651394,2.6100000953674316,2.8599383526108584]},"sizeMeters":[4.115,2.61,4.952],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:30.863Z","updatedAt":"2026-09-06T14:36:31.304Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10887/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10887/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10887/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10887/v1/model.glb\" alt=\"Assembled Survivor Site (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10887/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10887/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"10608","slug":"suburban-outbreak-interiors-room-solid-partition-f874568b","title":"Room Solid Partition (Lootable Apartment Interiors)","summary":"Room Solid Partition: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening null; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-solid-partition-f874568b","cdnUrl":"https://cdn.3dassets.dev/assets/10608/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-solid-partition-f874568b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10608/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10608/v1/poster.webp","blurhash":"U7G+R4?Y00D+-;_3WA0000WG~qWB%L%MRk9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27168,"triangles":528,"vertices":1584,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.09243446517391579],"max":[1.000042765651394,2.4000000953674316,0.10799808078571264]},"sizeMeters":[2,2.4,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:28.666Z","updatedAt":"2026-09-06T14:35:29.302Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10608/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomSolidPartitionLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10608/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10608/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10608/v1/model.glb\" alt=\"Room Solid Partition (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10608/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10608/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10611","slug":"suburban-outbreak-interiors-room-door-partition-cffe88a6","title":"Room Door Partition (Lootable Apartment Interiors)","summary":"Room Door Partition: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening door; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-door-partition-cffe88a6","cdnUrl":"https://cdn.3dassets.dev/assets/10611/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-door-partition-cffe88a6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10611/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10611/v1/poster.webp","blurhash":"U6F65+.700M{~p_39G0000WU_2Rkxu-;WB4n","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30044,"triangles":588,"vertices":1764,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.11499374827499825],"max":[1.000042765651394,2.4000000953674316,0.11499374827499825]},"sizeMeters":[2,2.4,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:28.655Z","updatedAt":"2026-09-06T14:35:29.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10611/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomDoorPartitionLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10611/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10611/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10611/v1/model.glb\" alt=\"Room Door Partition (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10611/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10611/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10612","slug":"suburban-outbreak-interiors-room-wide-arch-16d87f1e","title":"Room Wide Arch (Lootable Apartment Interiors)","summary":"Room Wide Arch: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening arch; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-wide-arch-16d87f1e","cdnUrl":"https://cdn.3dassets.dev/assets/10612/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-wide-arch-16d87f1e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10612/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10612/v1/poster.webp","blurhash":"U7F65*-;00M|~p_29Z0000a{?bRktQ-:a{9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33468,"triangles":660,"vertices":1980,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.11499374827499825],"max":[1.000042765651394,2.4000000953674316,0.11499374827499825]},"sizeMeters":[2,2.4,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:28.554Z","updatedAt":"2026-09-06T14:35:29.338Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10612/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomWideArchLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10612/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10612/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10612/v1/model.glb\" alt=\"Room Wide Arch (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10612/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10612/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10609","slug":"suburban-outbreak-interiors-room-window-wall-6b925ea2","title":"Room Window Wall (Lootable Apartment Interiors)","summary":"Room Window Wall: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening window; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-window-wall-6b925ea2","cdnUrl":"https://cdn.3dassets.dev/assets/10609/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-window-wall-6b925ea2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10609/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10609/v1/poster.webp","blurhash":"U7F=]l~o00Dj?a_2R*0000IV?bs:-:-;E14n","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":32348,"triangles":636,"vertices":1908,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1315239577858828],"max":[1.000042765651394,2.4000000953674316,0.15852396779946312]},"sizeMeters":[2,2.4,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:28.487Z","updatedAt":"2026-09-06T14:35:29.233Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10609/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomWindowWallLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10609/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10609/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10609/v1/model.glb\" alt=\"Room Window Wall (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10609/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10609/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10620","slug":"suburban-outbreak-interiors-room-double-window-7f059ef2","title":"Room Double Window (Lootable Apartment Interiors)","summary":"Room Double Window: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening double-window; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-double-window-7f059ef2","cdnUrl":"https://cdn.3dassets.dev/assets/10620/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-double-window-7f059ef2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10620/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10620/v1/poster.webp","blurhash":"U7F=]l~o009G?H_2R*0000IV_2t7-;-;IU4n","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35816,"triangles":708,"vertices":2124,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1315239577858828],"max":[1.000042765651394,2.4000000953674316,0.15852396779946312]},"sizeMeters":[2,2.4,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:31.324Z","updatedAt":"2026-09-06T14:35:31.927Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10620/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomDoubleWindowLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10620/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10620/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10620/v1/model.glb\" alt=\"Room Double Window (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10620/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10620/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10622","slug":"suburban-outbreak-interiors-room-serving-hatch-c2d08e70","title":"Room Serving Hatch (Lootable Apartment Interiors)","summary":"Room Serving Hatch: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening counter; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-serving-hatch-c2d08e70","cdnUrl":"https://cdn.3dassets.dev/assets/10622/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-serving-hatch-c2d08e70","thumbnailUrl":"https://cdn.3dassets.dev/assets/10622/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10622/v1/poster.webp","blurhash":"U7F$U?~o00D*-:_2bH0000IW?bof?b-;9Z4n","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33512,"triangles":660,"vertices":1980,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1315239577858828],"max":[1.000042765651394,2.4000000953674316,0.15852396779946312]},"sizeMeters":[2,2.4,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:31.446Z","updatedAt":"2026-09-06T14:35:32.078Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10622/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomServingHatchLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10622/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10622/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10622/v1/model.glb\" alt=\"Room Serving Hatch (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10622/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10622/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10623","slug":"suburban-outbreak-interiors-room-vent-partition-5db14537","title":"Room Vent Partition (Lootable Apartment Interiors)","summary":"Room Vent Partition: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening vent; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-vent-partition-5db14537","cdnUrl":"https://cdn.3dassets.dev/assets/10623/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-vent-partition-5db14537","thumbnailUrl":"https://cdn.3dassets.dev/assets/10623/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10623/v1/poster.webp","blurhash":"U7GIlq~o009G?a_2Rj0000IV~qt7xu-pM{4o","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31212,"triangles":612,"vertices":1836,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1315239577858828],"max":[1.000042765651394,2.4000000953674316,0.15852396779946312]},"sizeMeters":[2,2.4,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:31.528Z","updatedAt":"2026-09-06T14:35:32.115Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10623/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomVentPartitionLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10623/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10623/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10623/v1/model.glb\" alt=\"Room Vent Partition (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10623/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10623/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10621","slug":"suburban-outbreak-interiors-room-recessed-shelf-wall-7c0265eb","title":"Room Recessed Shelf Wall (Lootable Apartment Interiors)","summary":"Room Recessed Shelf Wall: 2 × 2.4 × 0.15 m nominal survival wall assembly.","description":"Original weathered survival wall. Nominal envelope 2m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form wall; opening shelf; pattern stud; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Structural-edge ports on nominal left and right boundaries; 2m modules use a centred grid origin. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-recessed-shelf-wall-7c0265eb","cdnUrl":"https://cdn.3dassets.dev/assets/10621/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-recessed-shelf-wall-7c0265eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/10621/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10621/v1/poster.webp","blurhash":"U5ECqF~o00M|_2~pNG00E5Iq4nM{-:?bIV00","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":42896,"triangles":708,"vertices":2124,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.000042765651394,0,-0.1315239577858828],"max":[1.000042765651394,2.4000000953674316,0.15852396779946312]},"sizeMeters":[2,2.4,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:31.267Z","updatedAt":"2026-09-06T14:35:32.019Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10621/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomRecessedShelfWallLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10621/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10621/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10621/v1/model.glb\" alt=\"Room Recessed Shelf Wall (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10621/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10621/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10632","slug":"suburban-outbreak-interiors-interior-panel-door-54048851","title":"Interior Panel Door (Lootable Apartment Interiors)","summary":"Interior Panel Door: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style plank. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-interior-panel-door-54048851","cdnUrl":"https://cdn.3dassets.dev/assets/10632/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-interior-panel-door-54048851","thumbnailUrl":"https://cdn.3dassets.dev/assets/10632/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10632/v1/poster.webp","blurhash":"U15|}~~V000L$RW=J%jY5;a#=HoI-Cs:NtR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22080,"triangles":244,"vertices":732,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644190834081,0,-0.060492523829955056],"max":[0.48668223529684257,2.099999856948852,0.060494910916190456]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:33.741Z","updatedAt":"2026-09-06T14:35:34.566Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10632/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function InteriorPanelDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10632/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10632/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10632/v1/model.glb\" alt=\"Interior Panel Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10632/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10632/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10633","slug":"suburban-outbreak-interiors-bathroom-louvred-door-667ada6e","title":"Bathroom Louvred Door (Lootable Apartment Interiors)","summary":"Bathroom Louvred Door: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style louvre. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-louvred-door-667ada6e","cdnUrl":"https://cdn.3dassets.dev/assets/10633/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-louvred-door-667ada6e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10633/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10633/v1/poster.webp","blurhash":"U05Nll_M014U=gb^F]i_0~s;}ZNFv%nPOTX5","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29584,"triangles":364,"vertices":1092,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644189404629,0,-0.0604681108543344],"max":[0.4865751081987695,2.0999999037384987,0.0604950837978214]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:33.972Z","updatedAt":"2026-09-06T14:35:34.590Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10633/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BathroomLouvredDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10633/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10633/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10633/v1/model.glb\" alt=\"Bathroom Louvred Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10633/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10633/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10634","slug":"suburban-outbreak-interiors-pantry-screen-door-ee76fadf","title":"Pantry Screen Door (Lootable Apartment Interiors)","summary":"Pantry Screen Door: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style bars. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-pantry-screen-door-ee76fadf","cdnUrl":"https://cdn.3dassets.dev/assets/10634/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-screen-door-ee76fadf","thumbnailUrl":"https://cdn.3dassets.dev/assets/10634/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10634/v1/poster.webp","blurhash":"U05gny~U0001;8f8F?bY0#o4}sRi+~s:OUNZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28372,"triangles":344,"vertices":1032,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644189404629,0,-0.060492524609615905],"max":[0.4865751081987695,2.0999999037384987,0.0604950837978214]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:33.836Z","updatedAt":"2026-09-06T14:35:34.604Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10634/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PantryScreenDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10634/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10634/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10634/v1/model.glb\" alt=\"Pantry Screen Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10634/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10634/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10635","slug":"suburban-outbreak-interiors-apartment-armoured-door-343499fa","title":"Apartment Armoured Door (Lootable Apartment Interiors)","summary":"Apartment Armoured Door: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style armour. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-armoured-door-343499fa","cdnUrl":"https://cdn.3dassets.dev/assets/10635/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-armoured-door-343499fa","thumbnailUrl":"https://cdn.3dassets.dev/assets/10635/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10635/v1/poster.webp","blurhash":"U16HGu~V0001$kW=J6jY0fWE^ks.,[s:OAR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23252,"triangles":268,"vertices":804,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644190834081,0,-0.060492523829955056],"max":[0.48668223529684257,2.099999856948852,0.060532454933382135]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:33.943Z","updatedAt":"2026-09-06T14:35:34.701Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10635/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ApartmentArmouredDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10635/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10635/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10635/v1/model.glb\" alt=\"Apartment Armoured Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10635/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10635/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10645","slug":"suburban-outbreak-interiors-wardrobe-door-leaf-0355ab96","title":"Wardrobe Door Leaf (Lootable Apartment Interiors)","summary":"Wardrobe Door Leaf: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style slats. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-door-leaf-0355ab96","cdnUrl":"https://cdn.3dassets.dev/assets/10645/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-door-leaf-0355ab96","thumbnailUrl":"https://cdn.3dassets.dev/assets/10645/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10645/v1/poster.webp","blurhash":"U05qCX_10101[cn+FsSx0hsD}sNZ#=ofOUWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29572,"triangles":364,"vertices":1092,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644189404629,0,-0.060492524609615905],"max":[0.4865751081987695,2.0999999037384987,0.0604950837978214]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:36.402Z","updatedAt":"2026-09-06T14:35:37.255Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10645/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WardrobeDoorLeafLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10645/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10645/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10645/v1/model.glb\" alt=\"Wardrobe Door Leaf (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10645/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10645/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10644","slug":"suburban-outbreak-interiors-kitchen-cabinet-door-leaf-e87daba9","title":"Kitchen Cabinet Door Leaf (Lootable Apartment Interiors)","summary":"Kitchen Cabinet Door Leaf: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style sheet. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-cabinet-door-leaf-e87daba9","cdnUrl":"https://cdn.3dassets.dev/assets/10644/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-cabinet-door-leaf-e87daba9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10644/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10644/v1/poster.webp","blurhash":"U36tm^?G009GxHbHNajZ4TWB_4t7weoLX8WV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27292,"triangles":352,"vertices":1056,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4866644190834081,0,-0.060492523829955056],"max":[0.4867019492807095,2.099999856948852,0.060528725371340915]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:36.301Z","updatedAt":"2026-09-06T14:35:37.181Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10644/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function KitchenCabinetDoorLeafLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10644/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10644/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10644/v1/model.glb\" alt=\"Kitchen Cabinet Door Leaf (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10644/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10644/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10647","slug":"suburban-outbreak-interiors-glazed-cupboard-frame-cdcdcaaf","title":"Glazed Cupboard Frame (Lootable Apartment Interiors)","summary":"Glazed Cupboard Frame: 0.6 × 1.2 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.6m wide, 1.2m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style window. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-glazed-cupboard-frame-cdcdcaaf","cdnUrl":"https://cdn.3dassets.dev/assets/10647/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-glazed-cupboard-frame-cdcdcaaf","thumbnailUrl":"https://cdn.3dassets.dev/assets/10647/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10647/v1/poster.webp","blurhash":"U05z%P.m00D4.NofMhWB0JR5}ttm};kB5Te=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18772,"triangles":184,"vertices":552,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3166583152172441,0,-0.060510839058324065],"max":[0.316689287221513,1.200000059604645,0.060500580393111944]},"sizeMeters":[0.633,1.2,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:36.479Z","updatedAt":"2026-09-06T14:35:37.353Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10647/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function GlazedCupboardFrameLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10647/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10647/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10647/v1/model.glb\" alt=\"Glazed Cupboard Frame (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10647/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10647/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10646","slug":"suburban-outbreak-interiors-service-cupboard-door-50186ba7","title":"Service Cupboard Door (Lootable Apartment Interiors)","summary":"Service Cupboard Door: 0.94 × 2.1 × 0.07 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.94m wide, 2.1m high, 0.07m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style vent. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-service-cupboard-door-50186ba7","cdnUrl":"https://cdn.3dassets.dev/assets/10646/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-service-cupboard-door-50186ba7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10646/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10646/v1/poster.webp","blurhash":"U36aSDxu00IU-=j[D$WU4nja^+bHD4f6.TkC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22812,"triangles":268,"vertices":804,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.48666441884509554,0,-0.06049252422723447],"max":[0.4865751031112664,2.09999988079071,0.0604989707641783]},"sizeMeters":[0.973,2.1,0.121],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:36.417Z","updatedAt":"2026-09-06T14:35:37.275Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10646/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ServiceCupboardDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10646/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10646/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10646/v1/model.glb\" alt=\"Service Cupboard Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10646/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10646/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10656","slug":"suburban-outbreak-interiors-kitchen-base-carcass-1b2f6fc7","title":"Kitchen Base Carcass (Lootable Apartment Interiors)","summary":"Kitchen Base Carcass: 0.8 × 0.85 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.85m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-base-carcass-1b2f6fc7","cdnUrl":"https://cdn.3dassets.dev/assets/10656/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-base-carcass-1b2f6fc7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10656/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10656/v1/poster.webp","blurhash":"U17,Ja~A04Ne}?S#Eg$$AVNa9^NIbrxZt7OA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14348,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3999931445548731,0,-0.3105045702172784],"max":[0.3999931445548731,0.8500000238418579,0.3105079926702506]},"sizeMeters":[0.8,0.85,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:38.947Z","updatedAt":"2026-09-06T14:35:39.822Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10656/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenBaseCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10656/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10656/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10656/v1/model.glb\" alt=\"Kitchen Base Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10656/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10656/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10657","slug":"suburban-outbreak-interiors-kitchen-drawer-carcass-e13b5629","title":"Kitchen Drawer Carcass (Lootable Apartment Interiors)","summary":"Kitchen Drawer Carcass: 0.8 × 0.85 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.85m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawers; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-drawer-carcass-e13b5629","cdnUrl":"https://cdn.3dassets.dev/assets/10657/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-drawer-carcass-e13b5629","thumbnailUrl":"https://cdn.3dassets.dev/assets/10657/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10657/v1/poster.webp","blurhash":"U28C?f}@0N9b^ObGEhs:5QEMI[og$$$jRnI;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22328,"triangles":264,"vertices":792,"meshes":5,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3999931445548731,0,-0.3375045802308587],"max":[0.3999931445548731,0.8500000238418579,0.3375168873844328]},"sizeMeters":[0.8,0.85,0.675],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:38.931Z","updatedAt":"2026-09-06T14:35:39.867Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10657/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function KitchenDrawerCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10657/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10657/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10657/v1/model.glb\" alt=\"Kitchen Drawer Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10657/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10657/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10658","slug":"suburban-outbreak-interiors-kitchen-wall-carcass-1206a693","title":"Kitchen Wall Carcass (Lootable Apartment Interiors)","summary":"Kitchen Wall Carcass: 0.8 × 0.75 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.75m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-wall-carcass-1206a693","cdnUrl":"https://cdn.3dassets.dev/assets/10658/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-wall-carcass-1206a693","thumbnailUrl":"https://cdn.3dassets.dev/assets/10658/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10658/v1/poster.webp","blurhash":"U08C,O~U005;~9}ZRU5S1FEz9$RRX*}?N{0g","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13612,"triangles":120,"vertices":360,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,7.573748128097968e-7,-0.18551754967802978],"max":[0.4000000059604645,0.7499992426251871,0.1855018897054324]},"sizeMeters":[0.8,0.75,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:39.113Z","updatedAt":"2026-09-06T14:35:39.918Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10658/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenWallCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10658/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10658/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10658/v1/model.glb\" alt=\"Kitchen Wall Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10658/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10658/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10661","slug":"suburban-outbreak-interiors-kitchen-corner-carcass-00e2cece","title":"Kitchen Corner Carcass (Lootable Apartment Interiors)","summary":"Kitchen Corner Carcass: 0.9 × 0.85 × 0.9 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 0.85m high, 0.9m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape corner; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-corner-carcass-00e2cece","cdnUrl":"https://cdn.3dassets.dev/assets/10661/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-corner-carcass-00e2cece","thumbnailUrl":"https://cdn.3dassets.dev/assets/10661/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10661/v1/poster.webp","blurhash":"U38V_z^P0~Rn^OWCI;xFEfNHIqV]bFspjcR-","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14364,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.000005317559432727048,-0.46050000190734863],"max":[0.44999998807907104,0.8500053414012907,0.4604970120869241]},"sizeMeters":[0.9,0.85,0.921],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:39.170Z","updatedAt":"2026-09-06T14:35:40.071Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10661/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenCornerCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10661/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10661/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10661/v1/model.glb\" alt=\"Kitchen Corner Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10661/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10661/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10667","slug":"suburban-outbreak-interiors-kitchen-larder-carcass-85143253","title":"Kitchen Larder Carcass (Lootable Apartment Interiors)","summary":"Kitchen Larder Carcass: 0.65 × 2 × 0.55 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.65m wide, 2m high, 0.55m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 5. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-larder-carcass-85143253","cdnUrl":"https://cdn.3dassets.dev/assets/10667/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-larder-carcass-85143253","thumbnailUrl":"https://cdn.3dassets.dev/assets/10667/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10667/v1/poster.webp","blurhash":"U0677c~90103}XOBAD$Q].OE1cr?=xbaEzr?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15708,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3249916074098941,0,-0.2855633099331179],"max":[0.3249916074098941,2,0.28553240222806775]},"sizeMeters":[0.65,2,0.571],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:41.826Z","updatedAt":"2026-09-06T14:35:42.473Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10667/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenLarderCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10667/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10667/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10667/v1/model.glb\" alt=\"Kitchen Larder Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10667/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10667/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10668","slug":"suburban-outbreak-interiors-kitchen-sink-base-c02b5379","title":"Kitchen Sink Base (Lootable Apartment Interiors)","summary":"Kitchen Sink Base: 1 × 0.85 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 0.85m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape counter; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-sink-base-c02b5379","cdnUrl":"https://cdn.3dassets.dev/assets/10668/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-sink-base-c02b5379","thumbnailUrl":"https://cdn.3dassets.dev/assets/10668/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10668/v1/poster.webp","blurhash":"U47vuxw{0~oL}r,@I;J8ACxFahNbbEoKf8R+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11956,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,0.000014478410607643433,-0.31247901852473525],"max":[0.5,0.8499854858266055,0.31247901852473525]},"sizeMeters":[1,0.85,0.625],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:41.919Z","updatedAt":"2026-09-06T14:35:42.511Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10668/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenSinkBaseLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10668/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10668/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10668/v1/model.glb\" alt=\"Kitchen Sink Base (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10668/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10668/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10669","slug":"suburban-outbreak-interiors-kitchen-open-island-07ebf15b","title":"Kitchen Open Island (Lootable Apartment Interiors)","summary":"Kitchen Open Island: 1.4 × 0.9 × 0.7 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.4m wide, 0.9m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape table; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-open-island-07ebf15b","cdnUrl":"https://cdn.3dassets.dev/assets/10669/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-open-island-07ebf15b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10669/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10669/v1/poster.webp","blurhash":"U57T5%a}Eg$%}r$%NbNbEzxZR-NbEzj[xGWV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10564,"triangles":72,"vertices":216,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.00003204869187872772,-0.35005340143020897],"max":[0.699999988079071,0.9000320248500209,0.35005340143020897]},"sizeMeters":[1.4,0.9,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:42.056Z","updatedAt":"2026-09-06T14:35:42.539Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10669/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenOpenIslandLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10669/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10669/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10669/v1/model.glb\" alt=\"Kitchen Open Island (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10669/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10669/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10673","slug":"suburban-outbreak-interiors-kitchen-appliance-tower-d191cf62","title":"Kitchen Appliance Tower (Lootable Apartment Interiors)","summary":"Kitchen Appliance Tower: 0.7 × 2 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 2m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-appliance-tower-d191cf62","cdnUrl":"https://cdn.3dassets.dev/assets/10673/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-appliance-tower-d191cf62","thumbnailUrl":"https://cdn.3dassets.dev/assets/10673/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10673/v1/poster.webp","blurhash":"U379|Y}r0h0hxtkCNHi{K4JTNI,DxZkCRlae","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14996,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3500167851802118,0,-0.3104664136655316],"max":[0.3500167851802118,2,0.3105324081885322]},"sizeMeters":[0.7,2,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:42.064Z","updatedAt":"2026-09-06T14:35:42.742Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10673/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenApplianceTowerLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10673/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10673/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10673/v1/model.glb\" alt=\"Kitchen Appliance Tower (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10673/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10673/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10679","slug":"suburban-outbreak-interiors-kitchen-bin-pullout-36ed56fd","title":"Kitchen Bin Pullout (Lootable Apartment Interiors)","summary":"Kitchen Bin Pullout: 0.35 × 0.65 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.35m wide, 0.65m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape bin; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-bin-pullout-36ed56fd","cdnUrl":"https://cdn.3dassets.dev/assets/10679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-bin-pullout-36ed56fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/10679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10679/v1/poster.webp","blurhash":"U27mKU~B0g57-UR.NK$iWBJRNw,@$zR+NexG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12904,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.17502211949959678,0,-0.2355114351147993],"max":[0.17502211949959678,0.6499999761581421,0.23549883461794913]},"sizeMeters":[0.35,0.65,0.471],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:44.806Z","updatedAt":"2026-09-06T14:35:45.109Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenBinPulloutLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10679/v1/model.glb\" alt=\"Kitchen Bin Pullout (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10679/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10681","slug":"suburban-outbreak-interiors-kitchen-cutlery-tray-58e493a0","title":"Kitchen Cutlery Tray (Lootable Apartment Interiors)","summary":"Kitchen Cutlery Tray: 0.5 × 0.08 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.5m wide, 0.08m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-cutlery-tray-58e493a0","cdnUrl":"https://cdn.3dassets.dev/assets/10681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-cutlery-tray-58e493a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10681/v1/poster.webp","blurhash":"U16%m4?a0$b^-jxFJ.a$00D%[:Mx9gJQrXRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13868,"triangles":120,"vertices":360,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.25,-0.000009766817101991565,-0.210510680405433],"max":[0.25,0.08000976502896265,0.2104921294865975]},"sizeMeters":[0.5,0.08,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:44.872Z","updatedAt":"2026-09-06T14:35:45.141Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenCutleryTrayLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10681/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10681/v1/model.glb\" alt=\"Kitchen Cutlery Tray (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10681/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10683","slug":"suburban-outbreak-interiors-kitchen-removable-drawer-631290ec","title":"Kitchen Removable Drawer (Lootable Apartment Interiors)","summary":"Kitchen Removable Drawer: 0.65 × 0.18 × 0.48 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.65m wide, 0.18m high, 0.48m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawer; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-removable-drawer-631290ec","cdnUrl":"https://cdn.3dassets.dev/assets/10683/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-removable-drawer-631290ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/10683/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10683/v1/poster.webp","blurhash":"U17A3q=|0N1a^4wMK3t301R6=xxZEkoxIo5S","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13316,"triangles":116,"vertices":348,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0.000009315022507769277,-0.26750823477038743],"max":[0.32499998807907104,0.1799906921300496,0.26750620377354073]},"sizeMeters":[0.65,0.18,0.535],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:45.208Z","updatedAt":"2026-09-06T14:35:45.327Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10683/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenRemovableDrawerLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10683/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10683/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10683/v1/model.glb\" alt=\"Kitchen Removable Drawer (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10683/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10683/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10685","slug":"suburban-outbreak-interiors-wall-spice-cubby-63e33584","title":"Wall Spice Cubby (Lootable Apartment Interiors)","summary":"Wall Spice Cubby: 0.65 × 0.65 × 0.15 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.65m wide, 0.65m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wall-spice-cubby-63e33584","cdnUrl":"https://cdn.3dassets.dev/assets/10685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wall-spice-cubby-63e33584","thumbnailUrl":"https://cdn.3dassets.dev/assets/10685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10685/v1/poster.webp","blurhash":"U17TLM^j03oy=_^6n,5l1HRlwOn%%1={n-58","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15048,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0,-0.08548397395924558],"max":[0.32499998807907104,0.6499999761581421,0.08550860707219174]},"sizeMeters":[0.65,0.65,0.171],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:44.844Z","updatedAt":"2026-09-06T14:35:45.446Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallSpiceCubbyLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10685/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10685/v1/model.glb\" alt=\"Wall Spice Cubby (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10685/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10692","slug":"suburban-outbreak-interiors-pantry-bottle-cabinet-ff9163a7","title":"Pantry Bottle Cabinet (Lootable Apartment Interiors)","summary":"Pantry Bottle Cabinet: 0.8 × 1.5 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 1.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape bottles; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-pantry-bottle-cabinet-ff9163a7","cdnUrl":"https://cdn.3dassets.dev/assets/10692/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-bottle-cabinet-ff9163a7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10692/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10692/v1/poster.webp","blurhash":"U16%QT^O030#}rs.9^RkOTJ8Ir$i-As:I=NH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17892,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.40005188146610926,0,-0.21048016189595703],"max":[0.40005188146610926,1.5,0.21051410309806437]},"sizeMeters":[0.8,1.5,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:47.066Z","updatedAt":"2026-09-06T14:35:47.715Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10692/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PantryBottleCabinetLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10692/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10692/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10692/v1/model.glb\" alt=\"Pantry Bottle Cabinet (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10692/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10692/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10691","slug":"suburban-outbreak-interiors-pantry-vegetable-bin-a6274a17","title":"Pantry Vegetable Bin (Lootable Apartment Interiors)","summary":"Pantry Vegetable Bin: 0.7 × 0.6 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 0.6m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape bin; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-pantry-vegetable-bin-a6274a17","cdnUrl":"https://cdn.3dassets.dev/assets/10691/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-vegetable-bin-a6274a17","thumbnailUrl":"https://cdn.3dassets.dev/assets/10691/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10691/v1/poster.webp","blurhash":"U28o|^}?0hJB=^n,WYox0|EfEh#nf~$jWEEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12908,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499999940395355,-0.00001066444823616397,-0.26051068359835705],"max":[0.3499999940395355,0.6000106882900941,0.26048480927790474]},"sizeMeters":[0.7,0.6,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:47.030Z","updatedAt":"2026-09-06T14:35:47.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10691/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PantryVegetableBinLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10691/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10691/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10691/v1/model.glb\" alt=\"Pantry Vegetable Bin (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10691/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10691/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10694","slug":"suburban-outbreak-interiors-kitchen-serving-hutch-49ac434c","title":"Kitchen Serving Hutch (Lootable Apartment Interiors)","summary":"Kitchen Serving Hutch: 1.2 × 1.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 1.8m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape dresser; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-serving-hutch-49ac434c","cdnUrl":"https://cdn.3dassets.dev/assets/10694/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-serving-hutch-49ac434c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10694/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10694/v1/poster.webp","blurhash":"U27c:7%K00Ip~B$*9aIoS~ofnQnjVY%1%gEL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16352,"triangles":156,"vertices":468,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000366063158291,0,-0.29996336984231303],"max":[0.6000366063158291,1.7999999523162842,0.29996336984231303]},"sizeMeters":[1.2,1.8,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:47.569Z","updatedAt":"2026-09-06T14:35:47.915Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10694/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenServingHutchLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10694/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10694/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10694/v1/model.glb\" alt=\"Kitchen Serving Hutch (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10694/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10694/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10695","slug":"suburban-outbreak-interiors-bathroom-vanity-carcass-856af996","title":"Bathroom Vanity Carcass (Lootable Apartment Interiors)","summary":"Bathroom Vanity Carcass: 0.8 × 0.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.8m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-vanity-carcass-856af996","cdnUrl":"https://cdn.3dassets.dev/assets/10695/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-vanity-carcass-856af996","thumbnailUrl":"https://cdn.3dassets.dev/assets/10695/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10695/v1/poster.webp","blurhash":"U27,Mh^i0hSz}rs:WCxDJ6R*M~RlXP$%kCNa","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14364,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0,-0.2604832249225254],"max":[0.4000000059604645,0.800000011920929,0.26050190013624525]},"sizeMeters":[0.8,0.8,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:47.213Z","updatedAt":"2026-09-06T14:35:47.987Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10695/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomVanityCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10695/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10695/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10695/v1/model.glb\" alt=\"Bathroom Vanity Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10695/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10695/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10703","slug":"suburban-outbreak-interiors-bathroom-medicine-carcass-b7c29509","title":"Bathroom Medicine Carcass (Lootable Apartment Interiors)","summary":"Bathroom Medicine Carcass: 0.6 × 0.7 × 0.2 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 0.7m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-medicine-carcass-b7c29509","cdnUrl":"https://cdn.3dassets.dev/assets/10703/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-medicine-carcass-b7c29509","thumbnailUrl":"https://cdn.3dassets.dev/assets/10703/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10703/v1/poster.webp","blurhash":"U17mKT~A025S^#=_aM9v1@EgIurvO;t7NL58","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15096,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3000106763691651,0,-0.11048931574599184],"max":[0.3000106763691651,0.699999988079071,0.11048968680000365]},"sizeMeters":[0.6,0.7,0.221],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:49.424Z","updatedAt":"2026-09-06T14:35:50.317Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10703/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomMedicineCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10703/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10703/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10703/v1/model.glb\" alt=\"Bathroom Medicine Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10703/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10703/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10709","slug":"suburban-outbreak-interiors-bathroom-towel-cubby-7943ec84","title":"Bathroom Towel Cubby (Lootable Apartment Interiors)","summary":"Bathroom Towel Cubby: 0.5 × 1.5 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.5m wide, 1.5m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-towel-cubby-7943ec84","cdnUrl":"https://cdn.3dassets.dev/assets/10709/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-towel-cubby-7943ec84","thumbnailUrl":"https://cdn.3dassets.dev/assets/10709/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10709/v1/poster.webp","blurhash":"U167Ak^6030|^4oJ9^jIXRKNI=#T=xofEgaL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15008,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.249969481490524,0,-0.1854626137530083],"max":[0.249969481490524,1.5,0.1855140971375999]},"sizeMeters":[0.5,1.5,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:50.096Z","updatedAt":"2026-09-06T14:35:51.024Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10709/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomTowelCubbyLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10709/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10709/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10709/v1/model.glb\" alt=\"Bathroom Towel Cubby (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10709/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10709/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10705","slug":"suburban-outbreak-interiors-bathroom-laundry-hamper-0dfc2c4a","title":"Bathroom Laundry Hamper (Lootable Apartment Interiors)","summary":"Bathroom Laundry Hamper: 0.5 × 0.7 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.5m wide, 0.7m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape basket; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-laundry-hamper-0dfc2c4a","cdnUrl":"https://cdn.3dassets.dev/assets/10705/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-laundry-hamper-0dfc2c4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10705/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10705/v1/poster.webp","blurhash":"U3972:~n01E1#SR-b^xG009Itlxb%dk9E3Wo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25152,"triangles":348,"vertices":1044,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2745000123977661,-6.208817349140361e-10,-0.24950205600887077],"max":[0.2745000123977661,0.699999988079071,0.24950205600887077]},"sizeMeters":[0.549,0.7,0.499],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:49.861Z","updatedAt":"2026-09-06T14:35:50.593Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10705/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomLaundryHamperLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10705/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10705/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10705/v1/model.glb\" alt=\"Bathroom Laundry Hamper (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10705/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10705/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10710","slug":"suburban-outbreak-interiors-bathroom-mirror-frame-f398e4ae","title":"Bathroom Mirror Frame (Lootable Apartment Interiors)","summary":"Bathroom Mirror Frame: 0.7 × 0.8 × 0.08 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 0.8m high, 0.08m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape mirror; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-mirror-frame-f398e4ae","cdnUrl":"https://cdn.3dassets.dev/assets/10710/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-mirror-frame-f398e4ae","thumbnailUrl":"https://cdn.3dassets.dev/assets/10710/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10710/v1/poster.webp","blurhash":"U49t}r%~00mk_4.9D%8wQ8M{P:o~tl-;M{9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2608,"triangles":24,"vertices":72,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499984792899099,0,-0.0437914564086634],"max":[0.3499984792899099,0.800000011920929,0.043805065394361034]},"sizeMeters":[0.7,0.8,0.088],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:50.353Z","updatedAt":"2026-09-06T14:35:51.161Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10710/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomMirrorFrameLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10710/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10710/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10710/v1/model.glb\" alt=\"Bathroom Mirror Frame (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10710/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10710/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10715","slug":"suburban-outbreak-interiors-hall-shoe-cubby-c6003da7","title":"Hall Shoe Cubby (Lootable Apartment Interiors)","summary":"Hall Shoe Cubby: 1 × 0.6 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 0.6m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-hall-shoe-cubby-c6003da7","cdnUrl":"https://cdn.3dassets.dev/assets/10715/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-shoe-cubby-c6003da7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10715/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10715/v1/poster.webp","blurhash":"U28V};^P0$X,^O^5ofI;0|sSahJ6oc-TkCEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14992,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,-0.00002745473759946382,-0.1855083915172223],"max":[0.5,0.6000274785794574,0.18549944800871732]},"sizeMeters":[1,0.6,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:52.446Z","updatedAt":"2026-09-06T14:35:52.902Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10715/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HallShoeCubbyLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10715/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10715/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10715/v1/model.glb\" alt=\"Hall Shoe Cubby (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10715/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10715/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10719","slug":"suburban-outbreak-interiors-hall-key-cupboard-206ad0be","title":"Hall Key Cupboard (Lootable Apartment Interiors)","summary":"Hall Key Cupboard: 0.4 × 0.5 × 0.15 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.4m wide, 0.5m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-hall-key-cupboard-206ad0be","cdnUrl":"https://cdn.3dassets.dev/assets/10719/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-key-cupboard-206ad0be","thumbnailUrl":"https://cdn.3dassets.dev/assets/10719/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10719/v1/poster.webp","blurhash":"U26t2X^j025Q$%s:WYR+5QI:xbt7ozofWBNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16612,"triangles":152,"vertices":456,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.2000106814783166,0,-0.11499160651582443],"max":[0.2000106814783166,0.5,0.11500718761173515]},"sizeMeters":[0.4,0.5,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:52.854Z","updatedAt":"2026-09-06T14:35:53.629Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10719/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HallKeyCupboardLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10719/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10719/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10719/v1/model.glb\" alt=\"Hall Key Cupboard (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10719/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10719/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10721","slug":"suburban-outbreak-interiors-hall-coat-locker-a49573b5","title":"Hall Coat Locker (Lootable Apartment Interiors)","summary":"Hall Coat Locker: 0.7 × 1.9 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 1.9m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape lockers; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-hall-coat-locker-a49573b5","cdnUrl":"https://cdn.3dassets.dev/assets/10721/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-coat-locker-a49573b5","thumbnailUrl":"https://cdn.3dassets.dev/assets/10721/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10721/v1/poster.webp","blurhash":"U16GxPpG03Dl^4t5ADRlgIs.ItVx^5kUEgV[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20236,"triangles":220,"vertices":660,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3500274622662626,0,-0.29006104788819104],"max":[0.3500274622662626,1.899999976158142,0.2900071948451559]},"sizeMeters":[0.7,1.9,0.58],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:53.067Z","updatedAt":"2026-09-06T14:35:54.032Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10721/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HallCoatLockerLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10721/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10721/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10721/v1/model.glb\" alt=\"Hall Coat Locker (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10721/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10721/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10722","slug":"suburban-outbreak-interiors-hall-umbrella-bin-806b7b84","title":"Hall Umbrella Bin (Lootable Apartment Interiors)","summary":"Hall Umbrella Bin: 0.3 × 0.65 × 0.3 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.3m wide, 0.65m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape bin; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-hall-umbrella-bin-806b7b84","cdnUrl":"https://cdn.3dassets.dev/assets/10722/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-umbrella-bin-806b7b84","thumbnailUrl":"https://cdn.3dassets.dev/assets/10722/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10722/v1/poster.webp","blurhash":"U270oJ}@030fxZWWS2xYFsJ8V_#;s:bHW;oc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12892,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.14997786857947426,0,-0.16047786750659065],"max":[0.14997786857947426,0.6499999761581421,0.16049884653887808]},"sizeMeters":[0.3,0.65,0.321],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:53.276Z","updatedAt":"2026-09-06T14:35:54.119Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10722/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HallUmbrellaBinLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10722/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10722/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10722/v1/model.glb\" alt=\"Hall Umbrella Bin (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10722/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10722/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10727","slug":"suburban-outbreak-interiors-wardrobe-hanging-carcass-590c6fd2","title":"Wardrobe Hanging Carcass (Lootable Apartment Interiors)","summary":"Wardrobe Hanging Carcass: 1.2 × 2 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 2m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape wardrobe; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-hanging-carcass-590c6fd2","cdnUrl":"https://cdn.3dassets.dev/assets/10727/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-hanging-carcass-590c6fd2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10727/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10727/v1/poster.webp","blurhash":"U16%QV}Y021I-nwzVuW-$%soJ8Fa=w$%NKEf","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15100,"triangles":152,"vertices":456,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000549333170568,0,-0.3104664136655316],"max":[0.6000549333170568,2,0.31047639640076397]},"sizeMeters":[1.2,2,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:54.918Z","updatedAt":"2026-09-06T14:35:55.569Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10727/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeHangingCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10727/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10727/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10727/v1/model.glb\" alt=\"Wardrobe Hanging Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10727/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10727/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10730","slug":"suburban-outbreak-interiors-wardrobe-shelf-carcass-bd8152c6","title":"Wardrobe Shelf Carcass (Lootable Apartment Interiors)","summary":"Wardrobe Shelf Carcass: 0.6 × 2 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 2m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 5. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-shelf-carcass-bd8152c6","cdnUrl":"https://cdn.3dassets.dev/assets/10730/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shelf-carcass-bd8152c6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10730/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10730/v1/poster.webp","blurhash":"U05zm$~90103~8R+59xZcVN_IE#m?EjbD-oc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15704,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2999664296395764,0,-0.3104664136655316],"max":[0.2999664296395764,2,0.3105324081885322]},"sizeMeters":[0.6,2,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:55.255Z","updatedAt":"2026-09-06T14:35:56.175Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10730/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeShelfCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10730/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10730/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10730/v1/model.glb\" alt=\"Wardrobe Shelf Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10730/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10730/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10733","slug":"suburban-outbreak-interiors-wardrobe-overhead-carcass-2d1164d1","title":"Wardrobe Overhead Carcass (Lootable Apartment Interiors)","summary":"Wardrobe Overhead Carcass: 1.2 × 0.5 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 0.5m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-overhead-carcass-2d1164d1","cdnUrl":"https://cdn.3dassets.dev/assets/10733/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-overhead-carcass-2d1164d1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10733/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10733/v1/poster.webp","blurhash":"U27,Mg^O0#$k}r-ASzWB0fNtw|NG9]X4aLI=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14360,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.0000015358596419101644,-0.3105457737129172],"max":[0.6000000238418579,0.5000015358596419,0.3104860197245542]},"sizeMeters":[1.2,0.5,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:56.242Z","updatedAt":"2026-09-06T14:35:56.630Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10733/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeOverheadCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10733/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10733/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10733/v1/model.glb\" alt=\"Wardrobe Overhead Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10733/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10733/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10735","slug":"suburban-outbreak-interiors-wardrobe-shoe-drawer-475ea5ff","title":"Wardrobe Shoe Drawer (Lootable Apartment Interiors)","summary":"Wardrobe Shoe Drawer: 0.9 × 0.2 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 0.2m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawer; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-shoe-drawer-475ea5ff","cdnUrl":"https://cdn.3dassets.dev/assets/10735/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shoe-drawer-475ea5ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/10735/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10735/v1/poster.webp","blurhash":"U27JqY^j5T-B-T,@s:ah019tw^EfADAVIoI;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14444,"triangles":140,"vertices":420,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000021367095278709836,-0.2775289895367745],"max":[0.44999998807907104,0.19997863588495352,0.2775190124205719]},"sizeMeters":[0.9,0.2,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:56.157Z","updatedAt":"2026-09-06T14:35:56.720Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10735/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeShoeDrawerLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10735/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10735/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10735/v1/model.glb\" alt=\"Wardrobe Shoe Drawer (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10735/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10735/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10739","slug":"suburban-outbreak-interiors-wardrobe-open-luggage-bay-293fec20","title":"Wardrobe Open Luggage Bay (Lootable Apartment Interiors)","summary":"Wardrobe Open Luggage Bay: 1.2 × 0.65 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 0.65m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-open-luggage-bay-293fec20","cdnUrl":"https://cdn.3dassets.dev/assets/10739/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-open-luggage-bay-293fec20","thumbnailUrl":"https://cdn.3dassets.dev/assets/10739/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10739/v1/poster.webp","blurhash":"U18fWB?F0hxu}?}FJ,WB0yJQEO9]I:}Ws-0~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13656,"triangles":120,"vertices":360,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.00002215075551798007,-0.3105457737129172],"max":[0.6000000238418579,0.6500221269136601,0.3104860197245542]},"sizeMeters":[1.2,0.65,0.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:57.362Z","updatedAt":"2026-09-06T14:35:58.247Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10739/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeOpenLuggageBayLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10739/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10739/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10739/v1/model.glb\" alt=\"Wardrobe Open Luggage Bay (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10739/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10739/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10743","slug":"suburban-outbreak-interiors-bedside-open-carcass-bd4fb189","title":"Bedside Open Carcass (Lootable Apartment Interiors)","summary":"Bedside Open Carcass: 0.45 × 0.55 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.45m wide, 0.55m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bedside-open-carcass-bd4fb189","cdnUrl":"https://cdn.3dassets.dev/assets/10743/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bedside-open-carcass-bd4fb189","thumbnailUrl":"https://cdn.3dassets.dev/assets/10743/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10743/v1/poster.webp","blurhash":"U17v#|^*0357}=NK5mxsAAI:EOkCt3oMS#S_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14348,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.22501373820630552,0,-0.21049542548547903],"max":[0.22501373820630552,0.550000011920929,0.21050799997589878]},"sizeMeters":[0.45,0.55,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:58.532Z","updatedAt":"2026-09-06T14:35:59.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10743/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BedsideOpenCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10743/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10743/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10743/v1/model.glb\" alt=\"Bedside Open Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10743/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10743/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10747","slug":"suburban-outbreak-interiors-bedside-drawer-carcass-e8db53a3","title":"Bedside Drawer Carcass (Lootable Apartment Interiors)","summary":"Bedside Drawer Carcass: 0.5 × 0.55 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.5m wide, 0.55m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawers; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bedside-drawer-carcass-e8db53a3","cdnUrl":"https://cdn.3dassets.dev/assets/10747/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bedside-drawer-carcass-e8db53a3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10747/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10747/v1/poster.webp","blurhash":"U28Mjd.70357^OR,Ndt65iIoIv-C%0xZNKI;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19488,"triangles":208,"vertices":624,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.2499900869028094,0,-0.23749543549905935],"max":[0.2499900869028094,0.550000011920929,0.2375077268292165]},"sizeMeters":[0.5,0.55,0.475],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:59.847Z","updatedAt":"2026-09-06T14:36:00.433Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10747/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BedsideDrawerCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10747/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10747/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10747/v1/model.glb\" alt=\"Bedside Drawer Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10747/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10747/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10746","slug":"suburban-outbreak-interiors-underbed-storage-box-ae05ffd4","title":"Underbed Storage Box (Lootable Apartment Interiors)","summary":"Underbed Storage Box: 0.8 × 0.25 × 0.7 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.25m high, 0.7m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape chest; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-underbed-storage-box-ae05ffd4","cdnUrl":"https://cdn.3dassets.dev/assets/10746/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-underbed-storage-box-ae05ffd4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10746/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10746/v1/poster.webp","blurhash":"U27]*8S%0$}X-Q0$Na^O0gEM-9NaSi}s$%Nt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15080,"triangles":120,"vertices":360,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4000000059604645,-0.000016024080358806314,-0.3761254848517784],"max":[0.4000000059604645,0.9499984733294454,0.37612690162636137]},"sizeMeters":[0.8,0.95,0.752],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:35:59.091Z","updatedAt":"2026-09-06T14:35:59.410Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10746/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function UnderbedStorageBoxLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10746/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10746/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10746/v1/model.glb\" alt=\"Underbed Storage Box (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10746/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10746/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10750","slug":"suburban-outbreak-interiors-desk-pedestal-carcass-2f8e8dad","title":"Desk Pedestal Carcass (Lootable Apartment Interiors)","summary":"Desk Pedestal Carcass: 0.45 × 0.7 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.45m wide, 0.7m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawers; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-desk-pedestal-carcass-2f8e8dad","cdnUrl":"https://cdn.3dassets.dev/assets/10750/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-pedestal-carcass-2f8e8dad","thumbnailUrl":"https://cdn.3dassets.dev/assets/10750/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10750/v1/poster.webp","blurhash":"U17mNc^+030e~7EM9d=_9@E29#?F%IS5N2xr","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22312,"triangles":264,"vertices":792,"meshes":5,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.2250160183854749,0,-0.33751067040870064],"max":[0.2250160183854749,0.699999988079071,0.3374802674135792]},"sizeMeters":[0.45,0.7,0.675],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:00.391Z","updatedAt":"2026-09-06T14:36:00.828Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10750/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DeskPedestalCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10750/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10750/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10750/v1/model.glb\" alt=\"Desk Pedestal Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10750/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10750/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10757","slug":"suburban-outbreak-interiors-desk-open-frame-bf467cf6","title":"Desk Open Frame (Lootable Apartment Interiors)","summary":"Desk Open Frame: 1.2 × 0.75 × 0.6 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.2m wide, 0.75m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape table; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-desk-open-frame-bf467cf6","cdnUrl":"https://cdn.3dassets.dev/assets/10757/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-open-frame-bf467cf6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10757/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10757/v1/poster.webp","blurhash":"U47,GOoxAW=w}r,@M}EOEfxGNII;FYxW$%bY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10536,"triangles":72,"vertices":216,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,0.000025162870156969497,-0.300045789686962],"max":[0.6000000238418579,0.749974837129843,0.300045789686962]},"sizeMeters":[1.2,0.75,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:01.584Z","updatedAt":"2026-09-06T14:36:02.392Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10757/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DeskOpenFrameLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10757/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10757/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10757/v1/model.glb\" alt=\"Desk Open Frame (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10757/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10757/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10759","slug":"suburban-outbreak-interiors-bookcase-broken-back-0211c65c","title":"Bookcase Broken Back (Lootable Apartment Interiors)","summary":"Bookcase Broken Back: 0.9 × 1.8 × 0.3 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.9m wide, 1.8m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 5. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bookcase-broken-back-0211c65c","cdnUrl":"https://cdn.3dassets.dev/assets/10759/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bookcase-broken-back-0211c65c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10759/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10759/v1/poster.webp","blurhash":"U06jOH.70001?H$+MyA93BxI#TNEyDxcVZEJ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15784,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.450068654723573,0,-0.16046795051937252],"max":[0.450068654723573,1.7999999523162842,0.1605080019465611]},"sizeMeters":[0.9,1.8,0.321],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:02.071Z","updatedAt":"2026-09-06T14:36:02.638Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10759/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BookcaseBrokenBackLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10759/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10759/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10759/v1/model.glb\" alt=\"Bookcase Broken Back (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10759/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10759/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10760","slug":"suburban-outbreak-interiors-display-cabinet-carcass-632888ae","title":"Display Cabinet Carcass (Lootable Apartment Interiors)","summary":"Display Cabinet Carcass: 0.8 × 1.5 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 1.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-display-cabinet-carcass-632888ae","cdnUrl":"https://cdn.3dassets.dev/assets/10760/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-display-cabinet-carcass-632888ae","thumbnailUrl":"https://cdn.3dassets.dev/assets/10760/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10760/v1/poster.webp","blurhash":"U26G*h^i0N0#-VxaWCNGbuogjJRkxtxajGNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18080,"triangles":176,"vertices":528,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.40005188146610926,0,-0.23998016952535156],"max":[0.40005188146610926,1.5,0.239994983691177]},"sizeMeters":[0.8,1.5,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:02.316Z","updatedAt":"2026-09-06T14:36:02.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10760/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DisplayCabinetCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10760/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10760/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10760/v1/model.glb\" alt=\"Display Cabinet Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10760/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10760/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10761","slug":"suburban-outbreak-interiors-sideboard-open-carcass-ac6b440d","title":"Sideboard Open Carcass (Lootable Apartment Interiors)","summary":"Sideboard Open Carcass: 1.4 × 0.8 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.4m wide, 0.8m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-sideboard-open-carcass-ac6b440d","cdnUrl":"https://cdn.3dassets.dev/assets/10761/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-sideboard-open-carcass-ac6b440d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10761/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10761/v1/poster.webp","blurhash":"U28ffa^N0#%2?C^P$jI.0}X4R+JBJ$-Ujv9]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15072,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.00004271314011489169,-0.23551602476317188],"max":[0.699999988079071,0.8000427250610438,0.23548602471878746]},"sizeMeters":[1.4,0.8,0.471],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:03.209Z","updatedAt":"2026-09-06T14:36:03.536Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10761/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SideboardOpenCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10761/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10761/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10761/v1/model.glb\" alt=\"Sideboard Open Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10761/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10761/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10766","slug":"suburban-outbreak-interiors-sideboard-removable-drawer-c88e5d33","title":"Sideboard Removable Drawer (Lootable Apartment Interiors)","summary":"Sideboard Removable Drawer: 0.6 × 0.15 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 0.15m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawer; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-sideboard-removable-drawer-c88e5d33","cdnUrl":"https://cdn.3dassets.dev/assets/10766/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-sideboard-removable-drawer-c88e5d33","thumbnailUrl":"https://cdn.3dassets.dev/assets/10766/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10766/v1/poster.webp","blurhash":"U17AMJ_N1Q-;^O-UTJs:008^+GD%0#5jH@9t","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13332,"triangles":116,"vertices":348,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,-0.00001144444150825985,-0.2024992475673867],"max":[0.30000001192092896,0.15001145040197272,0.2024823894285576]},"sizeMeters":[0.6,0.15,0.405],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:04.426Z","updatedAt":"2026-09-06T14:36:05.350Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10766/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SideboardRemovableDrawerLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10766/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10766/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10766/v1/model.glb\" alt=\"Sideboard Removable Drawer (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10766/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10766/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10767","slug":"suburban-outbreak-interiors-media-console-carcass-30e01634","title":"Media Console Carcass (Lootable Apartment Interiors)","summary":"Media Console Carcass: 1.4 × 0.5 × 0.4 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.4m wide, 0.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-media-console-carcass-30e01634","cdnUrl":"https://cdn.3dassets.dev/assets/10767/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-media-console-carcass-30e01634","thumbnailUrl":"https://cdn.3dassets.dev/assets/10767/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10767/v1/poster.webp","blurhash":"U27vx-^50~-B=_^Os:NH0MSx,@RjEMNsV[I@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14328,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,0.000032048691878699964,-0.2104786325648673],"max":[0.699999988079071,0.49996795130812133,0.21048602620890358]},"sizeMeters":[1.4,0.5,0.421],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:04.789Z","updatedAt":"2026-09-06T14:36:05.419Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10767/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MediaConsoleCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10767/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10767/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10767/v1/model.glb\" alt=\"Media Console Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10767/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10767/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10771","slug":"suburban-outbreak-interiors-room-divider-cubby-c300febe","title":"Room Divider Cubby (Lootable Apartment Interiors)","summary":"Room Divider Cubby: 1.4 × 1.6 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1.4m wide, 1.6m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-room-divider-cubby-c300febe","cdnUrl":"https://cdn.3dassets.dev/assets/10771/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-divider-cubby-c300febe","thumbnailUrl":"https://cdn.3dassets.dev/assets/10771/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10771/v1/poster.webp","blurhash":"U06?[B^h0059^#=xE41H1ZS|#sv*-,^ON10}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15764,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6999969585798198,0,-0.1855053422740575],"max":[0.6999969585798198,1.600000023841858,0.1855079935051922]},"sizeMeters":[1.4,1.6,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:04.873Z","updatedAt":"2026-09-06T14:36:05.835Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10771/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoomDividerCubbyLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10771/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10771/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10771/v1/model.glb\" alt=\"Room Divider Cubby (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10771/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10771/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10773","slug":"suburban-outbreak-interiors-utility-meter-carcass-6e8b960c","title":"Utility Meter Carcass (Lootable Apartment Interiors)","summary":"Utility Meter Carcass: 0.6 × 0.8 × 0.2 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 0.8m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-utility-meter-carcass-6e8b960c","cdnUrl":"https://cdn.3dassets.dev/assets/10773/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-meter-carcass-6e8b960c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10773/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10773/v1/poster.webp","blurhash":"U36?_M}Y0gEMw^sooeW.ACJQofWXj]ofbHNa","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16688,"triangles":152,"vertices":456,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.299984745215383,0,-0.14001526171365697],"max":[0.299984745215383,0.800000011920929,0.13999497940166444]},"sizeMeters":[0.6,0.8,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:05.112Z","updatedAt":"2026-09-06T14:36:06.105Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10773/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function UtilityMeterCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10773/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10773/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10773/v1/model.glb\" alt=\"Utility Meter Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10773/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10773/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10778","slug":"suburban-outbreak-interiors-utility-cleaning-cupboard-bac670b0","title":"Utility Cleaning Cupboard (Lootable Apartment Interiors)","summary":"Utility Cleaning Cupboard: 0.6 × 1.8 × 0.45 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.6m wide, 1.8m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape wardrobe; shelves 1. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-utility-cleaning-cupboard-bac670b0","cdnUrl":"https://cdn.3dassets.dev/assets/10778/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-cleaning-cupboard-bac670b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10778/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10778/v1/poster.webp","blurhash":"U05zz9~l0103~Sxr4?Iq_I%04s9c~R$%0j9]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15188,"triangles":152,"vertices":456,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.29996336984231303,0,-0.2355343337394835],"max":[0.29996336984231303,1.7999999523162842,0.23552408076770573]},"sizeMeters":[0.6,1.8,0.471],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:07.066Z","updatedAt":"2026-09-06T14:36:07.929Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10778/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityCleaningCupboardLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10778/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10778/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10778/v1/model.glb\" alt=\"Utility Cleaning Cupboard (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10778/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10778/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10779","slug":"suburban-outbreak-interiors-utility-parts-drawers-e10c79d9","title":"Utility Parts Drawers (Lootable Apartment Interiors)","summary":"Utility Parts Drawers: 0.7 × 0.8 × 0.3 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.7m wide, 0.8m high, 0.3m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape drawers; shelves 5. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-utility-parts-drawers-e10c79d9","cdnUrl":"https://cdn.3dassets.dev/assets/10779/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-parts-drawers-e10c79d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10779/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10779/v1/poster.webp","blurhash":"U28fio~B020f=_-AnmI=0y5kOF%2J~SeNIIq","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27988,"triangles":376,"vertices":1128,"meshes":7,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3499984792899099,0,-0.18751678145517162],"max":[0.3499984792899099,0.800000011920929,0.18747934304791916]},"sizeMeters":[0.7,0.8,0.375],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:07.215Z","updatedAt":"2026-09-06T14:36:08.038Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10779/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function UtilityPartsDrawersLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10779/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10779/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10779/v1/model.glb\" alt=\"Utility Parts Drawers (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10779/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10779/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10783","slug":"suburban-outbreak-interiors-apartment-mail-cubbies-19a9c6e6","title":"Apartment Mail Cubbies (Lootable Apartment Interiors)","summary":"Apartment Mail Cubbies: 1 × 0.8 × 0.25 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 0.8m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape lockers; shelves 3. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-mail-cubbies-19a9c6e6","cdnUrl":"https://cdn.3dassets.dev/assets/10783/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-mail-cubbies-19a9c6e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10783/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10783/v1/poster.webp","blurhash":"U58V+V}ED,,s=w-AwfaeAVJ*NxJ8Sgt5W:Eh","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21664,"triangles":244,"vertices":732,"meshes":4,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.5,-0.00002135699616873099,-0.16501907689964312],"max":[0.5,0.8000213689170976,0.16499010071628634]},"sizeMeters":[1,0.8,0.33],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:07.667Z","updatedAt":"2026-09-06T14:36:08.387Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10783/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ApartmentMailCubbiesLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10783/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10783/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10783/v1/model.glb\" alt=\"Apartment Mail Cubbies (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10783/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10783/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10785","slug":"suburban-outbreak-interiors-linen-cupboard-carcass-48586876","title":"Linen Cupboard Carcass (Lootable Apartment Interiors)","summary":"Linen Cupboard Carcass: 0.8 × 1.8 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 1.8m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-linen-cupboard-carcass-48586876","cdnUrl":"https://cdn.3dassets.dev/assets/10785/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-linen-cupboard-carcass-48586876","thumbnailUrl":"https://cdn.3dassets.dev/assets/10785/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10785/v1/poster.webp","blurhash":"U06Zzf^$000Mx@#pn5Bi=JV{1fs+k:$jw062","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15076,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.39994200423715043,0,-0.26047405902259124],"max":[0.39994200423715043,1.7999999523162842,0.26050800343667724]},"sizeMeters":[0.8,1.8,0.521],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:07.798Z","updatedAt":"2026-09-06T14:36:08.604Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10785/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LinenCupboardCarcassLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10785/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10785/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10785/v1/model.glb\" alt=\"Linen Cupboard Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10785/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10785/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10791","slug":"suburban-outbreak-interiors-balcony-storage-carcass-19705949","title":"Balcony Storage Carcass (Lootable Apartment Interiors)","summary":"Balcony Storage Carcass: 1 × 0.9 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 1m wide, 0.9m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-balcony-storage-carcass-19705949","cdnUrl":"https://cdn.3dassets.dev/assets/10791/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-storage-carcass-19705949","thumbnailUrl":"https://cdn.3dassets.dev/assets/10791/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10791/v1/poster.webp","blurhash":"U37,DL}s0$nSxZ$jr]OC1INaNwNIN[xGw{Eg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17364,"triangles":164,"vertices":492,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.5,-0.000010693399245531587,-0.2900381621439365],"max":[0.5,0.9000106695573876,0.28999010444157663]},"sizeMeters":[1,0.9,0.58],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:09.882Z","updatedAt":"2026-09-06T14:36:10.640Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10791/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BalconyStorageCarcassLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10791/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10791/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10791/v1/model.glb\" alt=\"Balcony Storage Carcass (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10791/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10791/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10790","slug":"suburban-outbreak-interiors-kitchen-deep-sink-632ee8cb","title":"Kitchen Deep Sink (Lootable Apartment Interiors)","summary":"Kitchen Deep Sink: 0.8 × 0.3 × 0.5 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.8m wide, 0.3m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape sink. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-deep-sink-632ee8cb","cdnUrl":"https://cdn.3dassets.dev/assets/10790/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-deep-sink-632ee8cb","thumbnailUrl":"https://cdn.3dassets.dev/assets/10790/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10790/v1/poster.webp","blurhash":"U4Dvfs~p00tS%M~pbF9Z004ooJMxD%00M|RP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22084,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.00002070545247961908,-0.24998321854482838],"max":[0.4000000059604645,0.5070748555570024,0.24998321854482838]},"sizeMeters":[0.8,0.507,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:09.695Z","updatedAt":"2026-09-06T14:36:10.612Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10790/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenDeepSinkLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10790/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10790/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10790/v1/model.glb\" alt=\"Kitchen Deep Sink (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10790/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10790/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10794","slug":"suburban-outbreak-interiors-bathroom-basin-ca09c7df","title":"Bathroom Basin (Lootable Apartment Interiors)","summary":"Bathroom Basin: 0.6 × 0.2 × 0.45 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.6m wide, 0.2m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape basin. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-basin-ca09c7df","cdnUrl":"https://cdn.3dassets.dev/assets/10794/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-basin-ca09c7df","thumbnailUrl":"https://cdn.3dassets.dev/assets/10794/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10794/v1/poster.webp","blurhash":"UBE3F,-:4noh00oexuWC00D*IUWA~pf+?baw","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18256,"triangles":328,"vertices":984,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.30000001192092896,-0.000006563963324934807,-0.22498856449918844],"max":[0.30000001192092896,0.31704390048980713,0.22498856449918844]},"sizeMeters":[0.6,0.317,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:10.062Z","updatedAt":"2026-09-06T14:36:11.025Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10794/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomBasinLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10794/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10794/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10794/v1/model.glb\" alt=\"Bathroom Basin (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10794/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10794/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10797","slug":"suburban-outbreak-interiors-bathroom-bathtub-04f191c0","title":"Bathroom Bathtub (Lootable Apartment Interiors)","summary":"Bathroom Bathtub: 0.75 × 0.6 × 1.6 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.75m wide, 0.6m high, 1.6m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape tub. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-bathtub-04f191c0","cdnUrl":"https://cdn.3dassets.dev/assets/10797/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-bathtub-04f191c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10797/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10797/v1/poster.webp","blurhash":"UIDcUExuIVt7~pIUM{%L00D%RPt74oxtRkRk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9772,"triangles":152,"vertices":456,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3750358648371041,-0.000004574051199301987,-0.800000011920929],"max":[0.3750358648371041,0.6000045978930573,0.800000011920929]},"sizeMeters":[0.75,0.6,1.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:10.463Z","updatedAt":"2026-09-06T14:36:11.165Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10797/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomBathtubLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10797/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10797/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10797/v1/model.glb\" alt=\"Bathroom Bathtub (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10797/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10797/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10803","slug":"suburban-outbreak-interiors-bathroom-shower-tray-7c5b5318","title":"Bathroom Shower Tray (Lootable Apartment Interiors)","summary":"Bathroom Shower Tray: 0.9 × 0.12 × 0.9 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.9m wide, 0.12m high, 0.9m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape shower. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-shower-tray-7c5b5318","cdnUrl":"https://cdn.3dassets.dev/assets/10803/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-shower-tray-7c5b5318","thumbnailUrl":"https://cdn.3dassets.dev/assets/10803/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10803/v1/poster.webp","blurhash":"U3Csjd~p00%1?bRjs.xu009F4oD*IA%N4.D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10024,"triangles":156,"vertices":468,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000012817574958218225,-0.44999998807907104],"max":[0.44999998807907104,0.11998717884876312,0.44999998807907104]},"sizeMeters":[0.9,0.12,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:12.233Z","updatedAt":"2026-09-06T14:36:13.178Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10803/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomShowerTrayLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10803/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10803/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10803/v1/model.glb\" alt=\"Bathroom Shower Tray (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10803/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10803/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10802","slug":"suburban-outbreak-interiors-bathroom-toilet-pan-e3720a18","title":"Bathroom Toilet Pan (Lootable Apartment Interiors)","summary":"Bathroom Toilet Pan: 0.4 × 0.5 × 0.65 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.4m wide, 0.5m high, 0.65m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape toilet. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-toilet-pan-e3720a18","cdnUrl":"https://cdn.3dassets.dev/assets/10802/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-toilet-pan-e3720a18","thumbnailUrl":"https://cdn.3dassets.dev/assets/10802/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10802/v1/poster.webp","blurhash":"UDD,1IIo00Rj?b4nRi~p4oM{xt-;WB-;IUIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31992,"triangles":628,"vertices":1884,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.18700001016259193,0,-0.2868591311345965],"max":[0.18700001016259193,0.574999988079071,0.28687500953674316]},"sizeMeters":[0.374,0.575,0.574],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:12.216Z","updatedAt":"2026-09-06T14:36:13.155Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10802/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomToiletPanLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10802/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10802/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10802/v1/model.glb\" alt=\"Bathroom Toilet Pan (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10802/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10802/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10807","slug":"suburban-outbreak-interiors-bathroom-cistern-f6e21280","title":"Bathroom Cistern (Lootable Apartment Interiors)","summary":"Bathroom Cistern: 0.45 × 0.4 × 0.18 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.45m wide, 0.4m high, 0.18m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-cistern-f6e21280","cdnUrl":"https://cdn.3dassets.dev/assets/10807/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-cistern-f6e21280","thumbnailUrl":"https://cdn.3dassets.dev/assets/10807/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10807/v1/poster.webp","blurhash":"U37mc_}@0gV]-m$%ogW;0{ELs;R.S}ocV@I;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18112,"triangles":176,"vertices":528,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.22499999403953552,-0.000005332460593948651,-0.1299876330004439],"max":[0.22499999403953552,0.40000533842105845,0.12999070386460604]},"sizeMeters":[0.45,0.4,0.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:12.699Z","updatedAt":"2026-09-06T14:36:13.674Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10807/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BathroomCisternLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10807/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10807/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10807/v1/model.glb\" alt=\"Bathroom Cistern (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10807/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10807/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10808","slug":"suburban-outbreak-interiors-utility-wash-sink-26d287a5","title":"Utility Wash Sink (Lootable Apartment Interiors)","summary":"Utility Wash Sink: 0.7 × 0.85 × 0.55 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.7m wide, 0.85m high, 0.55m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape sink. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-utility-wash-sink-26d287a5","cdnUrl":"https://cdn.3dassets.dev/assets/10808/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-wash-sink-26d287a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/10808/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10808/v1/poster.webp","blurhash":"UDCZeH%M00IV~pxuD%M|00WA?HWV00RP-;t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22080,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0,-0.2750162003507226],"max":[0.3499999940395355,1.0570622682571411,0.2750162003507226]},"sizeMeters":[0.7,1.057,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:12.752Z","updatedAt":"2026-09-06T14:36:13.677Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10808/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UtilityWashSinkLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10808/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10808/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10808/v1/model.glb\" alt=\"Utility Wash Sink (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10808/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10808/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10814","slug":"suburban-outbreak-interiors-bathroom-shower-riser-e45da2e4","title":"Bathroom Shower Riser (Lootable Apartment Interiors)","summary":"Bathroom Shower Riser: 0.2 × 1.8 × 0.35 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.2m wide, 1.8m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape drop. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-shower-riser-e45da2e4","cdnUrl":"https://cdn.3dassets.dev/assets/10814/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-shower-riser-e45da2e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10814/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10814/v1/poster.webp","blurhash":"U05E:9~q0000-;ofD%Rj4nM{?v-;%gj[IAWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":5704,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999755984990967,0,-0.07999755984990967],"max":[0.07999755984990967,1.7200000286102295,0.07999755984990967]},"sizeMeters":[0.16,1.72,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:14.767Z","updatedAt":"2026-09-06T14:36:15.755Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10814/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomShowerRiserLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10814/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10814/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10814/v1/model.glb\" alt=\"Bathroom Shower Riser (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10814/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10814/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10813","slug":"suburban-outbreak-interiors-apartment-radiator-95179a36","title":"Apartment Radiator (Lootable Apartment Interiors)","summary":"Apartment Radiator: 0.9 × 0.65 × 0.15 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.9m wide, 0.65m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape radiator. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-radiator-95179a36","cdnUrl":"https://cdn.3dassets.dev/assets/10813/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-radiator-95179a36","thumbnailUrl":"https://cdn.3dassets.dev/assets/10813/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10813/v1/poster.webp","blurhash":"UBHoE=~W00ay?a~pof9F00Rk-;NG%2%Mj]D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38300,"triangles":760,"vertices":2280,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.00001451719037148802,-0.07497543467081808],"max":[0.44999998807907104,0.6500144933485136,0.07497543467081808]},"sizeMeters":[0.9,0.65,0.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:14.756Z","updatedAt":"2026-09-06T14:36:15.725Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10813/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ApartmentRadiatorLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10813/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10813/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10813/v1/model.glb\" alt=\"Apartment Radiator (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10813/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10813/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10820","slug":"suburban-outbreak-interiors-kitchen-range-shell-244240d6","title":"Kitchen Range Shell (Lootable Apartment Interiors)","summary":"Kitchen Range Shell: 0.6 × 0.85 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 0.85m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape stove. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-range-shell-244240d6","cdnUrl":"https://cdn.3dassets.dev/assets/10820/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-range-shell-244240d6","thumbnailUrl":"https://cdn.3dassets.dev/assets/10820/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10820/v1/poster.webp","blurhash":"U59tW6oe00j]_4o09FS2fk%NIUMxIURjxu%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":56148,"triangles":1116,"vertices":3348,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3000045861913232,0,-0.321254565925744],"max":[0.3000045861913232,0.8873205184936523,0.3212444239995243]},"sizeMeters":[0.6,0.887,0.642],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:15.464Z","updatedAt":"2026-09-06T14:36:16.336Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10820/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenRangeShellLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10820/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10820/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10820/v1/model.glb\" alt=\"Kitchen Range Shell (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10820/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10820/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10818","slug":"suburban-outbreak-interiors-kitchen-extractor-shell-2c933022","title":"Kitchen Extractor Shell (Lootable Apartment Interiors)","summary":"Kitchen Extractor Shell: 0.65 × 0.4 × 0.5 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.65m wide, 0.4m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape cowl. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-extractor-shell-2c933022","cdnUrl":"https://cdn.3dassets.dev/assets/10818/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-extractor-shell-2c933022","thumbnailUrl":"https://cdn.3dassets.dev/assets/10818/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10818/v1/poster.webp","blurhash":"UFC6}pxu4TRj_NtRM_WB4nfkozWBDioLazM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":5720,"triangles":96,"vertices":288,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,-0.000018916890208414694,-0.2500160130469419],"max":[0.32499998807907104,0.3800189121218368,0.2500160130469419]},"sizeMeters":[0.65,0.38,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:15.279Z","updatedAt":"2026-09-06T14:36:16.223Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10818/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenExtractorShellLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10818/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10818/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10818/v1/model.glb\" alt=\"Kitchen Extractor Shell (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10818/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10818/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10826","slug":"suburban-outbreak-interiors-fridge-open-shell-9624784a","title":"Fridge Open Shell (Lootable Apartment Interiors)","summary":"Fridge Open Shell: 0.65 × 1.7 × 0.65 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.65m wide, 1.7m high, 0.65m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape shelves; shelves 4. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-fridge-open-shell-9624784a","cdnUrl":"https://cdn.3dassets.dev/assets/10826/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-fridge-open-shell-9624784a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10826/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10826/v1/poster.webp","blurhash":"U05|vC~B0103~8sU4?j[%wxtM*M#^#s:D.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"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15044,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.32501145355737904,0,-0.3355114673856566],"max":[0.32501145355737904,1.7000000476837158,0.3354652736122369]},"sizeMeters":[0.65,1.7,0.671],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:17.373Z","updatedAt":"2026-09-06T14:36:18.338Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10826/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FridgeOpenShellLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10826/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10826/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10826/v1/model.glb\" alt=\"Fridge Open Shell (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10826/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10826/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10825","slug":"suburban-outbreak-interiors-fridge-door-leaf-8080ac00","title":"Fridge Door Leaf (Lootable Apartment Interiors)","summary":"Fridge Door Leaf: 0.62 × 1.65 × 0.09 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.62m wide, 1.65m high, 0.09m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style sheet; mat ivory. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-fridge-door-leaf-8080ac00","cdnUrl":"https://cdn.3dassets.dev/assets/10825/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-fridge-door-leaf-8080ac00","thumbnailUrl":"https://cdn.3dassets.dev/assets/10825/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10825/v1/poster.webp","blurhash":"U7Ci~%M{00xv_4az9EoeD#t7WaM{-=a#D%j=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19976,"triangles":328,"vertices":984,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3266217001067921,0,-0.0745178525311217],"max":[0.32666256680233213,1.649999964237213,0.0744928193508862]},"sizeMeters":[0.653,1.65,0.149],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:17.330Z","updatedAt":"2026-09-06T14:36:18.293Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10825/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FridgeDoorLeafLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10825/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10825/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10825/v1/model.glb\" alt=\"Fridge Door Leaf (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10825/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10825/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10830","slug":"suburban-outbreak-interiors-oven-removable-door-fe942854","title":"Oven Removable Door (Lootable Apartment Interiors)","summary":"Oven Removable Door: 0.55 × 0.4 × 0.08 m nominal survival door assembly.","description":"Original weathered survival door. Nominal envelope 0.55m wide, 0.4m high, 0.08m deep; applied framing, handles or rails can extend beyond this. Construction: form door; style window; mat metal. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-oven-removable-door-fe942854","cdnUrl":"https://cdn.3dassets.dev/assets/10830/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-oven-removable-door-fe942854","thumbnailUrl":"https://cdn.3dassets.dev/assets/10830/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10830/v1/poster.webp","blurhash":"U9Awblxv4Txu_NofMxkC00Rj-;Rj4nWA%LWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12300,"triangles":184,"vertices":552,"meshes":3,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.2916461077315739,0.0000045781151616630655,-0.06750999468841073],"max":[0.29164349772036074,0.399995429335419,0.06750999722160814]},"sizeMeters":[0.583,0.4,0.135],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:17.662Z","updatedAt":"2026-09-06T14:36:17.755Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10830/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OvenRemovableDoorLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10830/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10830/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10830/v1/model.glb\" alt=\"Oven Removable Door (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10830/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10830/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10833","slug":"suburban-outbreak-interiors-washing-machine-shell-b1188ec9","title":"Washing Machine Shell (Lootable Apartment Interiors)","summary":"Washing Machine Shell: 0.6 × 0.85 × 0.6 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.6m wide, 0.85m high, 0.6m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape washer. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-washing-machine-shell-b1188ec9","cdnUrl":"https://cdn.3dassets.dev/assets/10833/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-washing-machine-shell-b1188ec9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10833/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10833/v1/poster.webp","blurhash":"UAA^dzof00M{~qRjD%ozWDWBITs:tRkCV@WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24840,"triangles":464,"vertices":1392,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3000045861913232,0,-0.35999253306269674],"max":[0.3000045861913232,0.8500000238418579,0.35999253306269674]},"sizeMeters":[0.6,0.85,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:18.189Z","updatedAt":"2026-09-06T14:36:19.056Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10833/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WashingMachineShellLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10833/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10833/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10833/v1/model.glb\" alt=\"Washing Machine Shell (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10833/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10833/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10835","slug":"suburban-outbreak-interiors-laundry-drum-assembly-f17d848b","title":"Laundry Drum Assembly (Lootable Apartment Interiors)","summary":"Laundry Drum Assembly: 0.5 × 0.5 × 0.4 m nominal survival machine assembly.","description":"Original weathered survival machine. Nominal envelope 0.5m wide, 0.5m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form machine; shape roller. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-laundry-drum-assembly-f17d848b","cdnUrl":"https://cdn.3dassets.dev/assets/10835/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-laundry-drum-assembly-f17d848b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10835/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10835/v1/poster.webp","blurhash":"U49Qs:~W00TJ~W?HbwE100M}%LMx0KI=ivMd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26588,"triangles":388,"vertices":1164,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.26249998807907104,-0.0000037226226690945108,-0.20001334276467686],"max":[0.26249998807907104,0.4900037321594123,0.20001334276467686]},"sizeMeters":[0.525,0.49,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:19.680Z","updatedAt":"2026-09-06T14:36:20.413Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10835/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaundryDrumAssemblyLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10835/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10835/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10835/v1/model.glb\" alt=\"Laundry Drum Assembly (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10835/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10835/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10839","slug":"suburban-outbreak-interiors-kitchen-pot-rail-21175579","title":"Kitchen Pot Rail (Lootable Apartment Interiors)","summary":"Kitchen Pot Rail: 0.8 × 0.3 × 0.25 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.8m wide, 0.3m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape hooks. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-kitchen-pot-rail-21175579","cdnUrl":"https://cdn.3dassets.dev/assets/10839/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-pot-rail-21175579","thumbnailUrl":"https://cdn.3dassets.dev/assets/10839/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10839/v1/poster.webp","blurhash":"U37dd.K600Xmm,-ppJE100#Q_4j?lA4nMI?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"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23056,"triangles":332,"vertices":996,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.0000021707573646667644,-0.14650076741819545],"max":[0.4000000059604645,0.08699146195301295,0.14648401427020502]},"sizeMeters":[0.8,0.087,0.293],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:19.937Z","updatedAt":"2026-09-06T14:36:20.906Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10839/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitchenPotRailLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10839/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10839/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10839/v1/model.glb\" alt=\"Kitchen Pot Rail (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10839/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10839/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10838","slug":"suburban-outbreak-interiors-bathroom-towel-rail-a34327fe","title":"Bathroom Towel Rail (Lootable Apartment Interiors)","summary":"Bathroom Towel Rail: 0.65 × 0.2 × 0.2 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.65m wide, 0.2m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape lines. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-bathroom-towel-rail-a34327fe","cdnUrl":"https://cdn.3dassets.dev/assets/10838/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-towel-rail-a34327fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/10838/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10838/v1/poster.webp","blurhash":"U27Ke#?v00o}vy?HpJ9a00DN~WOFTz00Hq?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"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15396,"triangles":172,"vertices":516,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0.0000025019894136051046,-0.11249466057921724],"max":[0.32499998807907104,0.09199145395769122,0.11251288365147376]},"sizeMeters":[0.65,0.092,0.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:20.161Z","updatedAt":"2026-09-06T14:36:20.897Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10838/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BathroomTowelRailLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10838/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10838/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10838/v1/model.glb\" alt=\"Bathroom Towel Rail (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10838/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10838/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10845","slug":"suburban-outbreak-interiors-hall-coat-hook-rail-c83f0800","title":"Hall Coat Hook Rail (Lootable Apartment Interiors)","summary":"Hall Coat Hook Rail: 0.8 × 0.2 × 0.15 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.8m wide, 0.2m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape pegs. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-hall-coat-hook-rail-c83f0800","cdnUrl":"https://cdn.3dassets.dev/assets/10845/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-coat-hook-rail-c83f0800","thumbnailUrl":"https://cdn.3dassets.dev/assets/10845/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10845/v1/poster.webp","blurhash":"U26k9ZcY01b^Vr^kghD%00VD~VkDpK0KU]?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"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15376,"triangles":172,"vertices":516,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.0000018927576187766082,-0.0875007633352773],"max":[0.4000000059604645,0.09199145602048815,0.08748177765220087]},"sizeMeters":[0.8,0.092,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:20.908Z","updatedAt":"2026-09-06T14:36:21.760Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10845/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HallCoatHookRailLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10845/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10845/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10845/v1/model.glb\" alt=\"Hall Coat Hook Rail (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10845/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10845/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10847","slug":"suburban-outbreak-interiors-wardrobe-hanger-rail-761dc4f1","title":"Wardrobe Hanger Rail (Lootable Apartment Interiors)","summary":"Wardrobe Hanger Rail: 1 × 0.15 × 0.2 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 1m wide, 0.15m high, 0.2m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape lines. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-hanger-rail-761dc4f1","cdnUrl":"https://cdn.3dassets.dev/assets/10847/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-hanger-rail-761dc4f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10847/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10847/v1/poster.webp","blurhash":"U16k3J%h00%#+Z~CpJ9Z00q[~pE2L300QR~q","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15344,"triangles":172,"vertices":516,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,0.0000029930296176726434,-0.11252518000549187],"max":[0.5,0.09447925215585087,0.11249108942875942]},"sizeMeters":[1,0.094,0.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:22.142Z","updatedAt":"2026-09-06T14:36:22.985Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10847/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeHangerRailLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10847/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10847/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10847/v1/model.glb\" alt=\"Wardrobe Hanger Rail (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10847/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10847/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10852","slug":"suburban-outbreak-interiors-apartment-curtain-track-1fc144cd","title":"Apartment Curtain Track (Lootable Apartment Interiors)","summary":"Apartment Curtain Track: 2 × 0.08 × 0.08 m nominal survival beam assembly.","description":"Original weathered survival beam. Nominal envelope 2m wide, 0.08m high, 0.08m deep; applied framing, handles or rails can extend beyond this. Construction: form beam; shape track. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-curtain-track-1fc144cd","cdnUrl":"https://cdn.3dassets.dev/assets/10852/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-curtain-track-1fc144cd","thumbnailUrl":"https://cdn.3dassets.dev/assets/10852/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10852/v1/poster.webp","blurhash":"U47w~PxuDitQ%g_4ofM{00xu_3V[Di00xu?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"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2764,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000040284991301847706,-0.049439985351115455],"max":[1,0.08004028387371478,0.049439985351115455]},"sizeMeters":[2,0.08,0.099],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:22.618Z","updatedAt":"2026-09-06T14:36:23.553Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10852/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ApartmentCurtainTrackLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10852/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10852/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10852/v1/model.glb\" alt=\"Apartment Curtain Track (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10852/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10852/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10851","slug":"suburban-outbreak-interiors-window-privacy-screen-69790876","title":"Window Privacy Screen (Lootable Apartment Interiors)","summary":"Window Privacy Screen: 1 × 1.2 × 0.06 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 1m wide, 1.2m high, 0.06m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape louvre. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-window-privacy-screen-69790876","cdnUrl":"https://cdn.3dassets.dev/assets/10851/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-window-privacy-screen-69790876","thumbnailUrl":"https://cdn.3dassets.dev/assets/10851/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10851/v1/poster.webp","blurhash":"U4AAgU-.00DkxatPafID01WB_LofWUxtt6IV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20696,"triangles":264,"vertices":792,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.500021382825697,0,-0.04203021462198283],"max":[0.500021382825697,1.2000000476837158,0.041995880167319546]},"sizeMeters":[1,1.2,0.084],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:22.607Z","updatedAt":"2026-09-06T14:36:23.511Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10851/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindowPrivacyScreenLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10851/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10851/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10851/v1/model.glb\" alt=\"Window Privacy Screen (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10851/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10851/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10857","slug":"suburban-outbreak-interiors-floor-service-cover-33d7835a","title":"Floor Service Cover (Lootable Apartment Interiors)","summary":"Floor Service Cover: 0.5 × 0.08 × 0.5 m nominal survival hatch assembly.","description":"Original weathered survival hatch. Nominal envelope 0.5m wide, 0.08m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form hatch; style sealed. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-floor-service-cover-33d7835a","cdnUrl":"https://cdn.3dassets.dev/assets/10857/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-floor-service-cover-33d7835a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10857/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10857/v1/poster.webp","blurhash":"U7AAj#WE00tQ00Rjofxu00j?t7Ri_NWB-;og","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":7716,"triangles":96,"vertices":288,"meshes":3,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.25,-0.000009766370067165742,-0.25],"max":[0.25,0.11098680161617287,0.25]},"sizeMeters":[0.5,0.111,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:23.216Z","updatedAt":"2026-09-06T14:36:24.393Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10857/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FloorServiceCoverLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10857/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10857/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10857/v1/model.glb\" alt=\"Floor Service Cover (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10857/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10857/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10859","slug":"suburban-outbreak-interiors-loose-cupboard-shelf-2547d1e8","title":"Loose Cupboard Shelf (Lootable Apartment Interiors)","summary":"Loose Cupboard Shelf: 0.7 × 0.04 × 0.45 m nominal survival panel assembly.","description":"Original weathered survival panel. Nominal envelope 0.7m wide, 0.04m high, 0.45m deep; applied framing, handles or rails can extend beyond this. Construction: form panel; shape bolt. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-loose-cupboard-shelf-2547d1e8","cdnUrl":"https://cdn.3dassets.dev/assets/10859/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-loose-cupboard-shelf-2547d1e8","thumbnailUrl":"https://cdn.3dassets.dev/assets/10859/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10859/v1/poster.webp","blurhash":"U16t2V%g0.PBxs-VkWJ-00Mx]PVYD+9ZMx#9","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15068,"triangles":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0.000010683074687684035,-0.2565160226174047],"max":[0.3499999940395355,0.17399316072049248,0.25650155008731446]},"sizeMeters":[0.7,0.174,0.513],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:24.731Z","updatedAt":"2026-09-06T14:36:25.619Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10859/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LooseCupboardShelfLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10859/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10859/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10859/v1/model.glb\" alt=\"Loose Cupboard Shelf (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10859/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10859/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10865","slug":"suburban-outbreak-interiors-wardrobe-shoe-rack-96595c14","title":"Wardrobe Shoe Rack (Lootable Apartment Interiors)","summary":"Wardrobe Shoe Rack: 0.8 × 0.35 × 0.4 m nominal survival rack assembly.","description":"Original weathered survival rack. Nominal envelope 0.8m wide, 0.35m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form rack; shape slots. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-wardrobe-shoe-rack-96595c14","cdnUrl":"https://cdn.3dassets.dev/assets/10865/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shoe-rack-96595c14","thumbnailUrl":"https://cdn.3dassets.dev/assets/10865/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10865/v1/poster.webp","blurhash":"U27mKN-,0~s.~8=^k8OA0gk9xGNb5lI;IsRS","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22084,"triangles":264,"vertices":792,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000017553731145619755,-0.2079897488801048],"max":[0.4000000059604645,0.35001754777068117,0.2079897488801048]},"sizeMeters":[0.8,0.35,0.416],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:25.681Z","updatedAt":"2026-09-06T14:36:26.433Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10865/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WardrobeShoeRackLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10865/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10865/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10865/v1/model.glb\" alt=\"Wardrobe Shoe Rack (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10865/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10865/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10862","slug":"suburban-outbreak-interiors-desk-cable-tray-20c2d567","title":"Desk Cable Tray (Lootable Apartment Interiors)","summary":"Desk Cable Tray: 0.8 × 0.1 × 0.15 m nominal survival duct assembly.","description":"Original weathered survival duct. Nominal envelope 0.8m wide, 0.1m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form duct; shape trough. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-desk-cable-tray-20c2d567","cdnUrl":"https://cdn.3dassets.dev/assets/10862/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-cable-tray-20c2d567","thumbnailUrl":"https://cdn.3dassets.dev/assets/10862/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10862/v1/poster.webp","blurhash":"U59j.X%M4n%M?b~qbHIU00tR?vIU4n00t7%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2800,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.0000015262980255711933,-0.07500229000583189],"max":[0.4000000059604645,0.10000152704308363,0.07500229000583189]},"sizeMeters":[0.8,0.1,0.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:25.280Z","updatedAt":"2026-09-06T14:36:26.147Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10862/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DeskCableTrayLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10862/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10862/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10862/v1/model.glb\" alt=\"Desk Cable Tray (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10862/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10862/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10869","slug":"suburban-outbreak-interiors-apartment-loot-lockbox-d1ded0eb","title":"Apartment Loot Lockbox (Lootable Apartment Interiors)","summary":"Apartment Loot Lockbox: 0.45 × 0.3 × 0.35 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.45m wide, 0.3m high, 0.35m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape sealed. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-loot-lockbox-d1ded0eb","cdnUrl":"https://cdn.3dassets.dev/assets/10869/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-loot-lockbox-d1ded0eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/10869/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10869/v1/poster.webp","blurhash":"U28fy9~q1j%O}?xbXT$*000KIBQ-9tM_Dj9t","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18152,"triangles":176,"vertices":528,"meshes":3,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.22499999403953552,-0.000009145618492800711,-0.21501068339862775],"max":[0.22499999403953552,0.30000915753942176,0.21499071034661116]},"sizeMeters":[0.45,0.3,0.43],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:26.053Z","updatedAt":"2026-09-06T14:36:26.966Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10869/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ApartmentLootLockboxLootableApartmentInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10869/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10869/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10869/v1/model.glb\" alt=\"Apartment Loot Lockbox (Lootable Apartment Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10869/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10869/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10871","slug":"suburban-outbreak-interiors-apartment-hidden-wall-cach-a4baca3c","title":"Apartment Hidden Wall Cache (Lootable Apartment Interiors)","summary":"Apartment Hidden Wall Cache: 0.4 × 0.6 × 0.15 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.4m wide, 0.6m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-hidden-wall-cach-a4baca3c","cdnUrl":"https://cdn.3dassets.dev/assets/10871/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-hidden-wall-cach-a4baca3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10871/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10871/v1/poster.webp","blurhash":"U16@A#}@015Q}=xaENW,OlNbN2s,?FxuI?EK","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14392,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.20001221535156147,0,-0.08551144634885689],"max":[0.20001221535156147,0.6000000238418579,0.08550799648975606]},"sizeMeters":[0.4,0.6,0.171],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:27.406Z","updatedAt":"2026-09-06T14:36:28.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10871/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ApartmentHiddenWallCacheLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10871/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10871/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10871/v1/model.glb\" alt=\"Apartment Hidden Wall Cache (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10871/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10871/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10874","slug":"suburban-outbreak-interiors-balcony-foldout-table-5fc0b54a","title":"Balcony Foldout Table (Lootable Apartment Interiors)","summary":"Balcony Foldout Table: 0.8 × 0.75 × 0.5 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.75m high, 0.5m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape fold. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-balcony-foldout-table-5fc0b54a","cdnUrl":"https://cdn.3dassets.dev/assets/10874/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-foldout-table-5fc0b54a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10874/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10874/v1/poster.webp","blurhash":"U76@QMROK5Rj}qxYNdR%In%2e.Sh9]oejFbv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9452,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000006894886477287754,-0.2699939445587489],"max":[0.4000000059604645,0.5055561115920396,0.2699832218230839]},"sizeMeters":[0.8,0.506,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:27.848Z","updatedAt":"2026-09-06T14:36:28.704Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10874/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BalconyFoldoutTableLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10874/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10874/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10874/v1/model.glb\" alt=\"Balcony Foldout Table (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10874/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10874/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10879","slug":"suburban-outbreak-interiors-balcony-guardrail-7a0fe306","title":"Balcony Guardrail (Lootable Apartment Interiors)","summary":"Balcony Guardrail: 2 × 1.1 × 0.15 m nominal survival rail assembly.","description":"Original weathered survival rail. Nominal envelope 2m wide, 1.1m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form rail; shape mesh. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-balcony-guardrail-7a0fe306","cdnUrl":"https://cdn.3dassets.dev/assets/10879/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-guardrail-7a0fe306","thumbnailUrl":"https://cdn.3dassets.dev/assets/10879/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10879/v1/poster.webp","blurhash":"U79ZTL$*m7,s~B^QiwRP00%2yXIU9EMx%Ntl","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46944,"triangles":752,"vertices":2256,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.000004565855492466575,-0.05993835261085849],"max":[1,1.1000045896973503,0.05993835261085849]},"sizeMeters":[2,1.1,0.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:28.266Z","updatedAt":"2026-09-06T14:36:29.146Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10879/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BalconyGuardrailLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10879/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10879/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10879/v1/model.glb\" alt=\"Balcony Guardrail (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10879/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10879/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10881","slug":"suburban-outbreak-interiors-apartment-escape-ladder-f3b9e229","title":"Apartment Escape Ladder (Lootable Apartment Interiors)","summary":"Apartment Escape Ladder: 0.5 × 2.4 × 0.15 m nominal survival ladder assembly.","description":"Original weathered survival ladder. Nominal envelope 0.5m wide, 2.4m high, 0.15m deep; applied framing, handles or rails can extend beyond this. Construction: form ladder. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-apartment-escape-ladder-f3b9e229","cdnUrl":"https://cdn.3dassets.dev/assets/10881/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-escape-ladder-f3b9e229","thumbnailUrl":"https://cdn.3dassets.dev/assets/10881/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10881/v1/poster.webp","blurhash":"U17K^_%g004T_NS$8_#SIAWVx]sT.8S#IA#m","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16464,"triangles":320,"vertices":960,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.28492081578964534,0,-0.03501083546206953],"max":[0.28492081578964534,2.4000000953674316,0.03501083546206953]},"sizeMeters":[0.57,2.4,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:28.442Z","updatedAt":"2026-09-06T14:36:28.546Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10881/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ApartmentEscapeLadderLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10881/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10881/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10881/v1/model.glb\" alt=\"Apartment Escape Ladder (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10881/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10881/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10883","slug":"suburban-outbreak-interiors-landing-mail-shelf-e55359d9","title":"Landing Mail Shelf (Lootable Apartment Interiors)","summary":"Landing Mail Shelf: 0.8 × 0.6 × 0.25 m nominal survival cabinet assembly.","description":"Original weathered survival cabinet. Nominal envelope 0.8m wide, 0.6m high, 0.25m deep; applied framing, handles or rails can extend beyond this. Construction: form cabinet; shape cubby; shelves 2. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-landing-mail-shelf-e55359d9","cdnUrl":"https://cdn.3dassets.dev/assets/10883/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-landing-mail-shelf-e55359d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10883/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10883/v1/poster.webp","blurhash":"U28V}=}@0i%3}?^PwhNH1ZNZENIpKIt3I;0~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14336,"triangles":132,"vertices":396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000015266705545968762,-0.1355160230074752],"max":[0.4000000059604645,0.5999847571363119,0.13550189268566465]},"sizeMeters":[0.8,0.6,0.271],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:30.393Z","updatedAt":"2026-09-06T14:36:30.774Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10883/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LandingMailShelfLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10883/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10883/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10883/v1/model.glb\" alt=\"Landing Mail Shelf (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10883/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10883/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10886","slug":"suburban-outbreak-interiors-entry-boot-tray-a625a701","title":"Entry Boot Tray (Lootable Apartment Interiors)","summary":"Entry Boot Tray: 0.8 × 0.08 × 0.4 m nominal survival plumbing assembly.","description":"Original weathered survival plumbing. Nominal envelope 0.8m wide, 0.08m high, 0.4m deep; applied framing, handles or rails can extend beyond this. Construction: form plumbing; shape shower. Metres, +Y up, +Z front; grounded at y=0. Centred footprint. Door/hatch and cabinetry leaves use named local pivots when present. Static geometry only: no rig, animation, collision, physics or gameplay. Empty storage shells are intentionally lootable. CC0; AI-generated geometry.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-entry-boot-tray-a625a701","cdnUrl":"https://cdn.3dassets.dev/assets/10886/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-entry-boot-tray-a625a701","thumbnailUrl":"https://cdn.3dassets.dev/assets/10886/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10886/v1/poster.webp","blurhash":"U5D0Gj?u00t7%f~p%LIU00IUxuM{Mx009FM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9408,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000008543245629669127,-0.200030521490163],"max":[0.4000000059604645,0.0830044832959315,0.200030521490163]},"sizeMeters":[0.8,0.083,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:30.805Z","updatedAt":"2026-09-06T14:36:31.246Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10886/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EntryBootTrayLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10886/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10886/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10886/v1/model.glb\" alt=\"Entry Boot Tray (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10886/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10886/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10887","slug":"suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","title":"Assembled Survivor Site (Lootable Apartment Interiors)","summary":"Composed example for Lootable Apartment Interiors.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10887/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-assembled-su-c02fa311-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10887/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10887/v1/poster.webp","blurhash":"UKCiw09Z4:ae~qM{IAof4:xuRjt74U%LtRju","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":110776,"triangles":3512,"vertices":4473,"meshes":17,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.1149937482749985,-0.000004565855492466575,-2.0924344651739157],"max":[2.000042765651394,2.6100000953674316,2.8599383526108584]},"sizeMeters":[4.115,2.61,4.952],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:30.863Z","updatedAt":"2026-09-06T14:36:31.304Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10887/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssembledSurvivorSiteLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10887/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10887/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10887/v1/model.glb\" alt=\"Assembled Survivor Site (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10887/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10887/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10891","slug":"suburban-outbreak-interiors-construction-and-service-c-a6c2c6bc","title":"Construction and Service Corner (Lootable Apartment Interiors)","summary":"Composed example for Lootable Apartment Interiors.","description":"A deliberately open cutaway composition showing grounded fixtures, usable entries and the common structural grid. Roof covers one corner to keep interior content visible. Static layout; no collision or gameplay supplied.","status":"published","url":"https://3dassets.dev/assets/suburban-outbreak-interiors-construction-and-service-c-a6c2c6bc","cdnUrl":"https://cdn.3dassets.dev/assets/10891/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-construction-and-service-c-a6c2c6bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/10891/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10891/v1/poster.webp","blurhash":"UIC6cDD%4:M{_NM{D%oe9axtV@xu4nxuxut7","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":116388,"triangles":3432,"vertices":4373,"meshes":15,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.131523957785883,-0.000004565855492466575,-2.0924344651739157],"max":[2.000042765651394,2.6100000953674316,2.8599383526108584]},"sizeMeters":[4.132,2.61,4.952],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 brief and frozen geometry kit; Claude Opus 5 animation pass","downloads":0,"publishedAt":"2026-09-06T14:36:32.136Z","updatedAt":"2026-09-06T14:36:32.793Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10891/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConstructionAndServiceCornerLootableApartmentInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10891/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10891/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10891/v1/model.glb\" alt=\"Construction and Service Corner (Lootable Apartment Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/10891/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/10891/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}