{"data":{"id":104,"slug":"undercity-sewers-and-thieves-den","title":"Undercity Sewers and Thieves Den","summary":"Vaulted brick waterways, cisterns, maintenance machinery and a concealed den.","description":"Original sewer kit with hollow pipes, open channels, helical machinery, raised ledges and dry hideout furnishings. Metres, +Y up, +Z front; static geometry without animation, collision or navigation.","url":"https://3dassets.dev/packs/undercity-sewers-and-thieves-den","coverUrl":"https://cdn.3dassets.dev/assets/27259/v1/poster.webp","assetCount":124,"aiGenerated":true,"aiGeneratedAssetCount":124,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":13346128,"totalTriangles":302248,"starterScene":{"id":"27259","slug":"undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","title":"Outfall to Cistern (Undercity Sewers and Thieves Den)","summary":"Open inspection route connects a four-metre tunnel to a T junction, a second channel bay and a cistern approach. Dry den entrance branches east.","description":"Open inspection route connects a four-metre tunnel to a T junction, a second channel bay and a cistern approach. Dry den entrance branches east.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/27259/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/27259/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27259/v1/poster.webp","blurhash":"U68gmV=xIAW.Io9Foy%M00Eh%gn+%1~WV@IU","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":560508,"triangles":26712,"vertices":24413,"meshes":50,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00017242920601036327,-3],"max":[3.700106802860418,3.3579081066426815,19.000122074037904]},"sizeMeters":[6.7,3.358,22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:12.397Z","updatedAt":"2026-09-07T21:01:12.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27259/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OutfallToCisternUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27259/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27259/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27259/v1/model.glb\" alt=\"Outfall to Cistern (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27259/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27259/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"25007","slug":"undercity-sewers-and-thieves-den-brick-barrel-tunnel-e430dd84","title":"Brick Barrel Tunnel (Undercity Sewers and Thieves Den)","summary":"Four-metre brick barrel sewer with vaulted roof, rib arches, a two-metre channel and raised ledges.","description":"Four-metre brick barrel sewer with vaulted roof, rib arches, a two-metre channel and raised ledges. Dimensions 4.00 × 3.61 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-barrel-tunnel-e430dd84","cdnUrl":"https://cdn.3dassets.dev/assets/25007/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-barrel-tunnel-e430dd84","thumbnailUrl":"https://cdn.3dassets.dev/assets/25007/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25007/v1/poster.webp","blurhash":"U5C$1McY0L|?hf9ZOX%f0%NbIUJ71gtR?H$j","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":441452,"triangles":9120,"vertices":27360,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.007999897003174],"max":[2,3.607992950339038,2.007999897003174]},"sizeMeters":[4,3.608,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.794Z","updatedAt":"2026-09-07T20:36:23.923Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25007/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickBarrelTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25007/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25007/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25007/v1/model.glb\" alt=\"Brick Barrel Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25007/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25007/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25012","slug":"undercity-sewers-and-thieves-den-smooth-vault-tunnel-acd0616c","title":"Smooth Vault Tunnel (Undercity Sewers and Thieves Den)","summary":"Continuous barrel vault with plain masonry sides for long economical runs.","description":"Continuous barrel vault with plain masonry sides for long economical runs. Dimensions 4.00 × 3.61 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-smooth-vault-tunnel-acd0616c","cdnUrl":"https://cdn.3dassets.dev/assets/25012/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-smooth-vault-tunnel-acd0616c","thumbnailUrl":"https://cdn.3dassets.dev/assets/25012/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25012/v1/poster.webp","blurhash":"U4C=h=yX02}8qG9FFx%f0iN19aEf1Mtl^*$j","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":183980,"triangles":3756,"vertices":11268,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.007999897003174],"max":[2,3.607992950339038,2.007999897003174]},"sizeMeters":[4,3.608,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:24.028Z","updatedAt":"2026-09-07T20:36:24.216Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25012/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmoothVaultTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25012/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25012/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25012/v1/model.glb\" alt=\"Smooth Vault Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25012/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25012/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25011","slug":"undercity-sewers-and-thieves-den-flat-soffit-tunnel-d418fc9f","title":"Flat Soffit Tunnel (Undercity Sewers and Thieves Den)","summary":"Low stone box sewer with rectangular end portals and flat structural soffit.","description":"Low stone box sewer with rectangular end portals and flat structural soffit. Dimensions 4.00 × 3.00 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-flat-soffit-tunnel-d418fc9f","cdnUrl":"https://cdn.3dassets.dev/assets/25011/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-flat-soffit-tunnel-d418fc9f","thumbnailUrl":"https://cdn.3dassets.dev/assets/25011/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25011/v1/poster.webp","blurhash":"U8C%Kg.700xt~qWBIUba00RjIUM{D%baxtt6","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":117596,"triangles":2388,"vertices":7164,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.0001074200869606,2]},"sizeMeters":[4,3,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.941Z","updatedAt":"2026-09-07T20:36:24.084Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25011/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlatSoffitTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25011/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25011/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25011/v1/model.glb\" alt=\"Flat Soffit Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25011/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25011/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25010","slug":"undercity-sewers-and-thieves-den-low-vault-tunnel-4c2d7a20","title":"Low Vault Tunnel (Undercity Sewers and Thieves Den)","summary":"Low brick arch run with reduced crown and broad maintenance ledges.","description":"Low brick arch run with reduced crown and broad maintenance ledges. Dimensions 4.00 × 2.86 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-low-vault-tunnel-4c2d7a20","cdnUrl":"https://cdn.3dassets.dev/assets/25010/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-low-vault-tunnel-4c2d7a20","thumbnailUrl":"https://cdn.3dassets.dev/assets/25010/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25010/v1/poster.webp","blurhash":"U4CYaYpc0L[oL#9HNe-:01RjR5Ez3qtl~V,@","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":396488,"triangles":8184,"vertices":24552,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.007999897003174],"max":[2,2.8581360708575962,2.007999897003174]},"sizeMeters":[4,2.858,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.866Z","updatedAt":"2026-09-07T20:36:24.012Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25010/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LowVaultTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25010/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25010/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25010/v1/model.glb\" alt=\"Low Vault Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25010/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25010/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25009","slug":"undercity-sewers-and-thieves-den-egg-section-tunnel-1a8d0fbe","title":"Egg Section Tunnel (Undercity Sewers and Thieves Den)","summary":"Tall narrow egg-profile approximation with a round crown and steep inner walls.","description":"Tall narrow egg-profile approximation with a round crown and steep inner walls. Dimensions 4.00 × 3.86 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-egg-section-tunnel-1a8d0fbe","cdnUrl":"https://cdn.3dassets.dev/assets/25009/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-egg-section-tunnel-1a8d0fbe","thumbnailUrl":"https://cdn.3dassets.dev/assets/25009/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25009/v1/poster.webp","blurhash":"U4CYUJyD02}qY+9aAb-p14EgH@V?B-Op~V-o","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":325664,"triangles":6708,"vertices":20124,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.007999897003174],"max":[2,3.8580065246634034,2.007999897003174]},"sizeMeters":[4,3.858,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.779Z","updatedAt":"2026-09-07T20:36:23.905Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25009/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EggSectionTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25009/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25009/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25009/v1/model.glb\" alt=\"Egg Section Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25009/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25009/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25005","slug":"undercity-sewers-and-thieves-den-crawl-tunnel-47812476","title":"Crawl Tunnel (Undercity Sewers and Thieves Den)","summary":"Low crawl culvert with enclosed arch shell, for restricted passages.","description":"Low crawl culvert with enclosed arch shell, for restricted passages. Dimensions 2.00 × 1.23 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-crawl-tunnel-47812476","cdnUrl":"https://cdn.3dassets.dev/assets/25005/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-crawl-tunnel-47812476","thumbnailUrl":"https://cdn.3dassets.dev/assets/25005/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25005/v1/poster.webp","blurhash":"U5B2[V%L0}v}ZO4:Nu={00OF,XV{T_~A-VJ8","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":77728,"triangles":1584,"vertices":4752,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.00015259254738,-0.00008993755298791761,-2.007999897003174],"max":[1.00015259254738,1.2281071490200157,2.007999897003174]},"sizeMeters":[2,1.228,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.712Z","updatedAt":"2026-09-07T20:36:23.852Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25005/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CrawlTunnelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25005/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25005/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25005/v1/model.glb\" alt=\"Crawl Tunnel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25005/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25005/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25008","slug":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","title":"Arch Portal (Undercity Sewers and Thieves Den)","summary":"Freestanding open brick arch portal with segmented crown and masonry jambs.","description":"Freestanding open brick arch portal with segmented crown and masonry jambs. Dimensions 4.20 × 3.29 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-arch-portal-80f56f3d","cdnUrl":"https://cdn.3dassets.dev/assets/25008/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-arch-portal-80f56f3d","thumbnailUrl":"https://cdn.3dassets.dev/assets/25008/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25008/v1/poster.webp","blurhash":"U4A]Z^$l00}rD4-nT{IV1K565QKiT|.8rD4:","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":77796,"triangles":1584,"vertices":4752,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.0999999046325684,0.000021368987085435,-0.27506941711731264],"max":[2.0999999046325684,3.2879370892511437,0.27506941711731264]},"sizeMeters":[4.2,3.288,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.759Z","updatedAt":"2026-09-07T20:36:23.908Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25008/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchPortalUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25008/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25008/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25008/v1/model.glb\" alt=\"Arch Portal (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25008/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25008/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25006","slug":"undercity-sewers-and-thieves-den-tunnel-end-wall-da0d6de8","title":"Tunnel End Wall (Undercity Sewers and Thieves Den)","summary":"Dead-end channel bay with a masonry stop wall and damp central stain.","description":"Dead-end channel bay with a masonry stop wall and damp central stain. Dimensions 4.00 × 3.52 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-tunnel-end-wall-da0d6de8","cdnUrl":"https://cdn.3dassets.dev/assets/25006/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-tunnel-end-wall-da0d6de8","thumbnailUrl":"https://cdn.3dassets.dev/assets/25006/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25006/v1/poster.webp","blurhash":"U6Cr.n7300%Ky@4:7exu4owIELxHy?-:=yxu","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":110380,"triangles":2280,"vertices":6840,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.001199960708618],"max":[2,3.5200351099949656,2]},"sizeMeters":[4,3.52,4.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:23.753Z","updatedAt":"2026-09-07T20:36:23.877Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25006/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TunnelEndWallUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25006/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25006/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25006/v1/model.glb\" alt=\"Tunnel End Wall (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25006/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25006/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25016","slug":"undercity-sewers-and-thieves-den-iron-grille-wall-65acbc76","title":"Iron Grille Wall (Undercity Sewers and Thieves Den)","summary":"Riveted full-width iron grille across the channel with narrow vertical bars.","description":"Riveted full-width iron grille across the channel with narrow vertical bars. Dimensions 4.00 × 3.02 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-grille-wall-65acbc76","cdnUrl":"https://cdn.3dassets.dev/assets/25016/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-grille-wall-65acbc76","thumbnailUrl":"https://cdn.3dassets.dev/assets/25016/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25016/v1/poster.webp","blurhash":"UA8Nzu%MMye:00M{x[fkD%R%IVWA_Mt7%2xa","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":144060,"triangles":3792,"vertices":11376,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.0200427396223346,2]},"sizeMeters":[4,3.02,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:25.721Z","updatedAt":"2026-09-07T20:36:25.871Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25016/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronGrilleWallUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25016/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25016/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25016/v1/model.glb\" alt=\"Iron Grille Wall (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25016/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25016/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25013","slug":"undercity-sewers-and-thieves-den-sluice-gate-module-30930ec8","title":"Sluice Gate Module (Undercity Sewers and Thieves Den)","summary":"Channel sluice in a cast-iron frame with separate pivoted gate leaf and manual wheel.","description":"Channel sluice in a cast-iron frame with separate pivoted gate leaf and manual wheel. Dimensions 4.00 × 3.38 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-sluice-gate-module-30930ec8","cdnUrl":"https://cdn.3dassets.dev/assets/25013/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-sluice-gate-module-30930ec8","thumbnailUrl":"https://cdn.3dassets.dev/assets/25013/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25013/v1/poster.webp","blurhash":"U88XRZ-pMyjZ00M{tQWVM{WAD*aM_Moz-;xt","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":181892,"triangles":3840,"vertices":11520,"meshes":8,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.3750000298023224,2]},"sizeMeters":[4,3.375,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:25.606Z","updatedAt":"2026-09-07T20:36:25.755Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25013/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SluiceGateModuleUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25013/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25013/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25013/v1/model.glb\" alt=\"Sluice Gate Module (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25013/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25013/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25015","slug":"undercity-sewers-and-thieves-den-overflow-weir-6596f39e","title":"Overflow Weir (Undercity Sewers and Thieves Den)","summary":"Broad-crested overflow sill crossing the two-metre water channel.","description":"Broad-crested overflow sill crossing the two-metre water channel. Dimensions 4.00 × 0.85 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-overflow-weir-6596f39e","cdnUrl":"https://cdn.3dassets.dev/assets/25015/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-overflow-weir-6596f39e","thumbnailUrl":"https://cdn.3dassets.dev/assets/25015/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25015/v1/poster.webp","blurhash":"U29HFL~q009FIWo3t6Io009F?]Rj$}NGRS^l","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":112360,"triangles":2280,"vertices":6840,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.8500944601512462,2]},"sizeMeters":[4,0.85,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:26.719Z","updatedAt":"2026-09-07T20:36:26.856Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25015/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OverflowWeirUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25015/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25015/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25015/v1/model.glb\" alt=\"Overflow Weir (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25015/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25015/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25014","slug":"undercity-sewers-and-thieves-den-stepped-drop-15fec415","title":"Stepped Drop (Undercity Sewers and Thieves Den)","summary":"Five transverse stepped stone drops for a cascading sewer reach.","description":"Five transverse stepped stone drops for a cascading sewer reach. Dimensions 4.00 × 0.62 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-stepped-drop-15fec415","cdnUrl":"https://cdn.3dassets.dev/assets/25014/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-stepped-drop-15fec415","thumbnailUrl":"https://cdn.3dassets.dev/assets/25014/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25014/v1/poster.webp","blurhash":"U39%@n~p00D%%MxaM{R*009F?uWAIBIVtR$*","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":127900,"triangles":2604,"vertices":7812,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.62000762694516,2]},"sizeMeters":[4,0.62,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:25.710Z","updatedAt":"2026-09-07T20:36:25.849Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25014/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteppedDropUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25014/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25014/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25014/v1/model.glb\" alt=\"Stepped Drop (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25014/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25014/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25017","slug":"undercity-sewers-and-thieves-den-pillar-bay-8ba11fed","title":"Pillar Bay (Undercity Sewers and Thieves Den)","summary":"Reinforced vault bay with eight-course stone piers and a clear central channel.","description":"Reinforced vault bay with eight-course stone piers and a clear central channel. Dimensions 4.00 × 3.56 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-pillar-bay-8ba11fed","cdnUrl":"https://cdn.3dassets.dev/assets/25017/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-pillar-bay-8ba11fed","thumbnailUrl":"https://cdn.3dassets.dev/assets/25017/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25017/v1/poster.webp","blurhash":"U6Aw6d-=00a000RPO@Nw00V@s.OWuOae}@%M","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":256472,"triangles":5268,"vertices":15804,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.5581530650652597,2]},"sizeMeters":[4,3.558,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:25.743Z","updatedAt":"2026-09-07T20:36:25.879Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25017/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PillarBayUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25017/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25017/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25017/v1/model.glb\" alt=\"Pillar Bay (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25017/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25017/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25019","slug":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","title":"Buttressed Wall (Undercity Sewers and Thieves Den)","summary":"Four-metre brick retaining wall reinforced by projecting stone buttresses.","description":"Four-metre brick retaining wall reinforced by projecting stone buttresses. Dimensions 4.00 × 2.50 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","cdnUrl":"https://cdn.3dassets.dev/assets/25019/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","thumbnailUrl":"https://cdn.3dassets.dev/assets/25019/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25019/v1/poster.webp","blurhash":"U6D96YyE1I%~^*~VKi9Z00jD,oM^V@%2R~E1","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":17228,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.0000839259010589899,-0.10112522388801465],"max":[2,2.5012533877743905,0.598725235415553]},"sizeMeters":[4,2.501,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:25.701Z","updatedAt":"2026-09-07T20:36:25.831Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25019/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ButtressedWallUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25019/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25019/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25019/v1/model.glb\" alt=\"Buttressed Wall (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25019/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25019/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25018","slug":"undercity-sewers-and-thieves-den-dry-side-passage-4a580059","title":"Dry Side Passage (Undercity Sewers and Thieves Den)","summary":"Dry two-metre service passage with a paved floor and full arched shell.","description":"Dry two-metre service passage with a paved floor and full arched shell. Dimensions 2.02 × 2.56 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-dry-side-passage-4a580059","cdnUrl":"https://cdn.3dassets.dev/assets/25018/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-dry-side-passage-4a580059","thumbnailUrl":"https://cdn.3dassets.dev/assets/25018/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25018/v1/poster.webp","blurhash":"U3C#@~?u0gvf.n0157~B15K%i^V@10Mx?a={","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":77756,"triangles":1584,"vertices":4752,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0083202705554437,-0.00010070959115467126,-2.007999897003174],"max":[1.0083202705554437,2.5579356592378537,2.007999897003174]},"sizeMeters":[2.017,2.558,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:26.735Z","updatedAt":"2026-09-07T20:36:26.876Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25018/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrySidePassageUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25018/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25018/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25018/v1/model.glb\" alt=\"Dry Side Passage (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25018/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25018/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25020","slug":"undercity-sewers-and-thieves-den-inlet-pipe-wall-3905902e","title":"Inlet Pipe Wall (Undercity Sewers and Thieves Den)","summary":"Brick sidewall and a large riveted inlet pipe projecting into the channel.","description":"Brick sidewall and a large riveted inlet pipe projecting into the channel. Dimensions 4.00 × 2.82 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-inlet-pipe-wall-3905902e","cdnUrl":"https://cdn.3dassets.dev/assets/25020/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-inlet-pipe-wall-3905902e","thumbnailUrl":"https://cdn.3dassets.dev/assets/25020/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25020/v1/poster.webp","blurhash":"U9BC_T}@9Gr?HXxDTcRl4:JU9]EL.lI;xHbv","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":174936,"triangles":3580,"vertices":10740,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,2.82010993100713,2]},"sizeMeters":[4,2.82,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:26.120Z","updatedAt":"2026-09-07T20:36:26.231Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25020/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InletPipeWallUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25020/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25020/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25020/v1/model.glb\" alt=\"Inlet Pipe Wall (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25020/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25020/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25021","slug":"undercity-sewers-and-thieves-den-timber-repair-walkway-acdbccc5","title":"Timber Repair Walkway (Undercity Sewers and Thieves Den)","summary":"Paired temporary timber ledges with four iron barrier posts beside the open channel.","description":"Paired temporary timber ledges with four iron barrier posts beside the open channel. Dimensions 4.00 × 1.44 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-timber-repair-walkway-acdbccc5","cdnUrl":"https://cdn.3dassets.dev/assets/25021/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-timber-repair-walkway-acdbccc5","thumbnailUrl":"https://cdn.3dassets.dev/assets/25021/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25021/v1/poster.webp","blurhash":"U77dwW%2IBS58{RjtQkW00RjX6V?_MtRs:r;","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":137028,"triangles":2712,"vertices":8136,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,1.4399128530994088,2]},"sizeMeters":[4,1.44,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.433Z","updatedAt":"2026-09-07T20:36:27.604Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25021/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberRepairWalkwayUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25021/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25021/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25021/v1/model.glb\" alt=\"Timber Repair Walkway (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25021/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25021/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25025","slug":"undercity-sewers-and-thieves-den-inspection-crossing-b-e85a2074","title":"Inspection Crossing Bay (Undercity Sewers and Thieves Den)","summary":"Anti-slip iron crossing plate bridging the channel between raised maintenance ledges.","description":"Anti-slip iron crossing plate bridging the channel between raised maintenance ledges. Dimensions 4.00 × 0.52 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-inspection-crossing-b-e85a2074","cdnUrl":"https://cdn.3dassets.dev/assets/25025/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-inspection-crossing-b-e85a2074","thumbnailUrl":"https://cdn.3dassets.dev/assets/25025/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25025/v1/poster.webp","blurhash":"U39HCD_M00IUxvt6RjIo00D%SxIVn#NGRj?H","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":157816,"triangles":3252,"vertices":9756,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.5150380645934236,2]},"sizeMeters":[4,0.515,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.801Z","updatedAt":"2026-09-07T20:36:27.908Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25025/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InspectionCrossingBayUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25025/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25025/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25025/v1/model.glb\" alt=\"Inspection Crossing Bay (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25025/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25025/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25022","slug":"undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","title":"Ladder Shaft (Undercity Sewers and Thieves Den)","summary":"Open cylindrical access shaft with twelve recessed iron climbing rungs.","description":"Open cylindrical access shaft with twelve recessed iron climbing rungs. Dimensions 2.44 × 3.40 × 2.44 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","cdnUrl":"https://cdn.3dassets.dev/assets/25022/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/25022/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25022/v1/poster.webp","blurhash":"U4Bew2}?000z?GRjEL%3BmE#s8-T-ooII:WZ","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":127724,"triangles":2624,"vertices":7872,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.2199408283100344,0,-1.2199408283100344],"max":[1.2199408283100344,3.4000000953674316,1.2199408283100344]},"sizeMeters":[2.44,3.4,2.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.536Z","updatedAt":"2026-09-07T20:36:27.654Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25022/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LadderShaftUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25022/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25022/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25022/v1/model.glb\" alt=\"Ladder Shaft (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25022/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25022/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25024","slug":"undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","title":"Manhole Shaft (Undercity Sewers and Thieves Den)","summary":"Narrow masonry manhole shaft with a heavy rolled iron seat at the surface.","description":"Narrow masonry manhole shaft with a heavy rolled iron seat at the surface. Dimensions 1.60 × 2.86 × 1.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","cdnUrl":"https://cdn.3dassets.dev/assets/25024/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","thumbnailUrl":"https://cdn.3dassets.dev/assets/25024/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25024/v1/poster.webp","blurhash":"U39r^G}r000hF2Na$f$*0hI:=_-VSha_n$o3","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":35552,"triangles":704,"vertices":2112,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8000854382011587,0,-0.8000854382011587],"max":[0.8000854382011587,2.8600261974812033,0.8000854382011587]},"sizeMeters":[1.6,2.86,1.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.696Z","updatedAt":"2026-09-07T20:36:27.853Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25024/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ManholeShaftUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25024/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25024/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25024/v1/model.glb\" alt=\"Manhole Shaft (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25024/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25024/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25023","slug":"undercity-sewers-and-thieves-den-pipe-gallery-ec2513ff","title":"Pipe Gallery (Undercity Sewers and Thieves Den)","summary":"Open utility gallery with paired longitudinal pipelines mounted above channel ledges.","description":"Open utility gallery with paired longitudinal pipelines mounted above channel ledges. Dimensions 4.00 × 1.64 × 4.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-pipe-gallery-ec2513ff","cdnUrl":"https://cdn.3dassets.dev/assets/25023/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-pipe-gallery-ec2513ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/25023/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25023/v1/poster.webp","blurhash":"U68qTp.78{i{8{RktQj=00IUS~Rk_MofoM%2","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":260016,"triangles":5312,"vertices":15936,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.0350000858306885],"max":[2,1.6350605754186234,2.0350000858306885]},"sizeMeters":[4,1.635,4.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.574Z","updatedAt":"2026-09-07T20:36:27.721Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25023/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PipeGalleryUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25023/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25023/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25023/v1/model.glb\" alt=\"Pipe Gallery (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25023/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25023/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25026","slug":"undercity-sewers-and-thieves-den-shored-channel-89f3f0cf","title":"Shored Channel (Undercity Sewers and Thieves Den)","summary":"Open sewer reach supported by two complete timber shoring frames.","description":"Open sewer reach supported by two complete timber shoring frames. Dimensions 4.00 × 2.92 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-shored-channel-89f3f0cf","cdnUrl":"https://cdn.3dassets.dev/assets/25026/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-shored-channel-89f3f0cf","thumbnailUrl":"https://cdn.3dassets.dev/assets/25026/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25026/v1/poster.webp","blurhash":"U79H92%M9Gs:00M{x]a#01V[Ioj@_Noy%2xu","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":133788,"triangles":2712,"vertices":8136,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,2.9199893687384373,2]},"sizeMeters":[4,2.92,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:27.958Z","updatedAt":"2026-09-07T20:36:28.096Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25026/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoredChannelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25026/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25026/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25026/v1/model.glb\" alt=\"Shored Channel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25026/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25026/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25027","slug":"undercity-sewers-and-thieves-den-brick-barrel-short-9566651c","title":"Brick Barrel Short (Undercity Sewers and Thieves Den)","summary":"Two-metre filler length of the brick barrel sewer.","description":"Two-metre filler length of the brick barrel sewer. Dimensions 4.00 × 3.61 × 2.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-barrel-short-9566651c","cdnUrl":"https://cdn.3dassets.dev/assets/25027/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-barrel-short-9566651c","thumbnailUrl":"https://cdn.3dassets.dev/assets/25027/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25027/v1/poster.webp","blurhash":"U3ByKlYO00|s*dZ~Gtg#1KrE9GAc2[%g=fDj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":441444,"triangles":9120,"vertices":27360,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-1.00796539057788],"max":[2,3.6079903464708307,1.0079652713685905]},"sizeMeters":[4,3.608,2.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:28.491Z","updatedAt":"2026-09-07T20:36:28.583Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25027/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickBarrelShortUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25027/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25027/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25027/v1/model.glb\" alt=\"Brick Barrel Short (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25027/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25027/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25028","slug":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","title":"Brick Barrel Open Cutaway (Undercity Sewers and Thieves Den)","summary":"Open inspection cutaway retaining the channel and both ledges.","description":"Open inspection cutaway retaining the channel and both ledges. Dimensions 4.00 × 0.47 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","cdnUrl":"https://cdn.3dassets.dev/assets/25028/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","thumbnailUrl":"https://cdn.3dassets.dev/assets/25028/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25028/v1/poster.webp","blurhash":"U39HFK_300IBxvsqocIn00D%k;NFMwSvIV?H","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":102112,"triangles":2064,"vertices":6192,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.4649616182059624,2]},"sizeMeters":[4,0.465,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:28.553Z","updatedAt":"2026-09-07T20:36:28.646Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25028/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickBarrelOpenCutawayUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25028/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25028/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25028/v1/model.glb\" alt=\"Brick Barrel Open Cutaway (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25028/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25028/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25029","slug":"undercity-sewers-and-thieves-den-brick-barrel-collapse-24cbe6db","title":"Brick Barrel Collapsed (Undercity Sewers and Thieves Den)","summary":"Collapsed barrel section with one surviving portal and masonry debris.","description":"Collapsed barrel section with one surviving portal and masonry debris. Dimensions 4.00 × 3.61 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-barrel-collapse-24cbe6db","cdnUrl":"https://cdn.3dassets.dev/assets/25029/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-barrel-collapse-24cbe6db","thumbnailUrl":"https://cdn.3dassets.dev/assets/25029/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25029/v1/poster.webp","blurhash":"U7BW3xGG4UJ64T9tXn$%4:v~9]=y?]%2$*pH","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":184036,"triangles":3756,"vertices":11268,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.6080952203262493,2]},"sizeMeters":[4,3.608,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.307Z","updatedAt":"2026-09-07T20:36:29.436Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25029/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickBarrelCollapsedUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25029/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25029/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25029/v1/model.glb\" alt=\"Brick Barrel Collapsed (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25029/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25029/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25030","slug":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","title":"Ledge Left (Undercity Sewers and Thieves Den)","summary":"Left-only one-metre maintenance ledge.","description":"Left-only one-metre maintenance ledge. Dimensions 1.00 × 0.42 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-ledge-left-f9ece27d","cdnUrl":"https://cdn.3dassets.dev/assets/25030/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-ledge-left-f9ece27d","thumbnailUrl":"https://cdn.3dassets.dev/assets/25030/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25030/v1/poster.webp","blurhash":"U79aHa-pD*xt%M9FIotQ00D%-:kCD%~p-;M|","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6180,"triangles":108,"vertices":324,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-2.00007629627369,0.000032648248628391885,-2],"max":[-0.99992370372631,0.4199673386383498,2]},"sizeMeters":[1,0.42,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.301Z","updatedAt":"2026-09-07T20:36:29.412Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25030/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LedgeLeftUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25030/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25030/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25030/v1/model.glb\" alt=\"Ledge Left (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25030/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25030/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25032","slug":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","title":"Ledge Right (Undercity Sewers and Thieves Den)","summary":"Right-only one-metre maintenance ledge.","description":"Right-only one-metre maintenance ledge. Dimensions 1.00 × 0.42 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-ledge-right-d4735d31","cdnUrl":"https://cdn.3dassets.dev/assets/25032/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-ledge-right-d4735d31","thumbnailUrl":"https://cdn.3dassets.dev/assets/25032/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25032/v1/poster.webp","blurhash":"U79aHa-pD*xt%M9FIotQ00D%-:kCD%~p-;M|","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6180,"triangles":108,"vertices":324,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[0.99992370372631,0.000032648248628391885,-2],"max":[2.00007629627369,0.4199673386383498,2]},"sizeMeters":[1,0.42,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.481Z","updatedAt":"2026-09-07T20:36:29.604Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25032/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LedgeRightUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25032/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25032/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25032/v1/model.glb\" alt=\"Ledge Right (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25032/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25032/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25031","slug":"undercity-sewers-and-thieves-den-ledge-railed-c8e0edfb","title":"Ledge Railed (Undercity Sewers and Thieves Den)","summary":"Open cutaway bay with an iron handrail on the left ledge.","description":"Open cutaway bay with an iron handrail on the left ledge. Dimensions 4.00 × 1.48 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-ledge-railed-c8e0edfb","cdnUrl":"https://cdn.3dassets.dev/assets/25031/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-ledge-railed-c8e0edfb","thumbnailUrl":"https://cdn.3dassets.dev/assets/25031/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25031/v1/poster.webp","blurhash":"U78z}gx]8{RQ4nRjxuW;00V@XRax~pt6oM%2","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":118196,"triangles":2388,"vertices":7164,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,1.4801065125783035,2]},"sizeMeters":[4,1.48,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.429Z","updatedAt":"2026-09-07T20:36:29.541Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25031/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LedgeRailedUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25031/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25031/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25031/v1/model.glb\" alt=\"Ledge Railed (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25031/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25031/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25033","slug":"undercity-sewers-and-thieves-den-dry-passage-short-de3ab330","title":"Dry Passage Short (Undercity Sewers and Thieves Den)","summary":"Two-metre service passage filler.","description":"Two-metre service passage filler. Dimensions 2.02 × 2.56 × 2.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-dry-passage-short-de3ab330","cdnUrl":"https://cdn.3dassets.dev/assets/25033/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-dry-passage-short-de3ab330","thumbnailUrl":"https://cdn.3dassets.dev/assets/25033/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25033/v1/poster.webp","blurhash":"U3CO%c~W00zVqG4-Kj_31%NyITEL72-o-Uid","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":77760,"triangles":1584,"vertices":4752,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0083119819001527,0.000021364446749314037,-1.0080241292128886],"max":[1.0083119819001527,2.5580172538757324,1.0080241292128886]},"sizeMeters":[2.017,2.558,2.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.458Z","updatedAt":"2026-09-07T20:36:29.572Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25033/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryPassageShortUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25033/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25033/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25033/v1/model.glb\" alt=\"Dry Passage Short (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25033/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25033/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25034","slug":"undercity-sewers-and-thieves-den-grille-broken-809874d3","title":"Grille Broken (Undercity Sewers and Thieves Den)","summary":"Broken grille frame with its central bars removed for an access breach.","description":"Broken grille frame with its central bars removed for an access breach. Dimensions 4.00 × 3.02 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-grille-broken-809874d3","cdnUrl":"https://cdn.3dassets.dev/assets/25034/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-grille-broken-809874d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/25034/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25034/v1/poster.webp","blurhash":"UA8#1o%MH@WB00RPxubH8{RjR*ax_Mt7%2xb","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":118200,"triangles":2388,"vertices":7164,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.0200427396223346,2]},"sizeMeters":[4,3.02,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:29.953Z","updatedAt":"2026-09-07T20:36:30.083Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25034/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GrilleBrokenUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25034/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25034/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25034/v1/model.glb\" alt=\"Grille Broken (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25034/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25034/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25036","slug":"undercity-sewers-and-thieves-den-brick-barrel-curve-140cfacc","title":"Brick Barrel Curve (Undercity Sewers and Thieves Den)","summary":"Quarter-turn channel with continuous curved inner and outer ledges and three masonry ribs.","description":"Quarter-turn channel with continuous curved inner and outer ledges and three masonry ribs. Dimensions 4.11 × 3.61 × 4.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-barrel-curve-140cfacc","cdnUrl":"https://cdn.3dassets.dev/assets/25036/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-barrel-curve-140cfacc","thumbnailUrl":"https://cdn.3dassets.dev/assets/25036/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25036/v1/poster.webp","blurhash":"U4Bo:S~A00sD00RP.8xa00E#VZIU8uNe^jx[","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":244040,"triangles":5020,"vertices":15060,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989867044285,-2],"max":[2.1080000400543213,3.608094990137939,2.1080000400543213]},"sizeMeters":[4.108,3.608,4.108],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:30.346Z","updatedAt":"2026-09-07T20:36:30.450Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25036/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickBarrelCurveUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25036/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25036/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25036/v1/model.glb\" alt=\"Brick Barrel Curve (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25036/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25036/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25035","slug":"undercity-sewers-and-thieves-den-brick-channel-slope-0ebbbaa6","title":"Brick Channel Slope (Undercity Sewers and Thieves Den)","summary":"Four-metre sloping channel raising waterway and both maintenance ledges by half a metre.","description":"Four-metre sloping channel raising waterway and both maintenance ledges by half a metre. Dimensions 4.00 × 0.96 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-channel-slope-0ebbbaa6","cdnUrl":"https://cdn.3dassets.dev/assets/25035/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-channel-slope-0ebbbaa6","thumbnailUrl":"https://cdn.3dassets.dev/assets/25035/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25035/v1/poster.webp","blurhash":"U18EJ6.800D*.8?tM|E100R5.lR%8w00R#?a","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":102056,"triangles":2064,"vertices":6192,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.00006805389194569633,-2],"max":[2,0.9635043742796447,2]},"sizeMeters":[4,0.964,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.304Z","updatedAt":"2026-09-07T20:36:31.439Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25035/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickChannelSlopeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25035/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25035/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25035/v1/model.glb\" alt=\"Brick Channel Slope (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25035/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25035/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25039","slug":"undercity-sewers-and-thieves-den-t-junction-460f139e","title":"T Junction (Undercity Sewers and Thieves Den)","summary":"Three-way open water junction with continuous terminal maintenance ledges.","description":"Three-way open water junction with continuous terminal maintenance ledges. Dimensions 4.00 × 0.42 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-t-junction-460f139e","cdnUrl":"https://cdn.3dassets.dev/assets/25039/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-t-junction-460f139e","thumbnailUrl":"https://cdn.3dassets.dev/assets/25039/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25039/v1/poster.webp","blurhash":"U28qj8~p000K_3s:IoNF009GY4xH00WrRQ$,","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":43728,"triangles":864,"vertices":2592,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.4199069218243537,2]},"sizeMeters":[4,0.42,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.123Z","updatedAt":"2026-09-07T20:36:31.236Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25039/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TJunctionUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25039/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25039/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25039/v1/model.glb\" alt=\"T Junction (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25039/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25039/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25037","slug":"undercity-sewers-and-thieves-den-cross-junction-f4538362","title":"Cross Junction (Undercity Sewers and Thieves Den)","summary":"Four-way open channel crossing with corner maintenance pads.","description":"Four-way open channel crossing with corner maintenance pads. Dimensions 4.00 × 0.42 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cross-junction-f4538362","cdnUrl":"https://cdn.3dassets.dev/assets/25037/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cross-junction-f4538362","thumbnailUrl":"https://cdn.3dassets.dev/assets/25037/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25037/v1/poster.webp","blurhash":"U17_QE_M00NF.RIoR%%K00DiLIIVHY?a9G9H","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":38576,"triangles":756,"vertices":2268,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.4199069218243537,2]},"sizeMeters":[4,0.42,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:30.987Z","updatedAt":"2026-09-07T20:36:31.105Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25037/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CrossJunctionUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25037/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25037/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25037/v1/model.glb\" alt=\"Cross Junction (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25037/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25037/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25038","slug":"undercity-sewers-and-thieves-den-y-fork-a3b2f334","title":"Y Fork (Undercity Sewers and Thieves Den)","summary":"Continuous polygonal Y-fork with two diagonal two-metre channels, outer walks and a central maintenance island.","description":"Continuous polygonal Y-fork with two diagonal two-metre channels, outer walks and a central maintenance island. Dimensions 8.49 × 0.42 × 6.24 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-y-fork-a3b2f334","cdnUrl":"https://cdn.3dassets.dev/assets/25038/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-y-fork-a3b2f334","thumbnailUrl":"https://cdn.3dassets.dev/assets/25038/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25038/v1/poster.webp","blurhash":"U57BJ-x[00sDtQazjaof00M{_MR*MykBW.RQ","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":7692,"triangles":128,"vertices":384,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-4.242640495300293,0.000008029568155078215,-4.242542568268721],"max":[4.242640495300293,0.4197560773811847,1.9999560675331587]},"sizeMeters":[8.485,0.42,6.242],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.088Z","updatedAt":"2026-09-07T20:36:31.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25038/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YForkUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25038/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25038/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25038/v1/model.glb\" alt=\"Y Fork (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25038/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25038/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25041","slug":"undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","title":"Cistern Hall Floor (Undercity Sewers and Thieves Den)","summary":"Six-metre cistern floor with central water pool and perimeter access margin.","description":"Six-metre cistern floor with central water pool and perimeter access margin. Dimensions 6.00 × 0.40 × 6.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","cdnUrl":"https://cdn.3dassets.dev/assets/25041/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","thumbnailUrl":"https://cdn.3dassets.dev/assets/25041/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25041/v1/poster.webp","blurhash":"U18qc_-;00WAOSE1n+%M00IUuNIo+%~WX88{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20384,"triangles":432,"vertices":1296,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-3,-0.00017242920601036327,-3],"max":[3,0.3999786415137152,3]},"sizeMeters":[6,0.4,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.242Z","updatedAt":"2026-09-07T20:36:31.376Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25041/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CisternHallFloorUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25041/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25041/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25041/v1/model.glb\" alt=\"Cistern Hall Floor (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25041/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25041/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25040","slug":"undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7","title":"Cistern Columns (Undercity Sewers and Thieves Den)","summary":"Four cylindrical masonry columns with broad stone bases and capitals.","description":"Four cylindrical masonry columns with broad stone bases and capitals. Dimensions 3.80 × 3.00 × 3.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7","cdnUrl":"https://cdn.3dassets.dev/assets/25040/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/25040/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25040/v1/poster.webp","blurhash":"U4Av::?t4nx,~qjLM~RU0#Vv0MIX--obD%os","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57040,"triangles":1152,"vertices":3456,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.899999976158142,-0.0001342626174900552,-1.899999976158142],"max":[1.899999976158142,3.00013426261749,1.899999976158142]},"sizeMeters":[3.8,3,3.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.173Z","updatedAt":"2026-09-07T20:36:31.313Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25040/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CisternColumnsUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25040/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25040/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25040/v1/model.glb\" alt=\"Cistern Columns (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25040/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25040/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25042","slug":"undercity-sewers-and-thieves-den-cistern-vault-590571b6","title":"Cistern Vault (Undercity Sewers and Thieves Den)","summary":"Broad free-standing cistern vault shell spanning 5.4 metres; place on column capitals.","description":"Broad free-standing cistern vault shell spanning 5.4 metres; place on column capitals. Dimensions 5.92 × 3.26 × 4.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cistern-vault-590571b6","cdnUrl":"https://cdn.3dassets.dev/assets/25042/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cistern-vault-590571b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/25042/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25042/v1/poster.webp","blurhash":"U8BLeW5l0z}s-Bs:I;R*0MsnkBI;5RNa-UxG","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71912,"triangles":1476,"vertices":4428,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-2.9582574367523193,0.00014776696319729332,-2.00804351659429],"max":[2.9582574367523193,3.257869296177672,2.00804351659429]},"sizeMeters":[5.917,3.258,4.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:31.672Z","updatedAt":"2026-09-07T20:36:31.775Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25042/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CisternVaultUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25042/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25042/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25042/v1/model.glb\" alt=\"Cistern Vault (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25042/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25042/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25043","slug":"undercity-sewers-and-thieves-den-penstock-chamber-ab93071e","title":"Penstock Chamber (Undercity Sewers and Thieves Den)","summary":"Widened channel chamber with retaining walls and a large manual penstock wheel.","description":"Widened channel chamber with retaining walls and a large manual penstock wheel. Dimensions 6.00 × 2.92 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-penstock-chamber-ab93071e","cdnUrl":"https://cdn.3dassets.dev/assets/25043/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-penstock-chamber-ab93071e","thumbnailUrl":"https://cdn.3dassets.dev/assets/25043/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25043/v1/poster.webp","blurhash":"U5B3E5~p8{QmL#=Z-;E*00MdEjKi.mpINHR6","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":173104,"triangles":3612,"vertices":10836,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-3,-0.000060427989866981835,-2.000122074037904],"max":[3.001199960708618,2.9200076612178307,2.000122074037904]},"sizeMeters":[6.001,2.92,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:32.208Z","updatedAt":"2026-09-07T20:36:32.308Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25043/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PenstockChamberUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25043/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25043/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25043/v1/model.glb\" alt=\"Penstock Chamber (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25043/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25043/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25044","slug":"undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","title":"Pump Room Shell (Undercity Sewers and Thieves Den)","summary":"Open cutaway pump room shell with masonry walls, dry floor and inset rear arch.","description":"Open cutaway pump room shell with masonry walls, dry floor and inset rear arch. Dimensions 6.00 × 3.20 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","cdnUrl":"https://cdn.3dassets.dev/assets/25044/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","thumbnailUrl":"https://cdn.3dassets.dev/assets/25044/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25044/v1/poster.webp","blurhash":"UADbpHxt01xau*xGpIWB02nOS#OFy?xuRPI;","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":98436,"triangles":2016,"vertices":6048,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-3,0.00002136444674930016,-2.000122074037904],"max":[3,3.200228914153044,2.000122074037904]},"sizeMeters":[6,3.2,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.862Z","updatedAt":"2026-09-07T20:36:33.974Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25044/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpRoomShellUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25044/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25044/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25044/v1/model.glb\" alt=\"Pump Room Shell (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25044/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25044/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25048","slug":"undercity-sewers-and-thieves-den-outfall-arch-636cb329","title":"Outfall Arch (Undercity Sewers and Thieves Den)","summary":"Large dressed-stone outfall arch with projecting apron and a water outlet.","description":"Large dressed-stone outfall arch with projecting apron and a water outlet. Dimensions 4.50 × 3.36 × 2.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-outfall-arch-636cb329","cdnUrl":"https://cdn.3dassets.dev/assets/25048/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-outfall-arch-636cb329","thumbnailUrl":"https://cdn.3dassets.dev/assets/25048/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25048/v1/poster.webp","blurhash":"U4BWxcIp00xuIAxtD%M{00ob4nozE2?H~WDj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":82860,"triangles":1692,"vertices":5076,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.25,0.00010910054771273714,-1],"max":[2.25,3.357908105644304,1]},"sizeMeters":[4.5,3.358,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.049Z","updatedAt":"2026-09-07T20:36:33.175Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25048/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OutfallArchUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25048/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25048/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25048/v1/model.glb\" alt=\"Outfall Arch (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25048/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25048/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25047","slug":"undercity-sewers-and-thieves-den-stone-channel-bridge-68282026","title":"Stone Channel Bridge (Undercity Sewers and Thieves Den)","summary":"Low arched stone footbridge crossing a two-metre channel on solid end bearings.","description":"Low arched stone footbridge crossing a two-metre channel on solid end bearings. Dimensions 3.15 × 0.60 × 1.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-stone-channel-bridge-68282026","cdnUrl":"https://cdn.3dassets.dev/assets/25047/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-stone-channel-bridge-68282026","thumbnailUrl":"https://cdn.3dassets.dev/assets/25047/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25047/v1/poster.webp","blurhash":"U49@bMxI00?b?a~pRRDj00X4?uDk0000x[?b","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":73664,"triangles":1512,"vertices":4536,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5750000476837158,-0.000054629344100776134,-0.6249145670929895],"max":[1.5750000476837158,0.5975100116912078,0.6249145670929895]},"sizeMeters":[3.15,0.598,1.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.036Z","updatedAt":"2026-09-07T20:36:33.185Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25047/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneChannelBridgeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25047/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25047/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25047/v1/model.glb\" alt=\"Stone Channel Bridge (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25047/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25047/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25045","slug":"undercity-sewers-and-thieves-den-plank-bridge-379c52f6","title":"Plank Bridge (Undercity Sewers and Thieves Den)","summary":"Timber plank bridge with two continuous supporting stringers and fitted cross boards.","description":"Timber plank bridge with two continuous supporting stringers and fitted cross boards. Dimensions 2.90 × 0.29 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-plank-bridge-379c52f6","cdnUrl":"https://cdn.3dassets.dev/assets/25045/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-plank-bridge-379c52f6","thumbnailUrl":"https://cdn.3dassets.dev/assets/25045/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25045/v1/poster.webp","blurhash":"U15;HrkC0gTC]R=wOqEh02#m^PR.1z5Sv~$i","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62620,"triangles":972,"vertices":2916,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.4500000476837158,-0.00000915735155988806,-0.6499893074524313],"max":[1.4500000476837158,0.28994765730858557,0.6499893074524313]},"sizeMeters":[2.9,0.29,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.034Z","updatedAt":"2026-09-07T20:36:33.160Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25045/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlankBridgeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25045/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25045/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25045/v1/model.glb\" alt=\"Plank Bridge (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25045/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25045/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25046","slug":"undercity-sewers-and-thieves-den-iron-footbridge-84900ff4","title":"Iron Footbridge (Undercity Sewers and Thieves Den)","summary":"Riveted iron footbridge with paired handrails and twelve anti-slip deck bars.","description":"Riveted iron footbridge with paired handrails and twelve anti-slip deck bars. Dimensions 3.00 × 1.05 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-footbridge-84900ff4","cdnUrl":"https://cdn.3dassets.dev/assets/25046/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-footbridge-84900ff4","thumbnailUrl":"https://cdn.3dassets.dev/assets/25046/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25046/v1/poster.webp","blurhash":"U03[#bKg00=zL2?v$MMe00xu?HMd~W0K9F#7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":110600,"triangles":2268,"vertices":6804,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00008875879234515605,-0.6499069185460982],"max":[1.5,1.0550887063402579,0.6499069185460982]},"sizeMeters":[3,1.055,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.015Z","updatedAt":"2026-09-07T20:36:33.112Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25046/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronFootbridgeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25046/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25046/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25046/v1/model.glb\" alt=\"Iron Footbridge (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25046/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25046/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25049","slug":"undercity-sewers-and-thieves-den-spiral-stair-to-surfa-7d25bf55","title":"Spiral Stair To Surface (Undercity Sewers and Thieves Den)","summary":"Eighteen-tread spiral access stair rising 2.88 m around a central iron mast.","description":"Eighteen-tread spiral access stair rising 2.88 m around a central iron mast. Dimensions 2.04 × 3.64 × 2.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-spiral-stair-to-surfa-7d25bf55","cdnUrl":"https://cdn.3dassets.dev/assets/25049/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-spiral-stair-to-surfa-7d25bf55","thumbnailUrl":"https://cdn.3dassets.dev/assets/25049/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25049/v1/poster.webp","blurhash":"U26H+J?u00004noe?bRk00IU~p?aIVWBxtkC","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":221516,"triangles":4576,"vertices":13728,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0200384359507886,0,-1.0200384359507886],"max":[1.0200384359507886,3.642690658569336,1.0200384359507886]},"sizeMeters":[2.04,3.643,2.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.192Z","updatedAt":"2026-09-07T20:36:33.344Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25049/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpiralStairToSurfaceUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25049/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25049/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25049/v1/model.glb\" alt=\"Spiral Stair To Surface (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25049/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25049/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25050","slug":"undercity-sewers-and-thieves-den-culvert-mouth-85abe450","title":"Culvert Mouth (Undercity Sewers and Thieves Den)","summary":"Short low culvert mouth with a thick stone arch and apron.","description":"Short low culvert mouth with a thick stone arch and apron. Dimensions 2.60 × 1.76 × 2.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-culvert-mouth-85abe450","cdnUrl":"https://cdn.3dassets.dev/assets/25050/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-culvert-mouth-85abe450","thumbnailUrl":"https://cdn.3dassets.dev/assets/25050/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25050/v1/poster.webp","blurhash":"U3CQ0u-p00-;00D%RQ-;00NGRjIV_3?b~qIU","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":77092,"triangles":1584,"vertices":4752,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.2999999523162842,0.00006944680376186341,-1.0000640521877675],"max":[1.2999999523162842,1.7579477355463968,1.0000640521877675]},"sizeMeters":[2.6,1.758,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.549Z","updatedAt":"2026-09-07T20:36:33.654Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25050/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CulvertMouthUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25050/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25050/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25050/v1/model.glb\" alt=\"Culvert Mouth (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25050/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25050/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25051","slug":"undercity-sewers-and-thieves-den-settling-tank-252e41ca","title":"Settling Tank (Undercity Sewers and Thieves Den)","summary":"Open settling tank with perimeter masonry and a central submerged baffle.","description":"Open settling tank with perimeter masonry and a central submerged baffle. Dimensions 4.00 × 1.15 × 3.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-settling-tank-252e41ca","cdnUrl":"https://cdn.3dassets.dev/assets/25051/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-settling-tank-252e41ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/25051/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25051/v1/poster.webp","blurhash":"U4A]g9~C01aO+Grro|kW00D%J*NGY5%MFxEL","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38640,"triangles":756,"vertices":2268,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00013198659301921767,-1.49992370372631],"max":[2,1.1500762873329933,1.49992370372631]},"sizeMeters":[4,1.15,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:33.965Z","updatedAt":"2026-09-07T20:36:34.073Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25051/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SettlingTankUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25051/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25051/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25051/v1/model.glb\" alt=\"Settling Tank (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25051/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25051/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25052","slug":"undercity-sewers-and-thieves-den-weir-pool-f7cf64a3","title":"Weir Pool (Undercity Sewers and Thieves Den)","summary":"Broad shallow settling pool with a transverse stone overflow sill.","description":"Broad shallow settling pool with a transverse stone overflow sill. Dimensions 4.00 × 0.53 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-weir-pool-f7cf64a3","cdnUrl":"https://cdn.3dassets.dev/assets/25052/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-weir-pool-f7cf64a3","thumbnailUrl":"https://cdn.3dassets.dev/assets/25052/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25052/v1/poster.webp","blurhash":"U18#7%?v00-X%LIU9I-X00MdPU4.9E?b~n9Y","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17192,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00009932344322960418,-2],"max":[2,0.5299006479465409,2]},"sizeMeters":[4,0.53,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:36:34.714Z","updatedAt":"2026-09-07T21:00:40.020Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25052/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeirPoolUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25052/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25052/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25052/v1/model.glb\" alt=\"Weir Pool (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25052/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25052/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25054","slug":"undercity-sewers-and-thieves-den-silt-bank-78808d04","title":"Silt Bank (Undercity Sewers and Thieves Den)","summary":"Low accumulated silt bank formed from overlapping smooth sediment humps.","description":"Low accumulated silt bank formed from overlapping smooth sediment humps. Dimensions 2.09 × 0.27 × 1.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-silt-bank-78808d04","cdnUrl":"https://cdn.3dassets.dev/assets/25054/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-silt-bank-78808d04","thumbnailUrl":"https://cdn.3dassets.dev/assets/25054/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25054/v1/poster.webp","blurhash":"U36*zA.700WAx]%MoeM{00IB_NafDi9FV]%M","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":127768,"triangles":2640,"vertices":7920,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.0440000295639038,0.00007455426578059643,-0.6300258365000345],"max":[1.0440000295639038,0.26592544835682375,0.6300258365000345]},"sizeMeters":[2.088,0.266,1.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:39.990Z","updatedAt":"2026-09-07T21:00:40.140Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25054/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SiltBankUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25054/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25054/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25054/v1/model.glb\" alt=\"Silt Bank (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25054/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25054/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25053","slug":"undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","title":"Debris Dam (Undercity Sewers and Thieves Den)","summary":"Tangled discarded beams and a rusted metal container blocking a channel edge.","description":"Tangled discarded beams and a rusted metal container blocking a channel edge. Dimensions 1.83 × 0.30 × 1.66 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","cdnUrl":"https://cdn.3dassets.dev/assets/25053/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/25053/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25053/v1/poster.webp","blurhash":"U35zjzxG0gV@Efa{$*bH0gNa}?kC^PoL9uae","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":63964,"triangles":972,"vertices":2916,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.9157118797302246,-0.000009150585849715398,-0.8323205332805957],"max":[0.9157118797302246,0.30000916250677867,0.8323205332805957]},"sizeMeters":[1.831,0.3,1.665],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:39.986Z","updatedAt":"2026-09-07T21:00:40.142Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25053/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DebrisDamUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25053/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25053/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25053/v1/model.glb\" alt=\"Debris Dam (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25053/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25053/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25055","slug":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","title":"Rat Nest Heap (Undercity Sewers and Thieves Den)","summary":"Nest of rag scraps, straw-coloured lumps and short splinters; no live animals.","description":"Nest of rag scraps, straw-coloured lumps and short splinters; no live animals. Dimensions 0.73 × 0.18 × 0.74 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-rat-nest-heap-97075121","cdnUrl":"https://cdn.3dassets.dev/assets/25055/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-rat-nest-heap-97075121","thumbnailUrl":"https://cdn.3dassets.dev/assets/25055/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25055/v1/poster.webp","blurhash":"U9AAU9a$00axt7ofWBfP00j?~pj[M{WAofj]","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":166308,"triangles":3232,"vertices":9696,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3652102209321347,0.00001973283371992096,-0.36808598041534424],"max":[0.3652102209321347,0.17598026621260576,0.36808598041534424]},"sizeMeters":[0.73,0.176,0.736],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:39.996Z","updatedAt":"2026-09-07T21:00:40.144Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25055/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RatNestHeapUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25055/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25055/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25055/v1/model.glb\" alt=\"Rat Nest Heap (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25055/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25055/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25056","slug":"undercity-sewers-and-thieves-den-brick-vault-junction-1b38e1f3","title":"Brick Vault Junction (Undercity Sewers and Thieves Den)","summary":"Vaulted junction frame with an open cross channel and paired terminal masonry ribs.","description":"Vaulted junction frame with an open cross channel and paired terminal masonry ribs. Dimensions 4.00 × 3.61 × 4.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-vault-junction-1b38e1f3","cdnUrl":"https://cdn.3dassets.dev/assets/25056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-vault-junction-1b38e1f3","thumbnailUrl":"https://cdn.3dassets.dev/assets/25056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25056/v1/poster.webp","blurhash":"U4B._u-:HZI=HX9GK$%K0MJU0z,:LfI;=x~B","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":181036,"triangles":3708,"vertices":11124,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,3.6080975881870216,2]},"sizeMeters":[4,3.608,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:40.120Z","updatedAt":"2026-09-07T21:00:40.216Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickVaultJunctionUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25056/v1/model.glb\" alt=\"Brick Vault Junction (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25056/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25057","slug":"undercity-sewers-and-thieves-den-cistern-inspection-is-813630c2","title":"Cistern Inspection Island (Undercity Sewers and Thieves Den)","summary":"Circular raised cistern inspection island with a short safety rail.","description":"Circular raised cistern inspection island with a short safety rail. Dimensions 1.80 × 1.52 × 1.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cistern-inspection-is-813630c2","cdnUrl":"https://cdn.3dassets.dev/assets/25057/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cistern-inspection-is-813630c2","thumbnailUrl":"https://cdn.3dassets.dev/assets/25057/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25057/v1/poster.webp","blurhash":"U48N%%-;00My00IU?ux[00kCaiM{_Mxu%LW-","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26604,"triangles":516,"vertices":1548,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000044861214330532695,-0.8999999761581421],"max":[0.8999999761581421,1.5200282316158662,0.8999999761581421]},"sizeMeters":[1.8,1.52,1.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:40.234Z","updatedAt":"2026-09-07T21:00:40.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25057/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CisternInspectionIslandUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25057/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25057/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25057/v1/model.glb\" alt=\"Cistern Inspection Island (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25057/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25057/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25058","slug":"undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06","title":"Arched Den Threshold (Undercity Sewers and Thieves Den)","summary":"Dressed stone doorway and dry timber threshold marking the concealed den entrance.","description":"Dressed stone doorway and dry timber threshold marking the concealed den entrance. Dimensions 2.26 × 2.33 × 1.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06","cdnUrl":"https://cdn.3dassets.dev/assets/25058/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06","thumbnailUrl":"https://cdn.3dassets.dev/assets/25058/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25058/v1/poster.webp","blurhash":"U497R%%L00tS*I-:DPDj00R*xuIB8_R5%gOE","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":84300,"triangles":1584,"vertices":4752,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.1282006165769347,-0.00003967474050421693,-0.4999633886250432],"max":[1.1282006165769347,2.328017234802246,0.4999633886250432]},"sizeMeters":[2.256,2.328,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:40.228Z","updatedAt":"2026-09-07T21:00:40.342Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25058/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchedDenThresholdUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25058/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25058/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25058/v1/model.glb\" alt=\"Arched Den Threshold (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25058/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25058/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27194","slug":"undercity-sewers-and-thieves-den-archimedean-screw-pum-a5ba8ceb","title":"Archimedean Screw Pump (Undercity Sewers and Thieves Den)","summary":"Exposed helical lift screw on a longitudinal shaft, supported in twin bearings above a masonry bed.","description":"Exposed helical lift screw on a longitudinal shaft, supported in twin bearings above a masonry bed. Dimensions 1.40 × 1.00 × 2.93 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-archimedean-screw-pum-a5ba8ceb","cdnUrl":"https://cdn.3dassets.dev/assets/27194/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-archimedean-screw-pum-a5ba8ceb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27194/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27194/v1/poster.webp","blurhash":"U59G~y%201xu8xD%OEt700x[?aIU?^?H-6xu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":140796,"triangles":2864,"vertices":8592,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7001068028604179,0.00002136614937536807,-1.465000033378601],"max":[0.7001068028604179,0.9999562202374317,1.465000033378601]},"sizeMeters":[1.4,1,2.93],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:41.914Z","updatedAt":"2026-09-07T21:00:42.036Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27194/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchimedeanScrewPumpUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27194/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27194/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27194/v1/model.glb\" alt=\"Archimedean Screw Pump (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27194/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27194/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27193","slug":"undercity-sewers-and-thieves-den-beam-pump-94312406","title":"Beam Pump (Undercity Sewers and Thieves Den)","summary":"Rocking beam pump with cylinder, piston rod, central fulcrum and counterweight.","description":"Rocking beam pump with cylinder, piston rod, central fulcrum and counterweight. Dimensions 2.06 × 2.01 × 1.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-beam-pump-94312406","cdnUrl":"https://cdn.3dassets.dev/assets/27193/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-beam-pump-94312406","thumbnailUrl":"https://cdn.3dassets.dev/assets/27193/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27193/v1/poster.webp","blurhash":"U47-Wg=|009u00j;_NNI-:RjD*oz?]tRRPnh","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58052,"triangles":1008,"vertices":3024,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.0307073593139648,0.00001709069599073465,-0.5000579719209917],"max":[1.0307073593139648,2.0067835892664196,0.5000579719209917]},"sizeMeters":[2.061,2.007,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:41.818Z","updatedAt":"2026-09-07T21:00:41.931Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27193/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BeamPumpUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27193/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27193/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27193/v1/model.glb\" alt=\"Beam Pump (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27193/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27193/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27195","slug":"undercity-sewers-and-thieves-den-valve-wheel-4a516b47","title":"Valve Wheel (Undercity Sewers and Thieves Den)","summary":"Six-spoke rusted hand wheel with central spindle hub.","description":"Six-spoke rusted hand wheel with central spindle hub. Dimensions 0.77 × 0.77 × 0.21 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-valve-wheel-4a516b47","cdnUrl":"https://cdn.3dassets.dev/assets/27195/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-valve-wheel-4a516b47","thumbnailUrl":"https://cdn.3dassets.dev/assets/27195/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27195/v1/poster.webp","blurhash":"U38WHbEh01s9}rs.9_nk0g$%NxWCw{WEEMEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55940,"triangles":1128,"vertices":3384,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.38499999046325684,0,-0.10751388483097354],"max":[0.38499999046325684,0.7699999809265137,0.1075221628750366]},"sizeMeters":[0.77,0.77,0.215],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:41.978Z","updatedAt":"2026-09-07T21:00:42.105Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27195/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ValveWheelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27195/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27195/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27195/v1/model.glb\" alt=\"Valve Wheel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27195/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27195/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27196","slug":"undercity-sewers-and-thieves-den-penstock-gate-db7da329","title":"Penstock Gate (Undercity Sewers and Thieves Den)","summary":"Sliding iron gate with named gate slab, guides, screw stem and hand wheel.","description":"Sliding iron gate with named gate slab, guides, screw stem and hand wheel. Dimensions 1.65 × 2.77 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-penstock-gate-db7da329","cdnUrl":"https://cdn.3dassets.dev/assets/27196/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-penstock-gate-db7da329","thumbnailUrl":"https://cdn.3dassets.dev/assets/27196/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27196/v1/poster.webp","blurhash":"U23RwFbY0MnT}?kB58aN$xofNMM|Scs:sEM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":82564,"triangles":1656,"vertices":4968,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8250140836744047,0,-0.13991418558455374],"max":[0.8250140836744047,2.774999886751175,0.13991418558455374]},"sizeMeters":[1.65,2.775,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:41.994Z","updatedAt":"2026-09-07T21:00:42.116Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27196/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PenstockGateUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27196/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27196/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27196/v1/model.glb\" alt=\"Penstock Gate (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27196/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27196/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27198","slug":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","title":"Iron Pipe Straight (Undercity Sewers and Thieves Den)","summary":"Hollow two-metre cast iron pipe with bolted end flanges.","description":"Hollow two-metre cast iron pipe with bolted end flanges. Dimensions 0.55 × 0.55 × 2.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","cdnUrl":"https://cdn.3dassets.dev/assets/27198/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27198/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27198/v1/poster.webp","blurhash":"U55}25n-}prw%15Ss*R+9aELIrSfRQ?Foh%1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70028,"triangles":1408,"vertices":4224,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.27496184299567483,0.000038162964789645315,-1.034999966621399],"max":[0.27496184299567483,0.5499618489561393,1.034999966621399]},"sizeMeters":[0.55,0.55,2.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:43.629Z","updatedAt":"2026-09-07T21:00:43.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27198/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronPipeStraightUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27198/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27198/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27198/v1/model.glb\" alt=\"Iron Pipe Straight (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27198/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27198/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27197","slug":"undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","title":"Iron Pipe Elbow (Undercity Sewers and Thieves Den)","summary":"Open quarter-turn pipe elbow with flanged ends.","description":"Open quarter-turn pipe elbow with flanged ends. Dimensions 0.90 × 0.53 × 0.90 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","cdnUrl":"https://cdn.3dassets.dev/assets/27197/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27197/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27197/v1/poster.webp","blurhash":"U56@H0w|}V,[}tsm$gxZ0fS09_Se0fR+JAI;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":112420,"triangles":2304,"vertices":6912,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.000025795424836216885,-0.44999998807907104],"max":[0.44999998807907104,0.5300257668146067,0.44999998807907104]},"sizeMeters":[0.9,0.53,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:43.598Z","updatedAt":"2026-09-07T21:00:43.725Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27197/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronPipeElbowUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27197/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27197/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27197/v1/model.glb\" alt=\"Iron Pipe Elbow (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27197/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27197/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27200","slug":"undercity-sewers-and-thieves-den-iron-pipe-tee-cf0d76e1","title":"Iron Pipe Tee (Undercity Sewers and Thieves Den)","summary":"Tee fitting with three bolted pipe mouths.","description":"Tee fitting with three bolted pipe mouths. Dimensions 1.11 × 0.55 × 1.67 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-pipe-tee-cf0d76e1","cdnUrl":"https://cdn.3dassets.dev/assets/27200/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-pipe-tee-cf0d76e1","thumbnailUrl":"https://cdn.3dassets.dev/assets/27200/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27200/v1/poster.webp","blurhash":"U570_C$*WV~A-UIpIoow0fEMI;EfJ~xt%2$+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":137660,"triangles":2816,"vertices":8448,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5549677887110451,-0.0000375247383283539,-0.8349999785423279],"max":[0.5549677887110451,0.5500375366592574,0.8349999785423279]},"sizeMeters":[1.11,0.55,1.67],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:43.677Z","updatedAt":"2026-09-07T21:00:43.784Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27200/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronPipeTeeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27200/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27200/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27200/v1/model.glb\" alt=\"Iron Pipe Tee (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27200/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27200/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27199","slug":"undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","title":"Iron Pipe Flange (Undercity Sewers and Thieves Den)","summary":"Loose heavy circular pipe flange with open bore and raised sealing lip.","description":"Loose heavy circular pipe flange with open bore and raised sealing lip. Dimensions 0.60 × 0.60 × 0.12 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","cdnUrl":"https://cdn.3dassets.dev/assets/27199/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","thumbnailUrl":"https://cdn.3dassets.dev/assets/27199/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27199/v1/poster.webp","blurhash":"U396gl%K00RQ}X$%E*Eg0hwe$g9^9]W=xFE2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29356,"triangles":768,"vertices":2304,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0,-0.05998718460969654],"max":[0.30000001192092896,0.6000000238418579,0.05998718460969654]},"sizeMeters":[0.6,0.6,0.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:43.646Z","updatedAt":"2026-09-07T21:00:43.756Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27199/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronPipeFlangeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27199/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27199/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27199/v1/model.glb\" alt=\"Iron Pipe Flange (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27199/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27199/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27201","slug":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","title":"Drain Grate (Undercity Sewers and Thieves Den)","summary":"Removable rectangular drain grate with eight open drainage slots.","description":"Removable rectangular drain grate with eight open drainage slots. Dimensions 1.07 × 0.06 × 1.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","cdnUrl":"https://cdn.3dassets.dev/assets/27201/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27201/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27201/v1/poster.webp","blurhash":"U01{g9s;Hqo_.TjbVWkU00WBt8WB00bFgiRQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":63264,"triangles":1296,"vertices":3888,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5350000262260437,0.000022886295022672698,-0.5350000262260437],"max":[0.5350000262260437,0.05997711146980317,0.5350000262260437]},"sizeMeters":[1.07,0.06,1.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:45.283Z","updatedAt":"2026-09-07T21:00:45.404Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27201/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrainGrateUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27201/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27201/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27201/v1/model.glb\" alt=\"Drain Grate (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27201/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27201/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27202","slug":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","title":"Gutter Channel (Undercity Sewers and Thieves Den)","summary":"Narrow open stone gutter with continuous raised sides.","description":"Narrow open stone gutter with continuous raised sides. Dimensions 0.50 × 0.28 × 2.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","cdnUrl":"https://cdn.3dassets.dev/assets/27202/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","thumbnailUrl":"https://cdn.3dassets.dev/assets/27202/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27202/v1/poster.webp","blurhash":"U69Qv.%2Djxa%f4oM{xu00D*%ft7IB~p%Mf6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16544,"triangles":324,"vertices":972,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.250038148136845,-0.00001892054455251979,-1],"max":[0.250038148136845,0.2800189224071977,1]},"sizeMeters":[0.5,0.28,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:45.309Z","updatedAt":"2026-09-07T21:00:45.431Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27202/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GutterChannelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27202/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27202/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27202/v1/model.glb\" alt=\"Gutter Channel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27202/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27202/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27203","slug":"undercity-sewers-and-thieves-den-iron-ladder-05484ab4","title":"Iron Ladder (Undercity Sewers and Thieves Den)","summary":"Nine-rung vertical iron access ladder with continuous side rails.","description":"Nine-rung vertical iron access ladder with continuous side rails. Dimensions 0.66 × 2.80 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-ladder-05484ab4","cdnUrl":"https://cdn.3dassets.dev/assets/27203/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-ladder-05484ab4","thumbnailUrl":"https://cdn.3dassets.dev/assets/27203/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27203/v1/poster.webp","blurhash":"U04-nX={000M-5jYElbc0gWY~AskD*WB-:xt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58764,"triangles":1188,"vertices":3564,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3274513936971954,0,-0.030079042427299783],"max":[0.3274513936971954,2.799999952316284,0.030079042427299783]},"sizeMeters":[0.655,2.8,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:45.329Z","updatedAt":"2026-09-07T21:00:45.485Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27203/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronLadderUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27203/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27203/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27203/v1/model.glb\" alt=\"Iron Ladder (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27203/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27203/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27204","slug":"undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","title":"Wall Rung Set (Undercity Sewers and Thieves Den)","summary":"Five U-shaped masonry ladder rungs with projecting grips.","description":"Five U-shaped masonry ladder rungs with projecting grips. Dimensions 0.49 × 1.23 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","cdnUrl":"https://cdn.3dassets.dev/assets/27204/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/27204/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27204/v1/poster.webp","blurhash":"U01ya+x]009F?wxuDhIA-VxuNHD%={xuEND%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":78824,"triangles":1620,"vertices":4860,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.2449902378760066,0,-0.09752311928320924],"max":[0.2449902378760066,1.2300000190734863,0.09752311928320924]},"sizeMeters":[0.49,1.23,0.195],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:45.391Z","updatedAt":"2026-09-07T21:00:45.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27204/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallRungSetUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27204/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27204/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27204/v1/model.glb\" alt=\"Wall Rung Set (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27204/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27204/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27205","slug":"undercity-sewers-and-thieves-den-chain-hoist-fd1f1da2","title":"Chain Hoist (Undercity Sewers and Thieves Den)","summary":"Compact chain hoist with alternating links and a curved lower hook.","description":"Compact chain hoist with alternating links and a curved lower hook. Dimensions 0.50 × 1.74 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-chain-hoist-fd1f1da2","cdnUrl":"https://cdn.3dassets.dev/assets/27205/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-chain-hoist-fd1f1da2","thumbnailUrl":"https://cdn.3dassets.dev/assets/27205/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27205/v1/poster.webp","blurhash":"U01.vtoz01RP~nkA03V^~UkC0MV@~AkC0gV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":155164,"triangles":3196,"vertices":9588,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.2500193116284124,0,-0.14995612237226955],"max":[0.2500193116284124,1.737189769744873,0.14995612237226955]},"sizeMeters":[0.5,1.737,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:47.040Z","updatedAt":"2026-09-07T21:00:47.139Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27205/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChainHoistUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27205/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27205/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27205/v1/model.glb\" alt=\"Chain Hoist (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27205/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27205/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27207","slug":"undercity-sewers-and-thieves-den-bucket-chain-8b60b5ad","title":"Bucket Chain (Undercity Sewers and Thieves Den)","summary":"Vertical bucket elevator with seven open scoops and upper and lower return wheels.","description":"Vertical bucket elevator with seven open scoops and upper and lower return wheels. Dimensions 0.66 × 2.43 × 0.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-bucket-chain-8b60b5ad","cdnUrl":"https://cdn.3dassets.dev/assets/27207/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-bucket-chain-8b60b5ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/27207/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27207/v1/poster.webp","blurhash":"U00vSJoy9EM{t7j[RjWBaefPkBa#t7j[RjWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":241828,"triangles":5016,"vertices":15048,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.3300489912748475,0,-0.1299282850721341],"max":[0.3300489912748475,2.430000066757202,0.1299282850721341]},"sizeMeters":[0.66,2.43,0.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:47.060Z","updatedAt":"2026-09-07T21:00:47.175Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27207/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BucketChainUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27207/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27207/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27207/v1/model.glb\" alt=\"Bucket Chain (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27207/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27207/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27208","slug":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","title":"Oil Lamp Niche (Undercity Sewers and Thieves Den)","summary":"Masonry lamp niche with a lantern supported on its projecting sill.","description":"Masonry lamp niche with a lantern supported on its projecting sill. Dimensions 0.60 × 0.73 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","cdnUrl":"https://cdn.3dassets.dev/assets/27208/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","thumbnailUrl":"https://cdn.3dassets.dev/assets/27208/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27208/v1/poster.webp","blurhash":"U4BMMb7100}BY+D*C6%Lo~#l9ZAa.8.7%2My","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":79384,"triangles":1668,"vertices":5004,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3000053159798651,0.00000854314650079041,-0.20001221535156147],"max":[0.3000053159798651,0.7299999594688416,0.20001221535156147]},"sizeMeters":[0.6,0.73,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:47.150Z","updatedAt":"2026-09-07T21:00:47.254Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27208/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OilLampNicheUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27208/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27208/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27208/v1/model.glb\" alt=\"Oil Lamp Niche (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27208/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27208/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27206","slug":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","title":"Gas Lamp Bracket (Undercity Sewers and Thieves Den)","summary":"Diagonal wall bracket carrying a glazed gas-style inspection lantern.","description":"Diagonal wall bracket carrying a glazed gas-style inspection lantern. Dimensions 0.28 × 0.93 × 0.62 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","cdnUrl":"https://cdn.3dassets.dev/assets/27206/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","thumbnailUrl":"https://cdn.3dassets.dev/assets/27206/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27206/v1/poster.webp","blurhash":"U23Ihhx]00Dj%MofMxRj00Mx_M%g4nRQ?bx[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":83416,"triangles":1668,"vertices":5004,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.13999129118679843,0,-0.3099939361640749],"max":[0.13999129118679843,0.9330000281333923,0.3099939361640749]},"sizeMeters":[0.28,0.933,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:48.085Z","updatedAt":"2026-09-07T21:00:48.205Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27206/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GasLampBracketUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27206/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27206/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27206/v1/model.glb\" alt=\"Gas Lamp Bracket (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27206/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27206/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27210","slug":"undercity-sewers-and-thieves-den-sewer-key-cd9faf2a","title":"Sewer Key (Undercity Sewers and Thieves Den)","summary":"Long T-handle sewer key with a rectangular lifting toe.","description":"Long T-handle sewer key with a rectangular lifting toe. Dimensions 0.30 × 0.66 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-sewer-key-cd9faf2a","cdnUrl":"https://cdn.3dassets.dev/assets/27210/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-sewer-key-cd9faf2a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27210/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27210/v1/poster.webp","blurhash":"U00vVRoMDOS0%#oMIAR%%#oMIAR%%hofIAR%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16024,"triangles":312,"vertices":936,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.15001212440145187,6.705522803684971e-10,-0.019989622813172344],"max":[0.15001212440145187,0.6549999713897705,0.019989622813172344]},"sizeMeters":[0.3,0.655,0.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:48.808Z","updatedAt":"2026-09-07T21:00:48.930Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27210/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SewerKeyUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27210/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27210/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27210/v1/model.glb\" alt=\"Sewer Key (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27210/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27210/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27209","slug":"undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","title":"Inspection Hatch (Undercity Sewers and Thieves Den)","summary":"Square hinged inspection cover with lifting ring in a stone surround.","description":"Square hinged inspection cover with lifting ring in a stone surround. Dimensions 0.90 × 0.11 × 0.90 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","cdnUrl":"https://cdn.3dassets.dev/assets/27209/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","thumbnailUrl":"https://cdn.3dassets.dev/assets/27209/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27209/v1/poster.webp","blurhash":"U17_7q~q00X3NFM_%f%N009F8|IUwz-;8|9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28476,"triangles":600,"vertices":1800,"meshes":3,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.00000534158755515976,-0.44999998807907104],"max":[0.44999998807907104,0.11399945167759083,0.44999998807907104]},"sizeMeters":[0.9,0.114,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:48.723Z","updatedAt":"2026-09-07T21:00:48.843Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27209/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InspectionHatchUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27209/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27209/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27209/v1/model.glb\" alt=\"Inspection Hatch (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27209/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27209/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27211","slug":"undercity-sewers-and-thieves-den-iron-service-door-b4aad8f4","title":"Iron Service Door (Undercity Sewers and Thieves Den)","summary":"Named hinged iron service door in a fixed metal jamb.","description":"Named hinged iron service door in a fixed metal jamb. Dimensions 1.08 × 2.20 × 0.12 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-iron-service-door-b4aad8f4","cdnUrl":"https://cdn.3dassets.dev/assets/27211/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-iron-service-door-b4aad8f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/27211/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27211/v1/poster.webp","blurhash":"U38DFO%10058I]oJ$yR.0*R+}p$%Nej@xCWE","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":40956,"triangles":816,"vertices":2448,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5399792591172913,0,-0.062038027407445094],"max":[0.5399792591172913,2.200000047683716,0.062038027407445094]},"sizeMeters":[1.08,2.2,0.124],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:48.791Z","updatedAt":"2026-09-07T21:00:48.886Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27211/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IronServiceDoorUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27211/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27211/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27211/v1/model.glb\" alt=\"Iron Service Door (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27211/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27211/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27212","slug":"undercity-sewers-and-thieves-den-portcullis-grille-d73b0567","title":"Portcullis Grille (Undercity Sewers and Thieves Den)","summary":"Upright heavy iron grille with open vertical slots in a rectangular outer frame.","description":"Upright heavy iron grille with open vertical slots in a rectangular outer frame. Dimensions 2.07 × 2.27 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-portcullis-grille-d73b0567","cdnUrl":"https://cdn.3dassets.dev/assets/27212/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-portcullis-grille-d73b0567","thumbnailUrl":"https://cdn.3dassets.dev/assets/27212/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27212/v1/poster.webp","blurhash":"U01o%:ae00xv?cfRD$t7tRayRioft8tRV@Mx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":63288,"triangles":1296,"vertices":3888,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.0349639794626193,0,-0.030066224912933957],"max":[1.0349639794626193,2.2699999809265137,0.030066224912933957]},"sizeMeters":[2.07,2.27,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:50.133Z","updatedAt":"2026-09-07T21:00:50.447Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27212/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PortcullisGrilleUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27212/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27212/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27212/v1/model.glb\" alt=\"Portcullis Grille (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27212/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27212/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27215","slug":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","title":"Chain Barrier (Undercity Sewers and Thieves Den)","summary":"Slack alternating-link chain between two capped safety posts.","description":"Slack alternating-link chain between two capped safety posts. Dimensions 1.64 × 1.00 × 0.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-chain-barrier-746b49bd","cdnUrl":"https://cdn.3dassets.dev/assets/27215/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-chain-barrier-746b49bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/27215/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27215/v1/poster.webp","blurhash":"U138t}$Q^L-n~T={=^$$#k~A-Vv~id~9%2r@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":156132,"triangles":3216,"vertices":9648,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8199999928474426,-0.000040307925255111954,-0.07695547464140043],"max":[0.8199999928474426,0.9999704035880397,0.07695547464140043]},"sizeMeters":[1.64,1,0.154],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:51.642Z","updatedAt":"2026-09-07T21:00:51.752Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27215/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChainBarrierUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27215/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27215/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27215/v1/model.glb\" alt=\"Chain Barrier (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27215/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27215/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27214","slug":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","title":"Warning Plaque (Undercity Sewers and Thieves Den)","summary":"Metal hazard plaque with an abstract exclamation mark, no readable text.","description":"Metal hazard plaque with an abstract exclamation mark, no readable text. Dimensions 0.65 × 0.42 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","cdnUrl":"https://cdn.3dassets.dev/assets/27214/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27214/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27214/v1/poster.webp","blurhash":"U038-Y%L00NH.T-;ROIU0Qbx^$$d^%x^IXi]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17320,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,-0.000014647737767964353,-0.023746260468301115],"max":[0.32499998807907104,0.4200146346247461,0.023760071150036595]},"sizeMeters":[0.65,0.42,0.048],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:50.502Z","updatedAt":"2026-09-07T21:00:50.593Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27214/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarningPlaqueUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27214/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27214/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27214/v1/model.glb\" alt=\"Warning Plaque (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27214/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27214/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27213","slug":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","title":"Mile Marker (Undercity Sewers and Thieves Den)","summary":"Freestanding stone channel marker with inset metal tally plate.","description":"Freestanding stone channel marker with inset metal tally plate. Dimensions 0.35 × 0.70 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","cdnUrl":"https://cdn.3dassets.dev/assets/27213/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","thumbnailUrl":"https://cdn.3dassets.dev/assets/27213/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27213/v1/poster.webp","blurhash":"U6B3]1-=009FxuRjM{tRM}obIVM|~p-:D%D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12672,"triangles":324,"vertices":972,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.17502670071510448,0,-0.14248397386592132],"max":[0.17502670071510448,0.699999988079071,0.14249786638603637]},"sizeMeters":[0.35,0.7,0.285],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:50.459Z","updatedAt":"2026-09-07T21:00:50.569Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27213/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MileMarkerUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27213/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27213/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27213/v1/model.glb\" alt=\"Mile Marker (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27213/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27213/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27218","slug":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","title":"Brick Pile (Undercity Sewers and Thieves Den)","summary":"Twelve loose repair bricks stacked in two stable courses.","description":"Twelve loose repair bricks stacked in two stable courses. Dimensions 0.92 × 0.21 × 0.31 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-brick-pile-223f7fd6","cdnUrl":"https://cdn.3dassets.dev/assets/27218/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-brick-pile-223f7fd6","thumbnailUrl":"https://cdn.3dassets.dev/assets/27218/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27218/v1/poster.webp","blurhash":"U5Bes{=x0f$*=x}ss.9[01Rk^PJ75k0}RkxD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":63260,"triangles":1296,"vertices":3888,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.46000000834465027,-0.000008085510118882588,-0.1549992398490336],"max":[0.46000000834465027,0.21000809310971108,0.1549992398490336]},"sizeMeters":[0.92,0.21,0.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:52.132Z","updatedAt":"2026-09-07T21:00:52.265Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27218/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickPileUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27218/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27218/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27218/v1/model.glb\" alt=\"Brick Pile (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27218/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27218/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27217","slug":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","title":"Mortar Bucket (Undercity Sewers and Thieves Den)","summary":"Open metal bucket containing a shallow mortar fill and arched handle.","description":"Open metal bucket containing a shallow mortar fill and arched handle. Dimensions 0.45 × 0.63 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-mortar-bucket-6287882f","cdnUrl":"https://cdn.3dassets.dev/assets/27217/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-mortar-bucket-6287882f","thumbnailUrl":"https://cdn.3dassets.dev/assets/27217/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27217/v1/poster.webp","blurhash":"U12=+Lof00RQkDa#WAj?00WB~qt7s,oKWYWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52384,"triangles":1056,"vertices":3168,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.2250167851802118,0,-0.1999916074098941],"max":[0.2250167851802118,0.625,0.1999916074098941]},"sizeMeters":[0.45,0.625,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:52.138Z","updatedAt":"2026-09-07T21:00:52.249Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27217/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MortarBucketUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27217/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27217/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27217/v1/model.glb\" alt=\"Mortar Bucket (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27217/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27217/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27216","slug":"undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","title":"Wheelbarrow (Undercity Sewers and Thieves Den)","summary":"Open timber wheelbarrow with a single iron wheel, handles and rear legs.","description":"Open timber wheelbarrow with a single iron wheel, handles and rear legs. Dimensions 0.86 × 0.75 × 1.75 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","cdnUrl":"https://cdn.3dassets.dev/assets/27216/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/27216/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27216/v1/poster.webp","blurhash":"U24-a}%LAstQ}rWEI?s:0gE2nPaK0}Wm$fad","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":60428,"triangles":992,"vertices":2976,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.430014549285218,0.000036237419113599456,-0.875995934009552],"max":[0.430014549285218,0.7499777196079722,0.875995934009552]},"sizeMeters":[0.86,0.75,1.752],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:53.160Z","updatedAt":"2026-09-07T21:00:53.264Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27216/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WheelbarrowUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27216/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27216/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27216/v1/model.glb\" alt=\"Wheelbarrow (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27216/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27216/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27219","slug":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","title":"Sandbag Stack (Undercity Sewers and Thieves Den)","summary":"Three offset courses of rounded cloth sandbags.","description":"Three offset courses of rounded cloth sandbags. Dimensions 1.30 × 0.55 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","cdnUrl":"https://cdn.3dassets.dev/assets/27219/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","thumbnailUrl":"https://cdn.3dassets.dev/assets/27219/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27219/v1/poster.webp","blurhash":"UCF5~e-;9Fx]?b~pt6M|00s,-:M{IUD*RjRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":32140,"triangles":648,"vertices":1944,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.6499999761581421,0.000038927145558975695,-0.14996795006425837],"max":[0.6499999761581421,0.54996108477537,0.14996795006425837]},"sizeMeters":[1.3,0.55,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:53.319Z","updatedAt":"2026-09-07T21:00:53.417Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27219/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SandbagStackUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27219/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27219/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27219/v1/model.glb\" alt=\"Sandbag Stack (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27219/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27219/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27221","slug":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","title":"Timber Shoring Set (Undercity Sewers and Thieves Den)","summary":"Braced timber shoring portal with paired diagonal knees.","description":"Braced timber shoring portal with paired diagonal knees. Dimensions 2.40 × 2.50 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","cdnUrl":"https://cdn.3dassets.dev/assets/27221/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","thumbnailUrl":"https://cdn.3dassets.dev/assets/27221/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27221/v1/poster.webp","blurhash":"U24_8{ba0gxZ}qt69_M|v#snOXNajGxFoxJ8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":34140,"triangles":540,"vertices":1620,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0,-0.10005188544181377],"max":[1.2000000476837158,2.5023999214172363,0.10005188544181377]},"sizeMeters":[2.4,2.502,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:53.896Z","updatedAt":"2026-09-07T21:00:54.000Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27221/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberShoringSetUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27221/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27221/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27221/v1/model.glb\" alt=\"Timber Shoring Set (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27221/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27221/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27220","slug":"undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","title":"Rope Pulley (Undercity Sewers and Thieves Den)","summary":"Grooved timber pulley wrapped by a continuous curved rope.","description":"Grooved timber pulley wrapped by a continuous curved rope. Dimensions 0.52 × 0.50 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","cdnUrl":"https://cdn.3dassets.dev/assets/27220/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","thumbnailUrl":"https://cdn.3dassets.dev/assets/27220/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27220/v1/poster.webp","blurhash":"U16*2O-U0Lx]00?GMx9a0g01Mx.7~p?bs;4:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":59808,"triangles":992,"vertices":2976,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2585172653198242,0.00001239683658132984,-0.04498184236233172],"max":[0.2585172653198242,0.5045498618838167,0.04498184236233172]},"sizeMeters":[0.517,0.505,0.09],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:53.854Z","updatedAt":"2026-09-07T21:00:53.954Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27220/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RopePulleyUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27220/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27220/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27220/v1/model.glb\" alt=\"Rope Pulley (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27220/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27220/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27222","slug":"undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","title":"Maintenance Handcart (Undercity Sewers and Thieves Den)","summary":"Low two-wheel maintenance cart with extended hauling shafts.","description":"Low two-wheel maintenance cart with extended hauling shafts. Dimensions 1.25 × 0.82 × 2.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","cdnUrl":"https://cdn.3dassets.dev/assets/27222/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","thumbnailUrl":"https://cdn.3dassets.dev/assets/27222/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27222/v1/poster.webp","blurhash":"U03ki;BT0f=F}@JBIo$f01w0}@Nx02=G=|AI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36804,"triangles":580,"vertices":1740,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.625,-0.000024727145232938952,-1.1290853023529053],"max":[0.625,0.8248903127269213,1.1290853023529053]},"sizeMeters":[1.25,0.825,2.258],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:55.836Z","updatedAt":"2026-09-07T21:00:55.942Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27222/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MaintenanceHandcartUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27222/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27222/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27222/v1/model.glb\" alt=\"Maintenance Handcart (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27222/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27222/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27223","slug":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","title":"Coal Scuttle (Undercity Sewers and Thieves Den)","summary":"Open iron coal scuttle with raised loop handle and visible fuel load.","description":"Open iron coal scuttle with raised loop handle and visible fuel load. Dimensions 0.55 × 0.78 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","cdnUrl":"https://cdn.3dassets.dev/assets/27223/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","thumbnailUrl":"https://cdn.3dassets.dev/assets/27223/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27223/v1/poster.webp","blurhash":"U01yRjtL00M,x_k8ITWG4Tag?ckRMvjd%Ofe","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52432,"triangles":1056,"vertices":3168,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.27499999153998594,0,-0.2500236441531944],"max":[0.27499999153998594,0.7749999761581421,0.2500236441531944]},"sizeMeters":[0.55,0.775,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:55.038Z","updatedAt":"2026-09-07T21:00:55.136Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27223/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoalScuttleUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27223/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27223/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27223/v1/model.glb\" alt=\"Coal Scuttle (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27223/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27223/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27225","slug":"undercity-sewers-and-thieves-den-water-butt-27904a3d","title":"Water Butt (Undercity Sewers and Thieves Den)","summary":"Large banded timber water butt with a small brass drain fitting.","description":"Large banded timber water butt with a small brass drain fitting. Dimensions 0.99 × 1.10 × 0.83 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-water-butt-27904a3d","cdnUrl":"https://cdn.3dassets.dev/assets/27225/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-water-butt-27904a3d","thumbnailUrl":"https://cdn.3dassets.dev/assets/27225/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27225/v1/poster.webp","blurhash":"U14-b3=x0L5l^7$$9[EQ11Na,.w{kpNHi_%1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":195168,"triangles":3784,"vertices":11352,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.49539053316563786,0,-0.41736581798047245],"max":[0.49538540840148926,1.100000023841858,0.41736581798047245]},"sizeMeters":[0.991,1.1,0.835],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:55.771Z","updatedAt":"2026-09-07T21:00:55.870Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27225/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterButtUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27225/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27225/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27225/v1/model.glb\" alt=\"Water Butt (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27225/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27225/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27224","slug":"undercity-sewers-and-thieves-den-pressure-gauge-3bd84052","title":"Pressure Gauge (Undercity Sewers and Thieves Den)","summary":"Round brass pressure gauge with pale dial and a fixed diagonal needle.","description":"Round brass pressure gauge with pale dial and a fixed diagonal needle. Dimensions 0.36 × 0.43 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-pressure-gauge-3bd84052","cdnUrl":"https://cdn.3dassets.dev/assets/27224/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-pressure-gauge-3bd84052","thumbnailUrl":"https://cdn.3dassets.dev/assets/27224/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27224/v1/poster.webp","blurhash":"UAA,am-:004o~AxaE2M{00M{~p%g9aRjxtxv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21960,"triangles":488,"vertices":1464,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,0,-0.06249264715986977],"max":[0.18000000715255737,0.4300000071525574,0.06249264715986977]},"sizeMeters":[0.36,0.43,0.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:55.574Z","updatedAt":"2026-09-07T21:00:55.683Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27224/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PressureGaugeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27224/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27224/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27224/v1/model.glb\" alt=\"Pressure Gauge (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27224/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27224/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27226","slug":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","title":"Pipe Hanger (Undercity Sewers and Thieves Den)","summary":"Suspended pipe collar with rigid ceiling stem and mounting plate.","description":"Suspended pipe collar with rigid ceiling stem and mounting plate. Dimensions 0.57 × 1.14 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-pipe-hanger-544c1227","cdnUrl":"https://cdn.3dassets.dev/assets/27226/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-pipe-hanger-544c1227","thumbnailUrl":"https://cdn.3dassets.dev/assets/27226/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27226/v1/poster.webp","blurhash":"U01fPQ%L00D%$%RjIpt8-;ofIBRk_Nxu8_IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29856,"triangles":600,"vertices":1800,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.28504028203748105,0,-0.09996673398470898],"max":[0.28504028203748105,1.1349999904632568,0.09996673398470898]},"sizeMeters":[0.57,1.135,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:56.725Z","updatedAt":"2026-09-07T21:00:56.830Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27226/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PipeHangerUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27226/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27226/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27226/v1/model.glb\" alt=\"Pipe Hanger (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27226/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27226/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27227","slug":"undercity-sewers-and-thieves-den-wall-tap-fb727852","title":"Wall Tap (Undercity Sewers and Thieves Den)","summary":"Brass wall tap with cross handle and downward outlet.","description":"Brass wall tap with cross handle and downward outlet. Dimensions 0.22 × 0.28 × 0.27 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-wall-tap-fb727852","cdnUrl":"https://cdn.3dassets.dev/assets/27227/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-wall-tap-fb727852","thumbnailUrl":"https://cdn.3dassets.dev/assets/27227/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27227/v1/poster.webp","blurhash":"U46@+WxY02D-?G9bE2~TE39b%0~U~U-n4;E3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":48380,"triangles":972,"vertices":2916,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.11000506016247721,0,-0.13594888399355426],"max":[0.11000506016247721,0.2750000059604645,0.13595374832842452]},"sizeMeters":[0.22,0.275,0.272],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:57.393Z","updatedAt":"2026-09-07T21:00:57.481Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27227/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallTapUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27227/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27227/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27227/v1/model.glb\" alt=\"Wall Tap (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27227/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27227/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27228","slug":"undercity-sewers-and-thieves-den-drain-basket-e845b6ff","title":"Drain Basket (Undercity Sewers and Thieves Den)","summary":"Lift-out drain basket with slotted floor and upper handling loop.","description":"Lift-out drain basket with slotted floor and upper handling loop. Dimensions 0.67 × 0.74 × 0.67 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-drain-basket-e845b6ff","cdnUrl":"https://cdn.3dassets.dev/assets/27228/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-drain-basket-e845b6ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/27228/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27228/v1/poster.webp","blurhash":"U01.?H-;DiM{oMofkCkC4mM|ayRjIAM{WBWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":92072,"triangles":1896,"vertices":5688,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.33499527435302173,-8.940696516468449e-10,-0.33499527435302173],"max":[0.33499527435302173,0.7400000095367432,0.33499527435302173]},"sizeMeters":[0.67,0.74,0.67],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:57.450Z","updatedAt":"2026-09-07T21:00:57.549Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27228/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrainBasketUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27228/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27228/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27228/v1/model.glb\" alt=\"Drain Basket (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27228/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27228/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27229","slug":"undercity-sewers-and-thieves-den-screen-rake-3ab89efb","title":"Screen Rake (Undercity Sewers and Thieves Den)","summary":"Long-handled three-tooth screen rake for lifting coarse channel debris.","description":"Long-handled three-tooth screen rake for lifting coarse channel debris. Dimensions 0.60 × 1.72 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-screen-rake-3ab89efb","cdnUrl":"https://cdn.3dassets.dev/assets/27229/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-screen-rake-3ab89efb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27229/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27229/v1/poster.webp","blurhash":"U01{1#t60gIWwHj?OYaiEQWC-7t6xaoMR%R%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33404,"triangles":528,"vertices":1584,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0.00001326413369995283,-0.025012971360453443],"max":[0.30000001192092896,1.7200000286102295,0.025012971360453443]},"sizeMeters":[0.6,1.72,0.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:57.654Z","updatedAt":"2026-09-07T21:00:57.747Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27229/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScreenRakeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27229/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27229/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27229/v1/model.glb\" alt=\"Screen Rake (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27229/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27229/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27230","slug":"undercity-sewers-and-thieves-den-sluice-stem-housing-6f2988b7","title":"Sluice Stem Housing (Undercity Sewers and Thieves Den)","summary":"Bolted sluice stem pedestal with exposed upper screw rod.","description":"Bolted sluice stem pedestal with exposed upper screw rod. Dimensions 0.35 × 1.12 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-sluice-stem-housing-6f2988b7","cdnUrl":"https://cdn.3dassets.dev/assets/27230/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-sluice-stem-housing-6f2988b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/27230/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27230/v1/poster.webp","blurhash":"U23[bkt602Ip^#oe4?RlOnazn7oLE}WW,Gs.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35352,"triangles":684,"vertices":2052,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1750065684336733,0,-0.1750065684336733],"max":[0.1750065684336733,1.1200000047683716,0.1750065684336733]},"sizeMeters":[0.35,1.12,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:58.386Z","updatedAt":"2026-09-07T21:00:58.495Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27230/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SluiceStemHousingUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27230/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27230/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27230/v1/model.glb\" alt=\"Sluice Stem Housing (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27230/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27230/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27231","slug":"undercity-sewers-and-thieves-den-maintenance-gantry-56956b76","title":"Maintenance Gantry (Undercity Sewers and Thieves Den)","summary":"Portable two-legged lifting gantry with broad footplates and hanging eye.","description":"Portable two-legged lifting gantry with broad footplates and hanging eye. Dimensions 2.60 × 2.83 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-maintenance-gantry-56956b76","cdnUrl":"https://cdn.3dassets.dev/assets/27231/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-maintenance-gantry-56956b76","thumbnailUrl":"https://cdn.3dassets.dev/assets/27231/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27231/v1/poster.webp","blurhash":"U01V#so}8wVY.TtRH=Md.SozH?R5%$x^MdDh","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45436,"triangles":924,"vertices":2772,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.299958612716328,-7.450580152834618e-10,-0.30004027642271697],"max":[1.299958612716328,2.8299999237060547,0.30004027642271697]},"sizeMeters":[2.6,2.83,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:58.991Z","updatedAt":"2026-09-07T21:00:59.096Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27231/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MaintenanceGantryUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27231/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27231/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27231/v1/model.glb\" alt=\"Maintenance Gantry (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27231/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27231/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27232","slug":"undercity-sewers-and-thieves-den-grate-surround-ecee3eab","title":"Grate Surround (Undercity Sewers and Thieves Den)","summary":"Open stone drainage surround with four recessed bearing edges.","description":"Open stone drainage surround with four recessed bearing edges. Dimensions 1.20 × 0.12 × 1.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-grate-surround-ecee3eab","cdnUrl":"https://cdn.3dassets.dev/assets/27232/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-grate-surround-ecee3eab","thumbnailUrl":"https://cdn.3dassets.dev/assets/27232/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27232/v1/poster.webp","blurhash":"U29@bM_M00oz_3M{Ri%M009G~pIU00-;M#8{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21800,"triangles":432,"vertices":1296,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,0.00001281404919895035,-0.6000000238418579],"max":[0.6000000238418579,0.11998718326859203,0.6000000238418579]},"sizeMeters":[1.2,0.12,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:59.160Z","updatedAt":"2026-09-07T21:00:59.274Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27232/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GrateSurroundUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27232/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27232/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27232/v1/model.glb\" alt=\"Grate Surround (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27232/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27232/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27233","slug":"undercity-sewers-and-thieves-den-fences-counter-a4b62c44","title":"Fences Counter (Undercity Sewers and Thieves Den)","summary":"Tall trade counter with solid modesty panel and a small brass transaction plate.","description":"Tall trade counter with solid modesty panel and a small brass transaction plate. Dimensions 2.00 × 1.00 × 0.72 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-fences-counter-a4b62c44","cdnUrl":"https://cdn.3dassets.dev/assets/27233/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-fences-counter-a4b62c44","thumbnailUrl":"https://cdn.3dassets.dev/assets/27233/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27233/v1/poster.webp","blurhash":"U17m$y^*00M|@r}?yEEN00VE$MTJP.r^IB9a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":122132,"triangles":2252,"vertices":6756,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.000004565855492466575,-0.36048834896272824],"max":[1,1.0000503436197064,0.3605032104491882]},"sizeMeters":[2,1,0.721],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:00:59.285Z","updatedAt":"2026-09-07T21:00:59.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27233/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FencesCounterUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27233/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27233/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27233/v1/model.glb\" alt=\"Fences Counter (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27233/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27233/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27234","slug":"undercity-sewers-and-thieves-den-loot-sorting-table-3124b089","title":"Loot Sorting Table (Undercity Sewers and Thieves Den)","summary":"Sorting table with three divided work areas and a rear retaining lip.","description":"Sorting table with three divided work areas and a rear retaining lip. Dimensions 2.00 × 0.85 × 0.89 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-loot-sorting-table-3124b089","cdnUrl":"https://cdn.3dassets.dev/assets/27234/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-loot-sorting-table-3124b089","thumbnailUrl":"https://cdn.3dassets.dev/assets/27234/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27234/v1/poster.webp","blurhash":"U26G}0t6B9%K}E-UEOI;0Mw0VtEg1bM{-TSd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":130516,"triangles":2360,"vertices":7080,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.0000233549805335187,-0.44596697897274695],"max":[1,0.849973626523254,0.44596697897274695]},"sizeMeters":[2,0.85,0.892],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:01.075Z","updatedAt":"2026-09-07T21:01:01.168Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27234/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LootSortingTableUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27234/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27234/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27234/v1/model.glb\" alt=\"Loot Sorting Table (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27234/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27234/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27235","slug":"undercity-sewers-and-thieves-den-lockpick-bench-35267ae5","title":"Lockpick Bench (Undercity Sewers and Thieves Den)","summary":"Fictional locksmith bench with vise block, leather mat and three simple blank tools.","description":"Fictional locksmith bench with vise block, leather mat and three simple blank tools. Dimensions 1.30 × 0.91 × 0.64 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-lockpick-bench-35267ae5","cdnUrl":"https://cdn.3dassets.dev/assets/27235/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-lockpick-bench-35267ae5","thumbnailUrl":"https://cdn.3dassets.dev/assets/27235/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27235/v1/poster.webp","blurhash":"U16aI%oh1O^$]k?GNGIo01R6MxIo1MIo^QIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":130756,"triangles":2456,"vertices":7368,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.6499999761581421,-0.000028669329351971307,-0.32098298941663556],"max":[0.6499999761581421,0.910006866067767,0.32098298941663556]},"sizeMeters":[1.3,0.91,0.642],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:00.713Z","updatedAt":"2026-09-07T21:01:00.807Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27235/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LockpickBenchUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27235/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27235/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27235/v1/model.glb\" alt=\"Lockpick Bench (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27235/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27235/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27237","slug":"undercity-sewers-and-thieves-den-forgelet-8f0cc5de","title":"Forgelet (Undercity Sewers and Thieves Den)","summary":"Small repair hearth with glowing fuel, rear flue and an adjacent anvil block.","description":"Small repair hearth with glowing fuel, rear flue and an adjacent anvil block. Dimensions 1.50 × 2.10 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-forgelet-8f0cc5de","cdnUrl":"https://cdn.3dassets.dev/assets/27237/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-forgelet-8f0cc5de","thumbnailUrl":"https://cdn.3dassets.dev/assets/27237/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27237/v1/poster.webp","blurhash":"U57TOa^P0f0z0zEf^O=x58I;%0xZ}?-BEMEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33276,"triangles":648,"vertices":1944,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,-0.00002135699616873099,-0.3500167851802118],"max":[0.7500336150664538,2.1000001430511475,0.3500167851802118]},"sizeMeters":[1.5,2.1,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:02.306Z","updatedAt":"2026-09-07T21:01:02.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27237/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ForgeletUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27237/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27237/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27237/v1/model.glb\" alt=\"Forgelet (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27237/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27237/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27236","slug":"undercity-sewers-and-thieves-den-hammock-3a15f9fb","title":"Hammock (Undercity Sewers and Thieves Den)","summary":"Sagging cloth hammock between timber supports, built from connected woven strips.","description":"Sagging cloth hammock between timber supports, built from connected woven strips. Dimensions 2.08 × 1.30 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-hammock-3a15f9fb","cdnUrl":"https://cdn.3dassets.dev/assets/27236/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-hammock-3a15f9fb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27236/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27236/v1/poster.webp","blurhash":"U89jig~p4oD*_2^*%2IV00V@~pxu4.9GIo-:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":253664,"triangles":5184,"vertices":15552,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.0399999618530273,0.00000976304326594235,-0.27502058990620076],"max":[1.0399999618530273,1.2999901892730183,0.27502058990620076]},"sizeMeters":[2.08,1.3,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:00.924Z","updatedAt":"2026-09-07T21:01:01.030Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27236/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HammockUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27236/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27236/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27236/v1/model.glb\" alt=\"Hammock (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27236/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27236/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27238","slug":"undercity-sewers-and-thieves-den-cot-2b69f7ce","title":"Cot (Undercity Sewers and Thieves Den)","summary":"Low cot with cloth mattress and a distinct pillow.","description":"Low cot with cloth mattress and a distinct pillow. Dimensions 0.75 × 0.69 × 1.89 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-cot-2b69f7ce","cdnUrl":"https://cdn.3dassets.dev/assets/27238/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-cot-2b69f7ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/27238/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27238/v1/poster.webp","blurhash":"U79@Ir^*01E2~pIoDkt7004.-:-;00xt_2ju","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":120060,"triangles":2252,"vertices":6756,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.37499904598734124,0.00002456397372058161,-0.9459999799728394],"max":[0.37499904598734124,0.689987179841325,0.9459999799728394]},"sizeMeters":[0.75,0.69,1.892],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:02.363Z","updatedAt":"2026-09-07T21:01:02.463Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27238/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CotUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27238/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27238/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27238/v1/model.glb\" alt=\"Cot (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27238/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27238/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27239","slug":"undercity-sewers-and-thieves-den-crate-bed-122ced25","title":"Crate Bed (Undercity Sewers and Thieves Den)","summary":"Improvised sleeping platform resting on two braced cargo crates.","description":"Improvised sleeping platform resting on two braced cargo crates. Dimensions 0.78 × 0.78 × 1.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-crate-bed-122ced25","cdnUrl":"https://cdn.3dassets.dev/assets/27239/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-crate-bed-122ced25","thumbnailUrl":"https://cdn.3dassets.dev/assets/27239/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27239/v1/poster.webp","blurhash":"UDEVf=-:0Log_ME2IU%102D%RjkDDjRjozxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61972,"triangles":972,"vertices":2916,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.38998077333903014,0.000005334352855379532,-0.75],"max":[0.38998077333903014,0.7800043989578304,0.75]},"sizeMeters":[0.78,0.78,1.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:02.676Z","updatedAt":"2026-09-07T21:01:02.846Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27239/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CrateBedUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27239/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27239/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27239/v1/model.glb\" alt=\"Crate Bed (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27239/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27239/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27240","slug":"undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","title":"Stolen Goods Crates (Undercity Sewers and Thieves Den)","summary":"Three tightly stacked braced cargo crates with a stable upper load.","description":"Three tightly stacked braced cargo crates with a stable upper load. Dimensions 1.48 × 1.30 × 0.64 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","cdnUrl":"https://cdn.3dassets.dev/assets/27240/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","thumbnailUrl":"https://cdn.3dassets.dev/assets/27240/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27240/v1/poster.webp","blurhash":"U3DlWQ~U00IXIC?Z4:4:000LIB$%^jW@t6sD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80848,"triangles":1296,"vertices":3888,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7400000095367432,0.000024373983119496678,-0.32125309413923064],"max":[0.7400000095367432,1.2999755783331648,0.32125309413923064]},"sizeMeters":[1.48,1.3,0.643],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:02.701Z","updatedAt":"2026-09-07T21:01:02.855Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27240/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StolenGoodsCratesUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27240/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27240/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27240/v1/model.glb\" alt=\"Stolen Goods Crates (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27240/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27240/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27241","slug":"undercity-sewers-and-thieves-den-den-strongbox-6888f8b1","title":"Den Strongbox (Undercity Sewers and Thieves Den)","summary":"Small strapped cash box with a named lid and brass locking plate.","description":"Small strapped cash box with a named lid and brass locking plate. Dimensions 0.63 × 0.44 × 0.48 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-den-strongbox-6888f8b1","cdnUrl":"https://cdn.3dassets.dev/assets/27241/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-den-strongbox-6888f8b1","thumbnailUrl":"https://cdn.3dassets.dev/assets/27241/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27241/v1/poster.webp","blurhash":"U16%f=}=0MMg~B#oVtf#0gADXQt4ABt6sAEf","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":60884,"triangles":1140,"vertices":3420,"meshes":5,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.3149999976158142,-0.0000013733329810028394,-0.24249952900131283],"max":[0.3149999976158142,0.43999054708538343,0.2424872302599657]},"sizeMeters":[0.63,0.44,0.485],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:04.053Z","updatedAt":"2026-09-07T21:01:04.154Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27241/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DenStrongboxUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27241/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27241/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27241/v1/model.glb\" alt=\"Den Strongbox (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27241/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27241/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27242","slug":"undercity-sewers-and-thieves-den-hidden-door-bookcase-777cafc3","title":"Hidden Door Bookcase (Undercity Sewers and Thieves Den)","summary":"Book-filled rotating bookcase mounted in masonry jambs; all moving pieces share one named pivot.","description":"Book-filled rotating bookcase mounted in masonry jambs; all moving pieces share one named pivot. Dimensions 1.52 × 2.10 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-hidden-door-bookcase-777cafc3","cdnUrl":"https://cdn.3dassets.dev/assets/27242/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-hidden-door-bookcase-777cafc3","thumbnailUrl":"https://cdn.3dassets.dev/assets/27242/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27242/v1/poster.webp","blurhash":"U7Bz5%%301yC~q-;DiIU0KbIITRP%Mt7M|M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":201752,"triangles":4788,"vertices":14364,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.7600298563663573,1.1920929132713809e-8,-0.24994657558215652],"max":[0.7600298563663573,2.0999999046325684,0.24994657558215652]},"sizeMeters":[1.52,2.1,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:05.094Z","updatedAt":"2026-09-07T21:01:05.200Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27242/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HiddenDoorBookcaseUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27242/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27242/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27242/v1/model.glb\" alt=\"Hidden Door Bookcase (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27242/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27242/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27244","slug":"undercity-sewers-and-thieves-den-den-trapdoor-2dcf163c","title":"Den Trapdoor (Undercity Sewers and Thieves Den)","summary":"Named oak floor trapdoor inside a fixed timber bearing frame.","description":"Named oak floor trapdoor inside a fixed timber bearing frame. Dimensions 1.20 × 0.09 × 1.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-den-trapdoor-2dcf163c","cdnUrl":"https://cdn.3dassets.dev/assets/27244/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-den-trapdoor-2dcf163c","thumbnailUrl":"https://cdn.3dassets.dev/assets/27244/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27244/v1/poster.webp","blurhash":"U15NcJ%00#aMxsazNaoK03NH}rW;MzodxGWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58456,"triangles":924,"vertices":2772,"meshes":3,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000030214852950814775,-0.6000000238418579],"max":[0.6000000238418579,0.09199450587483785,0.6000000238418579]},"sizeMeters":[1.2,0.092,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:04.633Z","updatedAt":"2026-09-07T21:01:04.730Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27244/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DenTrapdoorUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27244/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27244/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27244/v1/model.glb\" alt=\"Den Trapdoor (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27244/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27244/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27243","slug":"undercity-sewers-and-thieves-den-rope-ladder-53c556ed","title":"Rope Ladder (Undercity Sewers and Thieves Den)","summary":"Seven timber rungs lashed between continuous rope sides.","description":"Seven timber rungs lashed between continuous rope sides. Dimensions 0.70 × 2.00 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-rope-ladder-53c556ed","cdnUrl":"https://cdn.3dassets.dev/assets/27243/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-rope-ladder-53c556ed","thumbnailUrl":"https://cdn.3dassets.dev/assets/27243/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27243/v1/poster.webp","blurhash":"U27^*$^~0003-:t6IUIpE3R.$$s%%gt6IUIp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":84412,"triangles":1428,"vertices":4284,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.35000649455605176,0,-0.030007325245837334],"max":[0.35000649455605176,2,0.030007325245837334]},"sizeMeters":[0.7,2,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:04.611Z","updatedAt":"2026-09-07T21:01:04.703Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27243/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RopeLadderUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27243/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27243/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27243/v1/model.glb\" alt=\"Rope Ladder (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27243/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27243/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27245","slug":"undercity-sewers-and-thieves-den-signal-lantern-2bf1ebd0","title":"Signal Lantern (Undercity Sewers and Thieves Den)","summary":"Hand lantern with a single opaque green signal shutter.","description":"Hand lantern with a single opaque green signal shutter. Dimensions 0.28 × 0.51 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-signal-lantern-2bf1ebd0","cdnUrl":"https://cdn.3dassets.dev/assets/27245/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-signal-lantern-2bf1ebd0","thumbnailUrl":"https://cdn.3dassets.dev/assets/27245/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27245/v1/poster.webp","blurhash":"U44C9XbE00srMyf8xtbE4UoM?[Ri%xbEICn-","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76196,"triangles":1560,"vertices":4680,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.1400115695164855,4.470348535789981e-10,-0.1400115695164855],"max":[0.1400115695164855,0.5130000114440918,0.1400115695164855]},"sizeMeters":[0.28,0.513,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:05.864Z","updatedAt":"2026-09-07T21:01:05.954Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27245/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SignalLanternUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27245/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27245/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27245/v1/model.glb\" alt=\"Signal Lantern (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27245/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27245/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27246","slug":"undercity-sewers-and-thieves-den-dice-table-8af0f535","title":"Dice Table (Undercity Sewers and Thieves Den)","summary":"Cloth-topped gaming table with two small unmarked dice.","description":"Cloth-topped gaming table with two small unmarked dice. Dimensions 1.20 × 0.84 × 0.89 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-dice-table-8af0f535","cdnUrl":"https://cdn.3dassets.dev/assets/27246/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-dice-table-8af0f535","thumbnailUrl":"https://cdn.3dassets.dev/assets/27246/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27246/v1/poster.webp","blurhash":"U46@+g%K8_xD~oxsMdnO9GNHNfRQ4TR+yXR,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":127988,"triangles":2360,"vertices":7080,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000036596992678161744,-0.4460219300131222],"max":[0.6000000238418579,0.8399962607840396,0.4460219300131222]},"sizeMeters":[1.2,0.84,0.892],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:06.318Z","updatedAt":"2026-09-07T21:01:06.416Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27246/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DiceTableUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27246/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27246/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27246/v1/model.glb\" alt=\"Dice Table (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27246/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27246/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27247","slug":"undercity-sewers-and-thieves-den-stew-pot-e41f7897","title":"Stew Pot (Undercity Sewers and Thieves Den)","summary":"Open cooking pot with a visible stew surface and raised carrying bail.","description":"Open cooking pot with a visible stew surface and raised carrying bail. Dimensions 0.66 × 0.83 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-stew-pot-e41f7897","cdnUrl":"https://cdn.3dassets.dev/assets/27247/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-stew-pot-e41f7897","thumbnailUrl":"https://cdn.3dassets.dev/assets/27247/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27247/v1/poster.webp","blurhash":"U12iRqay00t7ohWBW9t700ja_LR%X2t7nnMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52352,"triangles":1056,"vertices":3168,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3279832184085528,0,-0.30002270905387324],"max":[0.3279832184085528,0.828000009059906,0.30002270905387324]},"sizeMeters":[0.656,0.828,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:06.359Z","updatedAt":"2026-09-07T21:01:06.448Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27247/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StewPotUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27247/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27247/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27247/v1/model.glb\" alt=\"Stew Pot (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27247/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27247/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27248","slug":"undercity-sewers-and-thieves-den-wanted-poster-wall-0ba01947","title":"Wanted Poster Wall (Undercity Sewers and Thieves Den)","summary":"Brick wall covered with five blank abstract portrait notices, without names or readable text.","description":"Brick wall covered with five blank abstract portrait notices, without names or readable text. Dimensions 1.60 × 1.80 × 0.21 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-wanted-poster-wall-0ba01947","cdnUrl":"https://cdn.3dassets.dev/assets/27248/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-wanted-poster-wall-0ba01947","thumbnailUrl":"https://cdn.3dassets.dev/assets/27248/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27248/v1/poster.webp","blurhash":"U5C=k{^i009G=^?GNa0f00Ip~pyC%2wJM{O?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":100812,"triangles":2048,"vertices":6144,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8000213417633047,0,-0.1064871808082658],"max":[0.8000213417633047,1.7999999523162842,0.10650015579746372]},"sizeMeters":[1.6,1.8,0.213],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:06.846Z","updatedAt":"2026-09-07T21:01:06.979Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27248/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WantedPosterWallUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27248/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27248/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27248/v1/model.glb\" alt=\"Wanted Poster Wall (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27248/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27248/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27249","slug":"undercity-sewers-and-thieves-den-disguise-rack-43a359ed","title":"Disguise Rack (Undercity Sewers and Thieves Den)","summary":"Freestanding costume rail with three hanging garments and broad felt hats.","description":"Freestanding costume rail with three hanging garments and broad felt hats. Dimensions 1.40 × 1.78 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-disguise-rack-43a359ed","cdnUrl":"https://cdn.3dassets.dev/assets/27249/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-disguise-rack-43a359ed","thumbnailUrl":"https://cdn.3dassets.dev/assets/27249/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27249/v1/poster.webp","blurhash":"U26Q^.-A00I=?voeH?aMQSNaT{xaD%wc%gKP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":69516,"triangles":1332,"vertices":3996,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.7000422901853203,0,-0.24996231751402592],"max":[0.7000422901853203,1.7850117978314206,0.24996231751402592]},"sizeMeters":[1.4,1.785,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:07.564Z","updatedAt":"2026-09-07T21:01:07.658Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27249/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DisguiseRackUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27249/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27249/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27249/v1/model.glb\" alt=\"Disguise Rack (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27249/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27249/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27250","slug":"undercity-sewers-and-thieves-den-den-weapon-rack-78808b62","title":"Den Weapon Rack (Undercity Sewers and Thieves Den)","summary":"Timber equipment rack with three original generic blades and leather grips.","description":"Timber equipment rack with three original generic blades and leather grips. Dimensions 1.40 × 1.50 × 0.34 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-den-weapon-rack-78808b62","cdnUrl":"https://cdn.3dassets.dev/assets/27250/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-den-weapon-rack-78808b62","thumbnailUrl":"https://cdn.3dassets.dev/assets/27250/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27250/v1/poster.webp","blurhash":"U16t8nbG005+_2,=D%9]9^+_oyFZ^6-UEL5R","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":96652,"triangles":1800,"vertices":5400,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.7012008849538013,0,-0.1712726596952627],"max":[0.7012008849538013,1.5011999607086182,0.17124358915486276]},"sizeMeters":[1.402,1.501,0.343],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:07.951Z","updatedAt":"2026-09-07T21:01:08.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27250/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DenWeaponRackUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27250/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27250/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27250/v1/model.glb\" alt=\"Den Weapon Rack (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27250/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27250/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27251","slug":"undercity-sewers-and-thieves-den-map-of-city-c30a1737","title":"Map Of City (Undercity Sewers and Thieves Den)","summary":"Flat parchment city diagram with a street grid and one marked district; no real geography.","description":"Flat parchment city diagram with a street grid and one marked district; no real geography. Dimensions 1.20 × 0.05 × 0.85 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-map-of-city-c30a1737","cdnUrl":"https://cdn.3dassets.dev/assets/27251/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-map-of-city-c30a1737","thumbnailUrl":"https://cdn.3dassets.dev/assets/27251/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27251/v1/poster.webp","blurhash":"U5CP;M?b00t3%M-:obM{00D*~VM|9F4oNHt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":74052,"triangles":1492,"vertices":4476,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000005417693781862437,-0.42500077985074985],"max":[0.6000000238418579,0.05099871824457834,0.42500077985074985]},"sizeMeters":[1.2,0.051,0.85],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:08.005Z","updatedAt":"2026-09-07T21:01:08.100Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27251/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MapOfCityUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27251/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27251/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27251/v1/model.glb\" alt=\"Map Of City (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27251/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27251/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27252","slug":"undercity-sewers-and-thieves-den-coin-sacks-8cf75fbb","title":"Coin Sacks (Undercity Sewers and Thieves Den)","summary":"Two tied cloth purses with rounded bodies and gathered necks.","description":"Two tied cloth purses with rounded bodies and gathered necks. Dimensions 0.64 × 0.48 × 0.27 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-coin-sacks-8cf75fbb","cdnUrl":"https://cdn.3dassets.dev/assets/27252/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-coin-sacks-8cf75fbb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27252/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27252/v1/poster.webp","blurhash":"U8CZRy-q00WC?a?HM|9a00Ri~oRj9GD*ofxt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":116924,"triangles":2400,"vertices":7200,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3199999928474426,0.000012207403517539017,-0.13599047518541943],"max":[0.3199999928474426,0.4799877818676464,0.13599047518541943]},"sizeMeters":[0.64,0.48,0.272],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:08.540Z","updatedAt":"2026-09-07T21:01:08.634Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27252/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoinSacksUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27252/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27252/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27252/v1/model.glb\" alt=\"Coin Sacks (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27252/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27252/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27253","slug":"undercity-sewers-and-thieves-den-jewellery-tray-4d95df3b","title":"Jewellery Tray (Undercity Sewers and Thieves Den)","summary":"Small wooden display tray carrying two rings and a curved chain.","description":"Small wooden display tray carrying two rings and a curved chain. Dimensions 0.55 × 0.06 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-jewellery-tray-4d95df3b","cdnUrl":"https://cdn.3dassets.dev/assets/27253/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-jewellery-tray-4d95df3b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27253/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27253/v1/poster.webp","blurhash":"U36tK?rs03%L-.njMzbu03XR^%IW4qXR-.RQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":69492,"triangles":1276,"vertices":3828,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2750000059604645,0.000009841877469954352,-0.17498550750070754],"max":[0.2750000059604645,0.062008623301673185,0.17498550750070754]},"sizeMeters":[0.55,0.062,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:09.238Z","updatedAt":"2026-09-07T21:01:09.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27253/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JewelleryTrayUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27253/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27253/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27253/v1/model.glb\" alt=\"Jewellery Tray (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27253/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27253/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27254","slug":"undercity-sewers-and-thieves-den-fake-wall-panel-9c7e2f9a","title":"Fake Wall Panel (Undercity Sewers and Thieves Den)","summary":"Removable brick-faced concealment panel on rear timber battens.","description":"Removable brick-faced concealment panel on rear timber battens. Dimensions 1.20 × 2.00 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-fake-wall-panel-9c7e2f9a","cdnUrl":"https://cdn.3dassets.dev/assets/27254/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-fake-wall-panel-9c7e2f9a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27254/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27254/v1/poster.webp","blurhash":"U5BB|-}s000zt7$%jGEM1JS3-Ss.t6xZjZIp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17236,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000549333170568,0,-0.09998931756994772],"max":[0.6000549333170568,2,0.10005035591316441]},"sizeMeters":[1.2,2,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:09.600Z","updatedAt":"2026-09-07T21:01:09.711Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27254/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FakeWallPanelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27254/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27254/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27254/v1/model.glb\" alt=\"Fake Wall Panel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27254/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27254/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27255","slug":"undercity-sewers-and-thieves-den-guard-post-5cfd133c","title":"Guard Post (Undercity Sewers and Thieves Den)","summary":"Compact watch station with a protected timber front and inspection lantern.","description":"Compact watch station with a protected timber front and inspection lantern. Dimensions 0.80 × 1.41 × 0.49 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-guard-post-5cfd133c","cdnUrl":"https://cdn.3dassets.dev/assets/27255/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-guard-post-5cfd133c","thumbnailUrl":"https://cdn.3dassets.dev/assets/27255/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27255/v1/poster.webp","blurhash":"U15N=QyB00Mz5UwJ-PK50LMy^P%1m+KL%f+w","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":190228,"triangles":3596,"vertices":10788,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.40001066558332016,0,-0.24601885066294493],"max":[0.40001066558332016,1.4129999876022339,0.24601885066294493]},"sizeMeters":[0.8,1.413,0.492],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:10.687Z","updatedAt":"2026-09-07T21:01:10.775Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27255/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GuardPostUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27255/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27255/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27255/v1/model.glb\" alt=\"Guard Post (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27255/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27255/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27256","slug":"undercity-sewers-and-thieves-den-dog-kennel-53dbd12c","title":"Dog Kennel (Undercity Sewers and Thieves Den)","summary":"Open-front timber kennel with a two-slope roof and raised dry floor.","description":"Open-front timber kennel with a two-slope roof and raised dry floor. Dimensions 1.17 × 0.94 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-dog-kennel-53dbd12c","cdnUrl":"https://cdn.3dassets.dev/assets/27256/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-dog-kennel-53dbd12c","thumbnailUrl":"https://cdn.3dassets.dev/assets/27256/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27256/v1/poster.webp","blurhash":"U06%NOkn01OG.60}0|}@03RkbZSi0h=e}FRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45092,"triangles":648,"vertices":1944,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.5872356118719895,0.000019563914142761707,-0.6499999761581421],"max":[0.5872356118719895,0.9448176493189706,0.6499999761581421]},"sizeMeters":[1.174,0.945,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:10.745Z","updatedAt":"2026-09-07T21:01:10.841Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27256/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DogKennelUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27256/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27256/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27256/v1/model.glb\" alt=\"Dog Kennel (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27256/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27256/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27257","slug":"undercity-sewers-and-thieves-den-spike-trap-plate-bdc722d1","title":"Spike Trap Plate (Undercity Sewers and Thieves Den)","summary":"Static fictional trap plate with nine tapered spikes; no mechanism or game logic.","description":"Static fictional trap plate with nine tapered spikes; no mechanism or game logic. Dimensions 0.90 × 0.31 × 0.90 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-spike-trap-plate-bdc722d1","cdnUrl":"https://cdn.3dassets.dev/assets/27257/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-spike-trap-plate-bdc722d1","thumbnailUrl":"https://cdn.3dassets.dev/assets/27257/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27257/v1/poster.webp","blurhash":"U02FlXt04TbVMxaxt8kB00Rq?baj-;ogM_ag","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16632,"triangles":324,"vertices":972,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000019384886470685814,-0.44999998807907104],"max":[0.44999998807907104,0.3099806181682674,0.44999998807907104]},"sizeMeters":[0.9,0.31,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:11.015Z","updatedAt":"2026-09-07T21:01:11.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27257/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpikeTrapPlateUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27257/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27257/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27257/v1/model.glb\" alt=\"Spike Trap Plate (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27257/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27257/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27258","slug":"undercity-sewers-and-thieves-den-tripwire-bell-e750375e","title":"Tripwire Bell (Undercity Sewers and Thieves Den)","summary":"Small fictional alarm bell and a visible low cord; supplied as a static prop.","description":"Small fictional alarm bell and a visible low cord; supplied as a static prop. Dimensions 1.40 × 0.55 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Damp masonry, black iron, weathered timber and aged brass. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-tripwire-bell-e750375e","cdnUrl":"https://cdn.3dassets.dev/assets/27258/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-tripwire-bell-e750375e","thumbnailUrl":"https://cdn.3dassets.dev/assets/27258/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27258/v1/poster.webp","blurhash":"U57KYbWA0NRoaJ-pIpIV00M|~TxsSj4:%0?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36940,"triangles":584,"vertices":1752,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.7005901336669922,0,-0.1599999964237213],"max":[0.7005901336669922,0.550000011920929,0.1599999964237213]},"sizeMeters":[1.401,0.55,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:11.243Z","updatedAt":"2026-09-07T21:01:11.350Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27258/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TripwireBellUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27258/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27258/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27258/v1/model.glb\" alt=\"Tripwire Bell (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27258/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27258/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27259","slug":"undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","title":"Outfall to Cistern (Undercity Sewers and Thieves Den)","summary":"Open inspection route connects a four-metre tunnel to a T junction, a second channel bay and a cistern approach. Dry den entrance branches east.","description":"Open inspection route connects a four-metre tunnel to a T junction, a second channel bay and a cistern approach. Dry den entrance branches east.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/27259/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-outfall-b2756506-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/27259/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27259/v1/poster.webp","blurhash":"U68gmV=xIAW.Io9Foy%M00Eh%gn+%1~WV@IU","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":560508,"triangles":26712,"vertices":24413,"meshes":50,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00017242920601036327,-3],"max":[3.700106802860418,3.3579081066426815,19.000122074037904]},"sizeMeters":[6.7,3.358,22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:12.397Z","updatedAt":"2026-09-07T21:01:12.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27259/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OutfallToCisternUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27259/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27259/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27259/v1/model.glb\" alt=\"Outfall to Cistern (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27259/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27259/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27260","slug":"undercity-sewers-and-thieves-den-thieves-den-4f09e54a","title":"Thieves Den (Undercity Sewers and Thieves Den)","summary":"Dry cutaway den with sorting and repair benches, sleeping corner, trade counter and a concealed bookcase door.","description":"Dry cutaway den with sorting and repair benches, sleeping corner, trade counter and a concealed bookcase door.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-thieves-den-4f09e54a","cdnUrl":"https://cdn.3dassets.dev/assets/27260/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-thieves-den-4f09e54a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27260/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27260/v1/poster.webp","blurhash":"U4Crs9%101?I?_$*PANG02rr0e9^Lz-;%MAD","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":419988,"triangles":20120,"vertices":17767,"meshes":34,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-3,0.00002136444674930016,-2.000122074037904],"max":[3,3.200228914153044,2.000122074037904]},"sizeMeters":[6,3.2,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:12.557Z","updatedAt":"2026-09-07T21:01:12.651Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27260/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThievesDenUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27260/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27260/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27260/v1/model.glb\" alt=\"Thieves Den (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27260/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27260/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27261","slug":"undercity-sewers-and-thieves-den-sewer-connector-cases-7e1e438d","title":"Sewer Connector Cases (Undercity Sewers and Thieves Den)","summary":"Separated three-way and four-way channel junction tests use matching four-metre tunnel bays; water level and raised ledges remain continuous at each join.","description":"Separated three-way and four-way channel junction tests use matching four-metre tunnel bays; water level and raised ledges remain continuous at each join.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-sewer-connector-cases-7e1e438d","cdnUrl":"https://cdn.3dassets.dev/assets/27261/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-sewer-connector-cases-7e1e438d","thumbnailUrl":"https://cdn.3dassets.dev/assets/27261/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27261/v1/poster.webp","blurhash":"U27np~-:00bW_2_MWUIB00t7~qMy0000er.7","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":73256,"triangles":3792,"vertices":3250,"meshes":10,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2.0000000000000004],"max":[16,0.4649616182059624,6]},"sizeMeters":[18,0.465,8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":2,"publishedAt":"2026-09-07T21:01:12.799Z","updatedAt":"2026-09-07T22:19:24.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27261/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SewerConnectorCasesUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27261/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27261/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27261/v1/model.glb\" alt=\"Sewer Connector Cases (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27261/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27261/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27262","slug":"undercity-sewers-and-thieves-den-curves-forks-and-slop-19d757be","title":"Curves Forks and Slope (Undercity Sewers and Thieves Den)","summary":"Isolated curve, diagonal fork and slope connections. Static endpoint assertions cover water levels and both raised ledges.","description":"Isolated curve, diagonal fork and slope connections. Static endpoint assertions cover water levels and both raised ledges.","status":"published","url":"https://3dassets.dev/assets/undercity-sewers-and-thieves-den-curves-forks-and-slop-19d757be","cdnUrl":"https://cdn.3dassets.dev/assets/27262/v1/model.glb","downloadUrl":"https://3dassets.dev/download/undercity-sewers-and-thieves-den-curves-forks-and-slop-19d757be","thumbnailUrl":"https://cdn.3dassets.dev/assets/27262/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27262/v1/poster.webp","blurhash":"U37nL7^k00%gR6?H%LIU009G~qW9t+019Z?a","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":228988,"triangles":9276,"vertices":10817,"meshes":15,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.00006805389194569633,-7.0710678118654755],"max":[30,3.608094990137939,6]},"sizeMeters":[32,3.608,13.071],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":2,"publishedAt":"2026-09-07T21:01:12.848Z","updatedAt":"2026-09-07T22:36:08.263Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27262/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CurvesForksAndSlopeUndercitySewersAndThievesDen(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27262/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27262/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27262/v1/model.glb\" alt=\"Curves Forks and Slope (Undercity Sewers and Thieves Den)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/27262/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/27262/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}