{"data":{"id":65,"slug":"suburban-outbreak-interiors","title":"Lootable Apartment Interiors","summary":"Modular apartment interiors to loot: room partitions and doors, kitchen and bathroom carcasses, wardrobes, hall storage and everyday fittings for a suburban outbreak or zombie survival game.","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/20021/v1/poster.webp","assetCount":97,"aiGenerated":true,"aiGeneratedAssetCount":97,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":2019796,"totalTriangles":30752,"starterScene":{"id":"20021","slug":"suburban-outbreak-interiors-assembled-su-d1c6a6b1-starter-scene","title":"Assembled Survivor Site (Lootable Apartment Interiors)","summary":"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.","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-d1c6a6b1-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/20021/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-assembled-su-d1c6a6b1-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/20021/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20021/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":110772,"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":"Claude Fable 5.1","downloads":26,"publishedAt":"2026-09-07T17:06:16.466Z","updatedAt":"2026-10-25T09:16:15.616Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20021/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/20021/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20021/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20021/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/20021/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20021/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"19872","slug":"suburban-outbreak-interiors-room-solid-partition-d6e16150","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-d6e16150","cdnUrl":"https://cdn.3dassets.dev/assets/19872/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-solid-partition-d6e16150","thumbnailUrl":"https://cdn.3dassets.dev/assets/19872/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19872/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":27164,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:34.336Z","updatedAt":"2026-10-25T16:17:23.557Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19872/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/19872/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19872/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19872/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/19872/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19872/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19874","slug":"suburban-outbreak-interiors-room-door-partition-b24fe25f","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-b24fe25f","cdnUrl":"https://cdn.3dassets.dev/assets/19874/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-door-partition-b24fe25f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19874/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19874/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":30036,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:34.446Z","updatedAt":"2026-10-25T16:40:36.060Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19874/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/19874/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19874/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19874/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/19874/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19874/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19868","slug":"suburban-outbreak-interiors-room-wide-arch-458d695e","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-458d695e","cdnUrl":"https://cdn.3dassets.dev/assets/19868/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-wide-arch-458d695e","thumbnailUrl":"https://cdn.3dassets.dev/assets/19868/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19868/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":33464,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:34.284Z","updatedAt":"2026-10-10T00:03:38.254Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19868/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/19868/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19868/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19868/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/19868/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19868/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19871","slug":"suburban-outbreak-interiors-room-window-wall-bd99692b","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-bd99692b","cdnUrl":"https://cdn.3dassets.dev/assets/19871/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-window-wall-bd99692b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19871/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19871/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":32344,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:34.321Z","updatedAt":"2026-10-10T00:04:17.973Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19871/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/19871/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19871/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19871/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/19871/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19871/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19875","slug":"suburban-outbreak-interiors-room-double-window-475aecb1","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-475aecb1","cdnUrl":"https://cdn.3dassets.dev/assets/19875/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-double-window-475aecb1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19875/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19875/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":35812,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:34.497Z","updatedAt":"2026-10-25T12:56:36.758Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19875/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/19875/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19875/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19875/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/19875/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19875/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19873","slug":"suburban-outbreak-interiors-room-serving-hatch-b0e85bf7","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-b0e85bf7","cdnUrl":"https://cdn.3dassets.dev/assets/19873/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-serving-hatch-b0e85bf7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19873/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19873/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":33508,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:34.347Z","updatedAt":"2026-10-10T00:05:26.462Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19873/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/19873/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19873/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19873/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/19873/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19873/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19869","slug":"suburban-outbreak-interiors-room-vent-partition-1ec90fa4","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-1ec90fa4","cdnUrl":"https://cdn.3dassets.dev/assets/19869/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-vent-partition-1ec90fa4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19869/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19869/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":31208,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:34.266Z","updatedAt":"2026-10-25T16:47:40.483Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19869/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/19869/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19869/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19869/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/19869/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19869/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19870","slug":"suburban-outbreak-interiors-room-recessed-shelf-wall-2f9b4393","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-2f9b4393","cdnUrl":"https://cdn.3dassets.dev/assets/19870/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-recessed-shelf-wall-2f9b4393","thumbnailUrl":"https://cdn.3dassets.dev/assets/19870/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19870/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":42892,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:34.306Z","updatedAt":"2026-10-10T00:05:17.237Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19870/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/19870/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19870/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19870/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/19870/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19870/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19885","slug":"suburban-outbreak-interiors-interior-panel-door-9f88f3f1","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-9f88f3f1","cdnUrl":"https://cdn.3dassets.dev/assets/19885/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-interior-panel-door-9f88f3f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19885/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19885/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":22076,"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":"Claude Fable 5.1","downloads":15,"publishedAt":"2026-09-07T17:05:37.714Z","updatedAt":"2026-10-09T07:18:00.429Z","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/19885/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/19885/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/19885/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19885/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/19885/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/19885/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19888","slug":"suburban-outbreak-interiors-bathroom-louvred-door-79cdc8a5","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-79cdc8a5","cdnUrl":"https://cdn.3dassets.dev/assets/19888/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-louvred-door-79cdc8a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19888/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19888/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":29580,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:37.808Z","updatedAt":"2026-10-10T00:02:53.324Z","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/19888/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/19888/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/19888/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19888/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/19888/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/19888/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19883","slug":"suburban-outbreak-interiors-pantry-screen-door-87c00dba","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-87c00dba","cdnUrl":"https://cdn.3dassets.dev/assets/19883/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-screen-door-87c00dba","thumbnailUrl":"https://cdn.3dassets.dev/assets/19883/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19883/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":28368,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:37.657Z","updatedAt":"2026-10-10T00:02:21.557Z","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/19883/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/19883/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/19883/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19883/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/19883/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/19883/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19886","slug":"suburban-outbreak-interiors-apartment-armoured-door-6ec61cb6","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-6ec61cb6","cdnUrl":"https://cdn.3dassets.dev/assets/19886/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-armoured-door-6ec61cb6","thumbnailUrl":"https://cdn.3dassets.dev/assets/19886/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19886/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":23244,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:37.741Z","updatedAt":"2026-10-05T21:56:38.794Z","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/19886/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/19886/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/19886/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19886/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/19886/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/19886/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19884","slug":"suburban-outbreak-interiors-wardrobe-door-leaf-ef7be8da","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-ef7be8da","cdnUrl":"https://cdn.3dassets.dev/assets/19884/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-door-leaf-ef7be8da","thumbnailUrl":"https://cdn.3dassets.dev/assets/19884/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19884/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":29568,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:37.686Z","updatedAt":"2026-10-10T00:05:30.351Z","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/19884/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/19884/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/19884/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19884/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/19884/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/19884/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19887","slug":"suburban-outbreak-interiors-kitchen-cabinet-door-leaf-3d2c06bd","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-3d2c06bd","cdnUrl":"https://cdn.3dassets.dev/assets/19887/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-cabinet-door-leaf-3d2c06bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/19887/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19887/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":27284,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:37.788Z","updatedAt":"2026-10-13T09:48:31.476Z","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/19887/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/19887/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/19887/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19887/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/19887/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/19887/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19890","slug":"suburban-outbreak-interiors-glazed-cupboard-frame-daad8f22","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-daad8f22","cdnUrl":"https://cdn.3dassets.dev/assets/19890/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-glazed-cupboard-frame-daad8f22","thumbnailUrl":"https://cdn.3dassets.dev/assets/19890/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19890/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":18764,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:37.869Z","updatedAt":"2026-10-25T11:32:03.012Z","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/19890/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/19890/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/19890/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19890/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/19890/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/19890/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19889","slug":"suburban-outbreak-interiors-service-cupboard-door-2ddbba0b","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-2ddbba0b","cdnUrl":"https://cdn.3dassets.dev/assets/19889/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-service-cupboard-door-2ddbba0b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19889/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19889/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":22804,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:37.855Z","updatedAt":"2026-10-08T03:51:08.119Z","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/19889/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/19889/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/19889/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19889/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/19889/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/19889/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19899","slug":"suburban-outbreak-interiors-kitchen-base-carcass-49b53fc7","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-49b53fc7","cdnUrl":"https://cdn.3dassets.dev/assets/19899/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-base-carcass-49b53fc7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19899/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19899/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":14344,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:41.170Z","updatedAt":"2026-10-25T14:26:30.901Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19899/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/19899/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19899/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19899/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/19899/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19899/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19903","slug":"suburban-outbreak-interiors-kitchen-drawer-carcass-e7e2c3e9","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-e7e2c3e9","cdnUrl":"https://cdn.3dassets.dev/assets/19903/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-drawer-carcass-e7e2c3e9","thumbnailUrl":"https://cdn.3dassets.dev/assets/19903/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19903/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":22324,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:41.311Z","updatedAt":"2026-10-25T13:21:08.055Z","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/19903/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/19903/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/19903/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19903/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/19903/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/19903/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19900","slug":"suburban-outbreak-interiors-kitchen-wall-carcass-4ad0f65f","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-4ad0f65f","cdnUrl":"https://cdn.3dassets.dev/assets/19900/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-wall-carcass-4ad0f65f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19900/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19900/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":13608,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:41.196Z","updatedAt":"2026-10-25T14:29:54.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19900/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/19900/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19900/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19900/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/19900/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19900/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19898","slug":"suburban-outbreak-interiors-kitchen-corner-carcass-3f6b85bf","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-3f6b85bf","cdnUrl":"https://cdn.3dassets.dev/assets/19898/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-corner-carcass-3f6b85bf","thumbnailUrl":"https://cdn.3dassets.dev/assets/19898/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19898/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":14360,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:43.251Z","updatedAt":"2026-10-25T10:32:43.866Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19898/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/19898/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19898/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19898/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/19898/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19898/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19901","slug":"suburban-outbreak-interiors-kitchen-larder-carcass-07cc1521","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-07cc1521","cdnUrl":"https://cdn.3dassets.dev/assets/19901/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-larder-carcass-07cc1521","thumbnailUrl":"https://cdn.3dassets.dev/assets/19901/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19901/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":15704,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:41.269Z","updatedAt":"2026-10-25T12:28:03.059Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19901/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/19901/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19901/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19901/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/19901/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19901/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19902","slug":"suburban-outbreak-interiors-kitchen-sink-base-756f4dd7","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-756f4dd7","cdnUrl":"https://cdn.3dassets.dev/assets/19902/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-sink-base-756f4dd7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19902/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19902/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":11948,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:41.286Z","updatedAt":"2026-10-25T14:56:30.443Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19902/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/19902/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19902/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19902/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/19902/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19902/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19904","slug":"suburban-outbreak-interiors-kitchen-open-island-5fd46f2f","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-5fd46f2f","cdnUrl":"https://cdn.3dassets.dev/assets/19904/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-open-island-5fd46f2f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19904/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19904/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":10560,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:41.333Z","updatedAt":"2026-10-08T04:25:20.076Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19904/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/19904/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19904/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19904/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/19904/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19904/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19906","slug":"suburban-outbreak-interiors-kitchen-appliance-tower-c139eb88","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-c139eb88","cdnUrl":"https://cdn.3dassets.dev/assets/19906/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-appliance-tower-c139eb88","thumbnailUrl":"https://cdn.3dassets.dev/assets/19906/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19906/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":14988,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:41.453Z","updatedAt":"2026-10-25T11:17:37.804Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19906/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/19906/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19906/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19906/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/19906/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19906/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19914","slug":"suburban-outbreak-interiors-kitchen-bin-pullout-3f0d4126","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-3f0d4126","cdnUrl":"https://cdn.3dassets.dev/assets/19914/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-bin-pullout-3f0d4126","thumbnailUrl":"https://cdn.3dassets.dev/assets/19914/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19914/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":12900,"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":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T17:05:44.452Z","updatedAt":"2026-10-25T12:21:35.279Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19914/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/19914/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19914/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19914/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/19914/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19914/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19915","slug":"suburban-outbreak-interiors-kitchen-cutlery-tray-01374773","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-01374773","cdnUrl":"https://cdn.3dassets.dev/assets/19915/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-cutlery-tray-01374773","thumbnailUrl":"https://cdn.3dassets.dev/assets/19915/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19915/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":13864,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:44.603Z","updatedAt":"2026-10-25T16:52:09.616Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19915/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/19915/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19915/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19915/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/19915/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19915/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19916","slug":"suburban-outbreak-interiors-kitchen-removable-drawer-fb3597d7","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-fb3597d7","cdnUrl":"https://cdn.3dassets.dev/assets/19916/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-removable-drawer-fb3597d7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19916/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19916/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":13312,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:44.636Z","updatedAt":"2026-10-10T00:02:43.287Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19916/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/19916/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19916/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19916/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/19916/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19916/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19920","slug":"suburban-outbreak-interiors-wall-spice-cubby-178238c5","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-178238c5","cdnUrl":"https://cdn.3dassets.dev/assets/19920/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wall-spice-cubby-178238c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19920/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19920/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":15044,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:44.918Z","updatedAt":"2026-10-06T02:38:13.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19920/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/19920/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19920/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19920/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/19920/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19920/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19919","slug":"suburban-outbreak-interiors-pantry-bottle-cabinet-24b22c88","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-24b22c88","cdnUrl":"https://cdn.3dassets.dev/assets/19919/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-bottle-cabinet-24b22c88","thumbnailUrl":"https://cdn.3dassets.dev/assets/19919/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19919/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":17888,"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":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T17:05:44.778Z","updatedAt":"2026-10-25T08:46:38.256Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19919/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/19919/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19919/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19919/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/19919/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19919/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19917","slug":"suburban-outbreak-interiors-pantry-vegetable-bin-458f4682","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-458f4682","cdnUrl":"https://cdn.3dassets.dev/assets/19917/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-pantry-vegetable-bin-458f4682","thumbnailUrl":"https://cdn.3dassets.dev/assets/19917/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19917/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":12904,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:44.621Z","updatedAt":"2026-10-25T09:46:45.356Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19917/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/19917/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19917/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19917/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/19917/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19917/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19918","slug":"suburban-outbreak-interiors-kitchen-serving-hutch-22590226","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-22590226","cdnUrl":"https://cdn.3dassets.dev/assets/19918/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-serving-hutch-22590226","thumbnailUrl":"https://cdn.3dassets.dev/assets/19918/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19918/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":16348,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:44.750Z","updatedAt":"2026-10-10T00:06:04.681Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19918/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/19918/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19918/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19918/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/19918/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19918/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19922","slug":"suburban-outbreak-interiors-bathroom-vanity-carcass-6b8fb34b","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-6b8fb34b","cdnUrl":"https://cdn.3dassets.dev/assets/19922/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-vanity-carcass-6b8fb34b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19922/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19922/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":14360,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:46.537Z","updatedAt":"2026-10-10T00:04:36.145Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19922/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/19922/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19922/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19922/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/19922/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19922/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19929","slug":"suburban-outbreak-interiors-bathroom-medicine-carcass-7aafbce1","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-7aafbce1","cdnUrl":"https://cdn.3dassets.dev/assets/19929/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-medicine-carcass-7aafbce1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19929/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19929/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":15092,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:47.900Z","updatedAt":"2026-10-10T00:04:33.195Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19929/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/19929/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19929/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19929/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/19929/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19929/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19931","slug":"suburban-outbreak-interiors-bathroom-towel-cubby-a033c4cb","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-a033c4cb","cdnUrl":"https://cdn.3dassets.dev/assets/19931/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-towel-cubby-a033c4cb","thumbnailUrl":"https://cdn.3dassets.dev/assets/19931/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19931/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":15000,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:48.057Z","updatedAt":"2026-10-10T00:05:25.040Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19931/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/19931/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19931/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19931/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/19931/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19931/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19930","slug":"suburban-outbreak-interiors-bathroom-laundry-hamper-0cf0a67a","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-0cf0a67a","cdnUrl":"https://cdn.3dassets.dev/assets/19930/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-laundry-hamper-0cf0a67a","thumbnailUrl":"https://cdn.3dassets.dev/assets/19930/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19930/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":25144,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:47.959Z","updatedAt":"2026-10-25T13:25:21.004Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19930/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/19930/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19930/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19930/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/19930/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19930/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19932","slug":"suburban-outbreak-interiors-bathroom-mirror-frame-785c26a9","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-785c26a9","cdnUrl":"https://cdn.3dassets.dev/assets/19932/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-mirror-frame-785c26a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/19932/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19932/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":2604,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:48.218Z","updatedAt":"2026-10-10T00:03:55.295Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19932/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/19932/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19932/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19932/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/19932/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19932/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19934","slug":"suburban-outbreak-interiors-hall-shoe-cubby-d1646683","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-d1646683","cdnUrl":"https://cdn.3dassets.dev/assets/19934/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-shoe-cubby-d1646683","thumbnailUrl":"https://cdn.3dassets.dev/assets/19934/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19934/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":14988,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:48.361Z","updatedAt":"2026-10-10T00:05:50.108Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19934/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/19934/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19934/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19934/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/19934/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19934/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19933","slug":"suburban-outbreak-interiors-hall-key-cupboard-fe1cce99","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-fe1cce99","cdnUrl":"https://cdn.3dassets.dev/assets/19933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-key-cupboard-fe1cce99","thumbnailUrl":"https://cdn.3dassets.dev/assets/19933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19933/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":16608,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:48.288Z","updatedAt":"2026-10-25T14:24:29.626Z","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/19933/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/19933/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/19933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19933/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/19933/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/19933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19936","slug":"suburban-outbreak-interiors-hall-coat-locker-4c7c023f","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-4c7c023f","cdnUrl":"https://cdn.3dassets.dev/assets/19936/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-coat-locker-4c7c023f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19936/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19936/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":20232,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:48.620Z","updatedAt":"2026-10-25T13:53:28.262Z","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/19936/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/19936/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/19936/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19936/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/19936/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/19936/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19937","slug":"suburban-outbreak-interiors-hall-umbrella-bin-a24b46ba","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-a24b46ba","cdnUrl":"https://cdn.3dassets.dev/assets/19937/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-umbrella-bin-a24b46ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/19937/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19937/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":12888,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:51.056Z","updatedAt":"2026-10-25T11:02:38.949Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19937/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/19937/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19937/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19937/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/19937/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19937/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19944","slug":"suburban-outbreak-interiors-wardrobe-hanging-carcass-bec794d2","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-bec794d2","cdnUrl":"https://cdn.3dassets.dev/assets/19944/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-hanging-carcass-bec794d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/19944/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19944/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":15092,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:51.477Z","updatedAt":"2026-10-10T00:05:12.995Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19944/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/19944/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19944/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19944/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/19944/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19944/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19945","slug":"suburban-outbreak-interiors-wardrobe-shelf-carcass-e9885d7e","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-e9885d7e","cdnUrl":"https://cdn.3dassets.dev/assets/19945/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shelf-carcass-e9885d7e","thumbnailUrl":"https://cdn.3dassets.dev/assets/19945/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19945/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":15700,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:51.633Z","updatedAt":"2026-10-10T00:03:59.233Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19945/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/19945/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19945/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19945/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/19945/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19945/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19946","slug":"suburban-outbreak-interiors-wardrobe-overhead-carcass-3c729fca","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-3c729fca","cdnUrl":"https://cdn.3dassets.dev/assets/19946/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-overhead-carcass-3c729fca","thumbnailUrl":"https://cdn.3dassets.dev/assets/19946/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19946/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":14352,"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":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T17:05:51.647Z","updatedAt":"2026-10-10T00:04:31.592Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19946/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/19946/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19946/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19946/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/19946/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19946/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19947","slug":"suburban-outbreak-interiors-wardrobe-shoe-drawer-8436e102","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-8436e102","cdnUrl":"https://cdn.3dassets.dev/assets/19947/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shoe-drawer-8436e102","thumbnailUrl":"https://cdn.3dassets.dev/assets/19947/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19947/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":14440,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:51.733Z","updatedAt":"2026-10-10T00:04:28.685Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19947/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/19947/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19947/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19947/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/19947/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19947/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19948","slug":"suburban-outbreak-interiors-wardrobe-open-luggage-bay-2dc0ede8","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-2dc0ede8","cdnUrl":"https://cdn.3dassets.dev/assets/19948/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-open-luggage-bay-2dc0ede8","thumbnailUrl":"https://cdn.3dassets.dev/assets/19948/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19948/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":13648,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:51.927Z","updatedAt":"2026-10-10T00:03:27.997Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19948/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/19948/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19948/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19948/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/19948/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19948/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19949","slug":"suburban-outbreak-interiors-bedside-open-carcass-e011bdb9","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-e011bdb9","cdnUrl":"https://cdn.3dassets.dev/assets/19949/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bedside-open-carcass-e011bdb9","thumbnailUrl":"https://cdn.3dassets.dev/assets/19949/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19949/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":14344,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:52.004Z","updatedAt":"2026-10-10T00:05:42.057Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19949/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/19949/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19949/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19949/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/19949/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19949/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19951","slug":"suburban-outbreak-interiors-bedside-drawer-carcass-1e9d4b13","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-1e9d4b13","cdnUrl":"https://cdn.3dassets.dev/assets/19951/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bedside-drawer-carcass-1e9d4b13","thumbnailUrl":"https://cdn.3dassets.dev/assets/19951/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19951/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":19484,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:52.242Z","updatedAt":"2026-10-10T00:06:09.524Z","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/19951/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/19951/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/19951/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19951/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/19951/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/19951/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19958","slug":"suburban-outbreak-interiors-underbed-storage-box-415988fd","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-415988fd","cdnUrl":"https://cdn.3dassets.dev/assets/19958/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-underbed-storage-box-415988fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/19958/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19958/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":15072,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:54.647Z","updatedAt":"2026-10-10T00:04:22.268Z","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/19958/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/19958/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/19958/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19958/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/19958/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/19958/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19960","slug":"suburban-outbreak-interiors-desk-pedestal-carcass-574cf1b4","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-574cf1b4","cdnUrl":"https://cdn.3dassets.dev/assets/19960/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-pedestal-carcass-574cf1b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19960/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19960/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":22308,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:55.000Z","updatedAt":"2026-10-10T00:05:35.974Z","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/19960/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/19960/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/19960/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19960/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/19960/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/19960/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19961","slug":"suburban-outbreak-interiors-desk-open-frame-f0cf5269","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-f0cf5269","cdnUrl":"https://cdn.3dassets.dev/assets/19961/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-open-frame-f0cf5269","thumbnailUrl":"https://cdn.3dassets.dev/assets/19961/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19961/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":10532,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:55.216Z","updatedAt":"2026-10-10T00:06:05.987Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19961/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/19961/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19961/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19961/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/19961/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19961/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19965","slug":"suburban-outbreak-interiors-bookcase-broken-back-0e29f6ba","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-0e29f6ba","cdnUrl":"https://cdn.3dassets.dev/assets/19965/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bookcase-broken-back-0e29f6ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/19965/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19965/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":15776,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:55.473Z","updatedAt":"2026-10-10T00:04:06.461Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19965/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/19965/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19965/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19965/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/19965/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19965/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19963","slug":"suburban-outbreak-interiors-display-cabinet-carcass-88b5478c","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-88b5478c","cdnUrl":"https://cdn.3dassets.dev/assets/19963/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-display-cabinet-carcass-88b5478c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19963/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19963/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":18076,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:55.379Z","updatedAt":"2026-10-05T08:23:02.375Z","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/19963/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/19963/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/19963/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19963/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/19963/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/19963/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19962","slug":"suburban-outbreak-interiors-sideboard-open-carcass-7235dcaa","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-7235dcaa","cdnUrl":"https://cdn.3dassets.dev/assets/19962/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-sideboard-open-carcass-7235dcaa","thumbnailUrl":"https://cdn.3dassets.dev/assets/19962/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19962/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":15068,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:55.250Z","updatedAt":"2026-10-10T00:03:21.302Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19962/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/19962/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19962/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19962/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/19962/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19962/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19964","slug":"suburban-outbreak-interiors-sideboard-removable-drawer-36888ddd","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-36888ddd","cdnUrl":"https://cdn.3dassets.dev/assets/19964/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-sideboard-removable-drawer-36888ddd","thumbnailUrl":"https://cdn.3dassets.dev/assets/19964/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19964/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":13324,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:55.448Z","updatedAt":"2026-10-10T00:04:24.116Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19964/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/19964/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19964/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19964/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/19964/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19964/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19966","slug":"suburban-outbreak-interiors-media-console-carcass-12db98c9","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-12db98c9","cdnUrl":"https://cdn.3dassets.dev/assets/19966/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-media-console-carcass-12db98c9","thumbnailUrl":"https://cdn.3dassets.dev/assets/19966/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19966/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":14324,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:55.719Z","updatedAt":"2026-10-06T14:04:19.738Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19966/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/19966/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19966/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19966/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/19966/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19966/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19973","slug":"suburban-outbreak-interiors-room-divider-cubby-3a8d732f","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-3a8d732f","cdnUrl":"https://cdn.3dassets.dev/assets/19973/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-room-divider-cubby-3a8d732f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19973/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19973/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":15760,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:05:58.038Z","updatedAt":"2026-10-10T00:05:35.226Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19973/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/19973/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19973/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19973/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/19973/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19973/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19976","slug":"suburban-outbreak-interiors-utility-meter-carcass-5ec4b1f5","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-5ec4b1f5","cdnUrl":"https://cdn.3dassets.dev/assets/19976/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-meter-carcass-5ec4b1f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19976/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19976/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":16680,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:05:58.633Z","updatedAt":"2026-10-25T12:36:54.442Z","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/19976/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/19976/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/19976/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19976/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/19976/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/19976/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19977","slug":"suburban-outbreak-interiors-utility-cleaning-cupboard-1c78f424","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-1c78f424","cdnUrl":"https://cdn.3dassets.dev/assets/19977/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-cleaning-cupboard-1c78f424","thumbnailUrl":"https://cdn.3dassets.dev/assets/19977/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19977/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":15184,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:58.752Z","updatedAt":"2026-10-25T10:23:09.887Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19977/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/19977/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19977/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19977/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/19977/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19977/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19978","slug":"suburban-outbreak-interiors-utility-parts-drawers-b6094fb0","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-b6094fb0","cdnUrl":"https://cdn.3dassets.dev/assets/19978/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-parts-drawers-b6094fb0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19978/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19978/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":27984,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:58.756Z","updatedAt":"2026-10-25T08:12:42.169Z","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/19978/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/19978/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/19978/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19978/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/19978/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/19978/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19982","slug":"suburban-outbreak-interiors-apartment-mail-cubbies-5b5c3871","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-5b5c3871","cdnUrl":"https://cdn.3dassets.dev/assets/19982/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-mail-cubbies-5b5c3871","thumbnailUrl":"https://cdn.3dassets.dev/assets/19982/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19982/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":21660,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:05:59.270Z","updatedAt":"2026-10-25T08:11:42.723Z","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/19982/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/19982/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/19982/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19982/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/19982/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/19982/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19979","slug":"suburban-outbreak-interiors-linen-cupboard-carcass-b2770c0c","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-b2770c0c","cdnUrl":"https://cdn.3dassets.dev/assets/19979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-linen-cupboard-carcass-b2770c0c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19979/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":15068,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:05:58.922Z","updatedAt":"2026-10-25T11:14:24.111Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19979/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/19979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19979/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/19979/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19980","slug":"suburban-outbreak-interiors-balcony-storage-carcass-3ed2ebb3","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-3ed2ebb3","cdnUrl":"https://cdn.3dassets.dev/assets/19980/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-storage-carcass-3ed2ebb3","thumbnailUrl":"https://cdn.3dassets.dev/assets/19980/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19980/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":17360,"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":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T17:05:58.953Z","updatedAt":"2026-10-06T14:04:23.312Z","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/19980/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/19980/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/19980/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19980/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/19980/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/19980/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19981","slug":"suburban-outbreak-interiors-kitchen-deep-sink-ee9240db","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-ee9240db","cdnUrl":"https://cdn.3dassets.dev/assets/19981/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-deep-sink-ee9240db","thumbnailUrl":"https://cdn.3dassets.dev/assets/19981/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19981/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":22076,"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":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T17:05:59.213Z","updatedAt":"2026-10-25T10:10:26.437Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19981/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/19981/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19981/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19981/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/19981/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19981/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19988","slug":"suburban-outbreak-interiors-bathroom-basin-bf004956","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-bf004956","cdnUrl":"https://cdn.3dassets.dev/assets/19988/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-basin-bf004956","thumbnailUrl":"https://cdn.3dassets.dev/assets/19988/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19988/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":18252,"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":"Claude Fable 5.1","downloads":16,"publishedAt":"2026-09-07T17:06:01.712Z","updatedAt":"2026-10-25T10:34:43.559Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19988/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/19988/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19988/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19988/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/19988/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19988/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19990","slug":"suburban-outbreak-interiors-bathroom-bathtub-6b2566c4","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-6b2566c4","cdnUrl":"https://cdn.3dassets.dev/assets/19990/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-bathtub-6b2566c4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19990/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19990/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":9768,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:02.117Z","updatedAt":"2026-10-25T07:58:07.252Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19990/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/19990/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19990/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19990/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/19990/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19990/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19991","slug":"suburban-outbreak-interiors-bathroom-shower-tray-bed62fd8","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-bed62fd8","cdnUrl":"https://cdn.3dassets.dev/assets/19991/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-shower-tray-bed62fd8","thumbnailUrl":"https://cdn.3dassets.dev/assets/19991/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19991/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":10020,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:06:02.313Z","updatedAt":"2026-10-25T08:04:35.628Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19991/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/19991/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19991/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19991/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/19991/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19991/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19994","slug":"suburban-outbreak-interiors-bathroom-toilet-pan-7e096456","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-7e096456","cdnUrl":"https://cdn.3dassets.dev/assets/19994/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-toilet-pan-7e096456","thumbnailUrl":"https://cdn.3dassets.dev/assets/19994/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19994/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":31984,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:02.424Z","updatedAt":"2026-10-25T08:58:41.374Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19994/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/19994/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19994/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19994/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/19994/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19994/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19992","slug":"suburban-outbreak-interiors-bathroom-cistern-60df9111","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-60df9111","cdnUrl":"https://cdn.3dassets.dev/assets/19992/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-cistern-60df9111","thumbnailUrl":"https://cdn.3dassets.dev/assets/19992/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19992/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":18108,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:02.355Z","updatedAt":"2026-10-10T00:03:58.412Z","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/19992/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/19992/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/19992/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19992/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/19992/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/19992/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19993","slug":"suburban-outbreak-interiors-utility-wash-sink-388c7aa5","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-388c7aa5","cdnUrl":"https://cdn.3dassets.dev/assets/19993/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-utility-wash-sink-388c7aa5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19993/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19993/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":22076,"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":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T17:06:02.374Z","updatedAt":"2026-10-25T09:37:25.518Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19993/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/19993/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19993/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19993/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/19993/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19993/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19995","slug":"suburban-outbreak-interiors-bathroom-shower-riser-f683d78c","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-f683d78c","cdnUrl":"https://cdn.3dassets.dev/assets/19995/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-shower-riser-f683d78c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19995/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19995/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":5700,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:02.486Z","updatedAt":"2026-10-10T00:05:52.340Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19995/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/19995/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19995/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19995/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/19995/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19995/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19996","slug":"suburban-outbreak-interiors-apartment-radiator-5b0e4da2","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-5b0e4da2","cdnUrl":"https://cdn.3dassets.dev/assets/19996/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-radiator-5b0e4da2","thumbnailUrl":"https://cdn.3dassets.dev/assets/19996/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19996/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":38296,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:02.671Z","updatedAt":"2026-10-25T07:59:38.809Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19996/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/19996/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19996/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19996/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/19996/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19996/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19997","slug":"suburban-outbreak-interiors-kitchen-range-shell-bb7c9d97","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-bb7c9d97","cdnUrl":"https://cdn.3dassets.dev/assets/19997/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-range-shell-bb7c9d97","thumbnailUrl":"https://cdn.3dassets.dev/assets/19997/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19997/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":56144,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:05.158Z","updatedAt":"2026-10-10T00:03:59.647Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19997/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/19997/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19997/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19997/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/19997/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19997/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19998","slug":"suburban-outbreak-interiors-kitchen-extractor-shell-f4b1ee36","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-f4b1ee36","cdnUrl":"https://cdn.3dassets.dev/assets/19998/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-extractor-shell-f4b1ee36","thumbnailUrl":"https://cdn.3dassets.dev/assets/19998/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19998/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":5712,"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":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T17:06:05.430Z","updatedAt":"2026-10-10T00:05:21.569Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19998/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/19998/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19998/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19998/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/19998/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19998/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20004","slug":"suburban-outbreak-interiors-fridge-open-shell-e8cee9d3","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-e8cee9d3","cdnUrl":"https://cdn.3dassets.dev/assets/20004/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-fridge-open-shell-e8cee9d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/20004/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20004/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":15040,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:06.203Z","updatedAt":"2026-10-10T00:05:24.013Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20004/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/20004/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20004/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20004/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/20004/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20004/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20002","slug":"suburban-outbreak-interiors-fridge-door-leaf-2eeeead4","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-2eeeead4","cdnUrl":"https://cdn.3dassets.dev/assets/20002/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-fridge-door-leaf-2eeeead4","thumbnailUrl":"https://cdn.3dassets.dev/assets/20002/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20002/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":19972,"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":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:06:05.953Z","updatedAt":"2026-10-05T21:56:41.058Z","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/20002/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/20002/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/20002/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20002/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/20002/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/20002/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19999","slug":"suburban-outbreak-interiors-oven-removable-door-abd1dc76","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-abd1dc76","cdnUrl":"https://cdn.3dassets.dev/assets/19999/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-oven-removable-door-abd1dc76","thumbnailUrl":"https://cdn.3dassets.dev/assets/19999/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19999/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":12296,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:05.751Z","updatedAt":"2026-10-10T00:04:25.204Z","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/19999/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/19999/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/19999/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19999/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/19999/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/19999/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"20000","slug":"suburban-outbreak-interiors-washing-machine-shell-88b72d32","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-88b72d32","cdnUrl":"https://cdn.3dassets.dev/assets/20000/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-washing-machine-shell-88b72d32","thumbnailUrl":"https://cdn.3dassets.dev/assets/20000/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20000/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":24836,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:05.845Z","updatedAt":"2026-10-25T08:57:24.154Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20000/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/20000/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20000/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20000/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/20000/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20000/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20001","slug":"suburban-outbreak-interiors-laundry-drum-assembly-b3a92d13","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-b3a92d13","cdnUrl":"https://cdn.3dassets.dev/assets/20001/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-laundry-drum-assembly-b3a92d13","thumbnailUrl":"https://cdn.3dassets.dev/assets/20001/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20001/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":26584,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:05.929Z","updatedAt":"2026-10-06T02:34:04.297Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20001/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/20001/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20001/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20001/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/20001/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20001/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20003","slug":"suburban-outbreak-interiors-kitchen-pot-rail-33be3d97","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-33be3d97","cdnUrl":"https://cdn.3dassets.dev/assets/20003/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-kitchen-pot-rail-33be3d97","thumbnailUrl":"https://cdn.3dassets.dev/assets/20003/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20003/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":23052,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:07.122Z","updatedAt":"2026-10-25T10:37:35.059Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20003/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/20003/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20003/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20003/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/20003/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20003/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20006","slug":"suburban-outbreak-interiors-bathroom-towel-rail-3e6fd2d9","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-3e6fd2d9","cdnUrl":"https://cdn.3dassets.dev/assets/20006/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-bathroom-towel-rail-3e6fd2d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/20006/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20006/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":15392,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:09.901Z","updatedAt":"2026-10-25T11:05:01.190Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20006/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/20006/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20006/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20006/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/20006/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20006/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20005","slug":"suburban-outbreak-interiors-hall-coat-hook-rail-1451ed8d","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-1451ed8d","cdnUrl":"https://cdn.3dassets.dev/assets/20005/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-hall-coat-hook-rail-1451ed8d","thumbnailUrl":"https://cdn.3dassets.dev/assets/20005/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20005/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":15372,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:11.834Z","updatedAt":"2026-10-25T08:36:45.640Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20005/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/20005/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20005/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20005/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/20005/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20005/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20010","slug":"suburban-outbreak-interiors-wardrobe-hanger-rail-29c48888","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-29c48888","cdnUrl":"https://cdn.3dassets.dev/assets/20010/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-hanger-rail-29c48888","thumbnailUrl":"https://cdn.3dassets.dev/assets/20010/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20010/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":15340,"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":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T17:06:09.472Z","updatedAt":"2026-10-10T00:03:56.513Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20010/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/20010/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20010/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20010/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/20010/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20010/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20007","slug":"suburban-outbreak-interiors-apartment-curtain-track-4a1ef1e1","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-4a1ef1e1","cdnUrl":"https://cdn.3dassets.dev/assets/20007/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-curtain-track-4a1ef1e1","thumbnailUrl":"https://cdn.3dassets.dev/assets/20007/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20007/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":2760,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:09.112Z","updatedAt":"2026-10-25T09:30:45.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20007/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/20007/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20007/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20007/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/20007/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20007/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20008","slug":"suburban-outbreak-interiors-window-privacy-screen-f2551359","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-f2551359","cdnUrl":"https://cdn.3dassets.dev/assets/20008/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-window-privacy-screen-f2551359","thumbnailUrl":"https://cdn.3dassets.dev/assets/20008/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20008/v1/poster.webp","blurhash":"U4AdDY-.00DkoI%Ks:9I01M|_KtQNGxtt7IV","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":20692,"triangles":264,"vertices":792,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5011831856451315,0,-0.04203021462198283],"max":[0.5011831856451315,1.2000000476837158,0.041995880167319546]},"sizeMeters":[1.002,1.2,0.084],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:09.327Z","updatedAt":"2026-10-08T07:15:56.559Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20008/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/20008/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20008/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20008/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/20008/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20008/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20009","slug":"suburban-outbreak-interiors-floor-service-cover-698610b3","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-698610b3","cdnUrl":"https://cdn.3dassets.dev/assets/20009/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-floor-service-cover-698610b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/20009/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20009/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":7712,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:09.380Z","updatedAt":"2026-10-25T14:35:53.711Z","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/20009/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/20009/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/20009/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20009/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/20009/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/20009/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"20011","slug":"suburban-outbreak-interiors-loose-cupboard-shelf-af0fb7c7","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-af0fb7c7","cdnUrl":"https://cdn.3dassets.dev/assets/20011/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-loose-cupboard-shelf-af0fb7c7","thumbnailUrl":"https://cdn.3dassets.dev/assets/20011/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20011/v1/poster.webp","blurhash":"U16jm{.60.Kkxs$+ozKM00Me]iicE29sIUvi","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":156,"vertices":468,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0.000010683074687684035,-0.2565160226174047],"max":[0.3511999845504761,0.17399316072049248,0.25650155008731446]},"sizeMeters":[0.701,0.174,0.513],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:06:09.828Z","updatedAt":"2026-10-25T08:03:37.225Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20011/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/20011/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20011/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20011/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/20011/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20011/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20012","slug":"suburban-outbreak-interiors-wardrobe-shoe-rack-d51bcc83","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-d51bcc83","cdnUrl":"https://cdn.3dassets.dev/assets/20012/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-wardrobe-shoe-rack-d51bcc83","thumbnailUrl":"https://cdn.3dassets.dev/assets/20012/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20012/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":22080,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:10.614Z","updatedAt":"2026-10-05T21:37:44.024Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20012/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/20012/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20012/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20012/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/20012/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20012/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20013","slug":"suburban-outbreak-interiors-desk-cable-tray-652f0bc1","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-652f0bc1","cdnUrl":"https://cdn.3dassets.dev/assets/20013/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-desk-cable-tray-652f0bc1","thumbnailUrl":"https://cdn.3dassets.dev/assets/20013/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20013/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":2796,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:13.747Z","updatedAt":"2026-10-25T10:48:19.892Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20013/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/20013/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20013/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20013/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/20013/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20013/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20014","slug":"suburban-outbreak-interiors-apartment-loot-lockbox-b963ad51","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-b963ad51","cdnUrl":"https://cdn.3dassets.dev/assets/20014/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-loot-lockbox-b963ad51","thumbnailUrl":"https://cdn.3dassets.dev/assets/20014/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20014/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":18144,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:12.927Z","updatedAt":"2026-10-25T08:18:54.832Z","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/20014/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/20014/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/20014/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20014/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/20014/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/20014/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"20015","slug":"suburban-outbreak-interiors-apartment-hidden-wall-cach-88c7369b","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-88c7369b","cdnUrl":"https://cdn.3dassets.dev/assets/20015/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-hidden-wall-cach-88c7369b","thumbnailUrl":"https://cdn.3dassets.dev/assets/20015/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20015/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":14388,"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":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T17:06:13.020Z","updatedAt":"2026-10-25T10:32:17.931Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20015/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/20015/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20015/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20015/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/20015/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20015/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20016","slug":"suburban-outbreak-interiors-balcony-foldout-table-b6b78a2c","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-b6b78a2c","cdnUrl":"https://cdn.3dassets.dev/assets/20016/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-foldout-table-b6b78a2c","thumbnailUrl":"https://cdn.3dassets.dev/assets/20016/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20016/v1/poster.webp","blurhash":"U76@QMROK5Rj}qxYNdR%In%2jFSh9]oenikW","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":9468,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000006894886477287754,-0.2699939445587489],"max":[0.40119999647140503,0.5055561115920396,0.2699832218230839]},"sizeMeters":[0.801,0.506,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T17:06:13.156Z","updatedAt":"2026-10-25T14:22:21.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20016/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/20016/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20016/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20016/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/20016/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20016/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20017","slug":"suburban-outbreak-interiors-balcony-guardrail-8d47a148","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-8d47a148","cdnUrl":"https://cdn.3dassets.dev/assets/20017/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-balcony-guardrail-8d47a148","thumbnailUrl":"https://cdn.3dassets.dev/assets/20017/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20017/v1/poster.webp","blurhash":"U79ZQD$*m7,s~B^QiwRP00%2yXIU4-Mx%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":46940,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:13.332Z","updatedAt":"2026-10-25T13:48:40.168Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20017/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/20017/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20017/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20017/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/20017/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20017/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20018","slug":"suburban-outbreak-interiors-apartment-escape-ladder-641c74b8","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-641c74b8","cdnUrl":"https://cdn.3dassets.dev/assets/20018/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-apartment-escape-ladder-641c74b8","thumbnailUrl":"https://cdn.3dassets.dev/assets/20018/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20018/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":16460,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:13.394Z","updatedAt":"2026-10-25T08:10:34.043Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20018/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/20018/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20018/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20018/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/20018/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20018/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20019","slug":"suburban-outbreak-interiors-landing-mail-shelf-a20d0054","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-a20d0054","cdnUrl":"https://cdn.3dassets.dev/assets/20019/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-landing-mail-shelf-a20d0054","thumbnailUrl":"https://cdn.3dassets.dev/assets/20019/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20019/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":14332,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:14.191Z","updatedAt":"2026-10-10T00:02:26.141Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20019/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/20019/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20019/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20019/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/20019/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20019/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20020","slug":"suburban-outbreak-interiors-entry-boot-tray-b9df92f2","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-b9df92f2","cdnUrl":"https://cdn.3dassets.dev/assets/20020/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-entry-boot-tray-b9df92f2","thumbnailUrl":"https://cdn.3dassets.dev/assets/20020/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20020/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":9404,"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":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T17:06:18.413Z","updatedAt":"2026-10-25T11:00:15.748Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20020/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/20020/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20020/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20020/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/20020/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20020/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20021","slug":"suburban-outbreak-interiors-assembled-su-d1c6a6b1-starter-scene","title":"Assembled Survivor Site (Lootable Apartment Interiors)","summary":"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.","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-d1c6a6b1-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/20021/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-assembled-su-d1c6a6b1-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/20021/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20021/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":110772,"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":"Claude Fable 5.1","downloads":26,"publishedAt":"2026-09-07T17:06:16.466Z","updatedAt":"2026-10-25T09:16:15.616Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20021/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/20021/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20021/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20021/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/20021/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20021/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"20022","slug":"suburban-outbreak-interiors-construction-and-service-c-8cce8ac8","title":"Construction and Service Corner (Lootable Apartment Interiors)","summary":"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.","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-8cce8ac8","cdnUrl":"https://cdn.3dassets.dev/assets/20022/v1/model.glb","downloadUrl":"https://3dassets.dev/download/suburban-outbreak-interiors-construction-and-service-c-8cce8ac8","thumbnailUrl":"https://cdn.3dassets.dev/assets/20022/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/20022/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":116384,"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":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T17:06:16.477Z","updatedAt":"2026-10-25T11:07:15.688Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/20022/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/20022/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/20022/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/20022/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/20022/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/20022/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}