{"data":{"id":"161","slug":"undercity-sewers-and-thieves-den","title":"Undercity Sewers and Thieves Den","summary":"Walk a cutaway undercity: brick channel runs, junctions and weirs, a columned cistern, a pump chamber and a thieves den of four rooms round a paved courtyard.","url":"https://3dassets.dev/demos/undercity-sewers-and-thieves-den","coverUrl":"https://cdn.3dassets.dev/media/undercity-sewers-and-thieves-den-demo.png","featured":true,"pack":{"slug":"undercity-sewers-and-thieves-den","title":"Undercity Sewers and Thieves Den","url":"https://3dassets.dev/packs/undercity-sewers-and-thieves-den","summary":"Vaulted brick waterways, cisterns, maintenance machinery and a concealed den.","assetCount":124,"totalBytes":13346128,"starterScene":{"slug":"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","fileSize":560508}},"placementCount":524,"assetCount":116,"spawn":{"position":[-1.3,0.42,9.6],"yaw":180},"publishedAt":"2026-09-12T14:41:13.409Z","updatedAt":"2026-09-12T14:41:13.410Z","description":"A sewer is a tunnel, and a tunnel is the one thing this viewer cannot show you: the demo walk has no vertical movement and no way into a roofed interior, so a faithful undercity would be a dark ceiling from end to end. **This demo presents the undercity as a cutaway.** The vaulting has been lifted off the channels, chambers and dens, so you walk the ledges and look down into the water, and the camera sees in from above. Arches, vault bays and roofed tunnel sections are kept at the plot edges and over single bays, so the runs still read as tunnels without sealing them. A consumer assembles the same modules fully enclosed in their own engine: every piece is a four metre bay that joins to the next with the water level and both ledges continuous.\n\n**The place.** A main trunk runs north to south with a two metre waterway and a raised maintenance ledge either side, stepping down over a weir pool and an overflow sill to the outfall arch and its culvert mouths. A cross junction throws arms east and west; a tee sends a third arm through to the den. West, the run turns on a curve and drops into a cistern hall of four floor tiles, masonry columns and two free standing vaults. On the trunk itself, a widened penstock chamber carries the hand wheel, the Archimedean screw pump and the rocking beam pump. North of it a Y fork splits into two diagonal reaches that leave the plot under an egg section and a smooth barrel. East, past the threshold arch, four cutaway rooms stand round a paved courtyard: the fence's counter with its strongbox and coin sacks, a sleeping corner with hammock, cot and repair hearth, a workshop with the sorting table, lockpick bench and a bookcase that is really a door, and a store with the disguise rack, the dice table and a trapdoor out. A collapsed reach and a low vault bay close the loop between the two eastern arms.\n\n**524 placements of 116 of the pack's 124 models, on a 62 by 58 m plot, about 10.6 MB of GLB in total.** That download is the trade for showing almost the whole pack in one place; a scene that uses a dozen modules costs a fraction of it. The demo is lit as night under an open sky rather than as a room, because the cutaway has no vaulting to light from: a low white sun and a near black sky keep the brick, the dressed stone and the green water apart, which a bright interior wash flattened into one grey.\n\n**Nothing in this demo moves, and that is the pack, not the layout.** None of the 124 models ships an animation clip. The sluice leaf, the penstock gate, the bookcase door, the trapdoor, the inspection hatches and the chest lids are modelled as separate pieces on their own pivots, so a consumer can drive them from their own code, but there is no clip here to play. The water surfaces, the lamp flames, the hanging chains, the tripwire cord, the hammock and the hung clothing are all fixed geometry: rigid node transforms cannot make a surface ripple, a flame flicker or a rope swing, and faking any of them would cost a consumer more than it gives. There are no people and no animals anywhere: the catalogue holds no skinned meshes, and the rat nest heaps are static dressing.\n\n**Nothing here carries readable text.** The wanted posters are blank abstract notices, the hazard plaques and channel markers carry marks rather than words, and the city map is an invented street grid with no real geography.\n\nEverything placed is CC0. Open any model's page from a point caption to download the GLB on its own.","scene":{"version":1,"spawn":{"position":[-1.3,0.42,9.6],"yaw":180},"bounds":{"min":[-31,0,-26],"max":[31,7,32]},"ground":{"size":90,"elevation":0,"style":"plain"},"environment":{"preset":"outdoor","sky":"#151a22","horizon":"#262b33","floor":"#3b3a36","light":"hard","shadows":true},"placements":[{"asset":"undercity-sewers-and-thieves-den-weir-pool-f7cf64a3","position":[0,0,26],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-overflow-weir-6596f39e","position":[0,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[0,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cross-junction-f4538362","position":[0,0,14],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-inspection-crossing-b-e85a2074","position":[0,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-railed-c8e0edfb","position":[0,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-t-junction-460f139e","position":[0,0,2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-penstock-chamber-ab93071e","position":[0,0,-2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-shored-channel-89f3f0cf","position":[0,0,-6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-y-fork-a3b2f334","position":[0,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-outfall-arch-636cb329","position":[0,0,30],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-culvert-mouth-85abe450","position":[-4.4,0,29.2],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-culvert-mouth-85abe450","position":[4.4,0,29.2],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-4,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-sluice-gate-module-30930ec8","position":[-8,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-pipe-gallery-ec2513ff","position":[-12,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-curve-140cfacc","position":[-16,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-16,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-grille-broken-809874d3","position":[-16,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-timber-repair-walkway-acdbccc5","position":[-16,0,2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-16,0,-2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[4,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-stepped-drop-15fec415","position":[8,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-inlet-pipe-wall-3905902e","position":[12,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[16,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-tunnel-e430dd84","position":[20,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-flat-soffit-tunnel-d418fc9f","position":[24,0,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[4,0,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-inspection-crossing-b-e85a2074","position":[12,0,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-t-junction-460f139e","position":[8,0,2],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-low-vault-tunnel-4c2d7a20","position":[8,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-collapse-24cbe6db","position":[8,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-low-vault-tunnel-4c2d7a20","position":[-24,0,-10],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-crawl-tunnel-47812476","position":[-28,0,-10],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-4.243,0,-14.243],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-7.071,0,-17.071],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[-9.899,0,-19.899],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-egg-section-tunnel-1a8d0fbe","position":[-12.728,0,-22.728],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[4.243,0,-14.243],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[7.071,0,-17.071],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b","position":[9.899,0,-19.899],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-smooth-vault-tunnel-acd0616c","position":[12.728,0,-22.728],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","position":[-19,0.32,-7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","position":[-19,0.32,-13],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","position":[-13,0.32,-7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-hall-floor-bb03cd7c","position":[-13,0.32,-13],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7","position":[-19,0.42,-13],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7","position":[-13,0.42,-13],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-vault-590571b6","position":[-16,0.42,-6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-vault-590571b6","position":[-16,0.42,-14],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-cistern-inspection-is-813630c2","position":[-16,0.42,-9.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-cistern-inspection-is-813630c2","position":[-19.5,0.42,-15.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","position":[19,0.22,5],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","position":[25,0.22,5],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","position":[19,0.22,-5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pump-room-shell-b6a25043","position":[25,0.22,-5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,-6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,-2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[13,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[17,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[17,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[15,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[15,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[19,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[19,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[17,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[17,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[21,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[21,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[19,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[19,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[23,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[23,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[21,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[21,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[25,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[25,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[23,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[23,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[27,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[27,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[25,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[25,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[29,0,-10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[29,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06","position":[14.4,0.42,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06","position":[28.6,0.42,2],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,26],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,22],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,18],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.15,0,-6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,26],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,22],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,18],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,10],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.15,0,-6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-4,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-8,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-12,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-4,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-8,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-12,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-18.15,0,10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-18.15,0,6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-18.15,0,2],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-13.85,0,10],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-13.85,0,6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-13.85,0,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[4,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,0,11.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[4,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[8,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,0,16.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22,0,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-18,0,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-14,0,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-10,0,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,0,-6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,0,-10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,0,-14],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.85,0,-6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.85,0,-14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,0,-8.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,0,-8.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,0,-8.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[28,0,-8.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,0,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,0,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,0,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[28,0,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,0,-8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,0,-4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,0,0],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,0,4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,0,8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[13.85,0,-4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[13.85,0,8],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,0,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,0,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,0,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[28,0,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,2.5,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,2.5,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,2.5,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[28,2.5,-12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[16,2.5,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[20,2.5,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[24,2.5,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[28,2.5,10.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,2.5,-8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,2.5,-4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,2.5,0],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,2.5,4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[29.15,2.5,8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22,2.5,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-18,2.5,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-14,2.5,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-10,2.5,-16.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,2.5,-6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,2.5,-10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-22.15,2.5,-14],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-5.763,0,-12.722],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-2.722,0,-15.763],"rotation":135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-8.591,0,-15.551],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-5.551,0,-18.591],"rotation":135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-11.42,0,-18.379],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-8.379,0,-21.42],"rotation":135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-14.248,0,-21.208],"rotation":-45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-11.208,0,-24.248],"rotation":135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[2.722,0,-15.763],"rotation":-135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[5.763,0,-12.722],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[5.551,0,-18.591],"rotation":-135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[8.591,0,-15.551],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[8.379,0,-21.42],"rotation":-135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[11.42,0,-18.379],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[11.208,0,-24.248],"rotation":-135},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[14.248,0,-21.208],"rotation":45},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[0,0.42,24],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[0,0.42,16],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[0,0.42,4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[0,0.42,-4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[-6,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[-14,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[-16,0.42,8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[6,0.42,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[14,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[22,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-arch-portal-80f56f3d","position":[8,0.42,8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-vault-junction-1b38e1f3","position":[-16,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-tunnel-end-wall-da0d6de8","position":[-16,0,22],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","position":[-2.9,0.42,20],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","position":[3.1,0.42,8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","position":[-16,0.42,4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","position":[17.2,0.42,8.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-manhole-shaft-b7b85859","position":[-21,0.42,-8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ladder-shaft-f9adc1bd","position":[10.6,0.42,14],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-spiral-stair-to-surfa-7d25bf55","position":[27.2,0.42,8.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-plank-bridge-379c52f6","position":[0,0.42,20],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-stone-channel-bridge-68282026","position":[0,0.42,12],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-footbridge-84900ff4","position":[0,0.42,-4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-plank-bridge-379c52f6","position":[-16,0.42,0],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-iron-footbridge-84900ff4","position":[-8,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-stone-channel-bridge-68282026","position":[16,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-plank-bridge-379c52f6","position":[8,0.42,8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-archimedean-screw-pum-a5ba8ceb","position":[-3.2,0.42,-2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-beam-pump-94312406","position":[3.4,0.42,-2.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-penstock-gate-db7da329","position":[-1.2,0.42,-0.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-valve-wheel-4a516b47","position":[1.7,1.52,-0.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-valve-wheel-4a516b47","position":[-1.7,1.52,8.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-sluice-stem-housing-6f2988b7","position":[1.6,0.42,-8.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sluice-stem-housing-6f2988b7","position":[-1.6,0.42,13.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pressure-gauge-3bd84052","position":[1.9,1.62,-3.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-pressure-gauge-3bd84052","position":[-1.9,1.62,15.4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-bucket-chain-8b60b5ad","position":[-1.6,0.42,-4.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-hoist-fd1f1da2","position":[-1.55,1.72,4.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-hoist-fd1f1da2","position":[-13.9,1.72,-9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-maintenance-gantry-56956b76","position":[-1.5,0.42,18.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-maintenance-gantry-56956b76","position":[-16,0.42,0.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[-1.5,0.42,24],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[-1.5,0.42,21.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.5,0.42,11],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.5,0.42,8.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[-14.6,0.42,9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[-14.6,0.42,11.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","position":[-1.5,0.42,19.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","position":[1.5,0.42,7.5],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-tee-cf0d76e1","position":[-14.6,0.42,6.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","position":[-1.7,0.42,25.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","position":[16.4,0.42,-8.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[-1.6,1.32,22.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.6,1.32,9.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-wall-tap-fb727852","position":[-1.95,1.32,17.4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-wall-tap-fb727852","position":[16.1,1.32,4.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-water-butt-27904a3d","position":[-1.5,0.42,16.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-water-butt-27904a3d","position":[19.4,0.42,1.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[1.7,0.42,25],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[1.7,0.42,23],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[-1.7,0.42,5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[-1.7,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[16.3,0.42,-1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[-1.5,0.42,26.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[1.5,0.42,17.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[-1.5,0.42,9.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[-16.4,0.42,1],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[18,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[24,0.42,-1.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-grate-surround-ecee3eab","position":[-1.5,0.42,26.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-grate-surround-ecee3eab","position":[1.5,0.42,17.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-grate-surround-ecee3eab","position":[18,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-basket-e845b6ff","position":[-11.6,0.42,-8.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-basket-e845b6ff","position":[1.55,0.42,12.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-screen-rake-3ab89efb","position":[-1.75,0.42,13.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-screen-rake-3ab89efb","position":[-12.2,0.42,-5.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-settling-tank-252e41ca","position":[-19,0.42,-6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-settling-tank-252e41ca","position":[-13,0.42,-6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,24.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,22.43],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,20.36],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,18.29],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,16.22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,14.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,12.08],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,10.01],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,7.94],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,5.87],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[1.72,1.77,3.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-elbow-9d24c82a","position":[1.72,1.77,1.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-tee-cf0d76e1","position":[1.72,1.77,15.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,7.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,5.13],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,3.06],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,0.99],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,-1.08],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-straight-2404790b","position":[16.3,1.77,-3.15],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-iron-pipe-flange-5a4d2841","position":[16.3,1.77,8.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.72,1.37,23.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.72,1.37,19.3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.72,1.37,15.1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.72,1.37,10.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[1.72,1.37,6.7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[16.3,1.37,6.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[16.3,1.37,2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-pipe-hanger-544c1227","position":[16.3,1.37,-2.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-dry-side-passage-4a580059","position":[16,0.22,-11],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-dry-side-passage-4a580059","position":[20,0.22,-11],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-dry-side-passage-4a580059","position":[24,0.22,-11],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-dry-side-passage-4a580059","position":[28,0.22,-11],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-dry-passage-short-de3ab330","position":[29.5,0.22,-9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-dry-passage-short-de3ab330","position":[29.5,0.22,-7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,-7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,-5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,-3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[14.4,0.42,5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,-7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,-5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,-3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gutter-channel-ac944cf3","position":[28.6,0.42,5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[0.3,0.42,24.4],"rotation":20},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[-0.4,0.42,11.2],"rotation":200},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[0.2,0.42,-6.6],"rotation":340},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[-16.3,0.42,11.4],"rotation":60},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[7.9,0.42,10.8],"rotation":130},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[-6.6,0.42,13.7],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[0.5,0.42,3.2],"rotation":15},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[-17.6,0.47,-12.4],"rotation":250},{"asset":"undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","position":[0,0.42,19.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","position":[-16,0.42,7.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","position":[8,0.42,4.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-debris-dam-3cb4bb4a","position":[13.2,0.42,14],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[-1.7,0.42,18.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[1.7,0.42,5.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[-1.75,0.42,-5.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[-16.6,0.42,6.1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[15.2,0.42,-7.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[-21.7,0.42,-11.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[26.6,0.42,7.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[-1.6,0.42,20.6],"rotation":12},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[1.6,0.42,15.4],"rotation":200},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[-1.6,0.42,-5.9],"rotation":95},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[-16.5,0.42,0.6],"rotation":40},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[9.4,0.42,9.2],"rotation":170},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[21.6,0.42,-1.6],"rotation":300},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[1.6,0.42,19.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[1.6,0.42,20.1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[-1.6,0.42,7.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[-16.6,0.42,-1.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[8.6,0.42,11.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[19.6,0.42,8.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[-1.4,0.42,18.7],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[1.35,0.42,14.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[-16.7,0.42,1.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[9.5,0.42,10.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[22.4,0.42,-1.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","position":[17.2,0.42,6.3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","position":[-1.4,0.42,-7.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","position":[20.1,0.42,-3.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","position":[-1.45,0.42,23.1],"rotation":10},{"asset":"undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","position":[9.4,0.42,11.1],"rotation":190},{"asset":"undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","position":[23.6,0.42,1.2],"rotation":250},{"asset":"undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","position":[1.5,0.42,22.6],"rotation":175},{"asset":"undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","position":[-16.4,0.42,3.8],"rotation":5},{"asset":"undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","position":[-1.45,0.42,23.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","position":[16.2,0.42,6.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[0,0.42,-5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[0,0.42,-7.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[-16,0.42,12.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[8,0.42,11.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-1.85,0.42,24],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-1.85,1.67,26.4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[1.85,0.42,20],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-1.85,0.42,12],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-1.85,1.67,14.4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[1.85,0.42,4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-1.85,0.42,-4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-1.85,1.67,-1.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-17.85,0.42,12],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-14.15,0.42,4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-14.15,1.67,6.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-5.9,0.42,15.85],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-9.9,0.42,12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-9.9,1.67,12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[6.1,0.42,15.85],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[18.1,0.42,12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[18.1,1.67,12.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[6.1,0.42,3.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[10.1,0.42,0.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[10.1,1.67,0.15],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[16.2,1.67,5.1],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[27.9,1.67,3],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-22,1.67,-10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-10,1.67,-10],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-1.9,1.67,2],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[1.9,1.67,-8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-18,1.67,17.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[8.1,1.67,6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[-1.6,0.42,22.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[1.6,0.42,10.9],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[-1.6,0.42,1.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[-16.6,0.42,8.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[9.6,0.42,6.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[-13.4,0.42,14.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","position":[-1.95,1.72,10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","position":[1.95,1.72,22],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","position":[-18.05,1.72,6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","position":[11.9,1.72,14],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-warning-plaque-e3a70a5b","position":[16.1,1.72,-1],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-sewer-key-cd9faf2a","position":[-1.4,0.42,17.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-sewer-key-cd9faf2a","position":[16.4,0.42,1.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","position":[-1.5,0.42,8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","position":[1.5,0.42,-2.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","position":[-16.5,0.42,12],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-inspection-hatch-69fcffd8","position":[26,0.42,3],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","position":[-1.98,0.42,6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","position":[1.98,0.42,16],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-wall-rung-set-5e060a3c","position":[-18.02,0.42,2],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-iron-ladder-05484ab4","position":[-1.9,0.42,14.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-iron-ladder-05484ab4","position":[1.9,0.42,-6.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-iron-ladder-05484ab4","position":[16.15,0.42,8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-iron-service-door-b4aad8f4","position":[-2.1,0.42,3.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-iron-service-door-b4aad8f4","position":[16.05,0.42,-1.8],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-portcullis-grille-d73b0567","position":[0,0.42,26.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-portcullis-grille-d73b0567","position":[-16,0.42,20.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","position":[0,0.42,12.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","position":[0,0.42,-3.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","position":[8,0.42,8.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-fences-counter-a4b62c44","position":[19,0.42,3.9],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-coin-sacks-8cf75fbb","position":[18.4,1.42,3.95],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-jewellery-tray-4d95df3b","position":[19.6,1.42,3.95],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-den-strongbox-6888f8b1","position":[21,0.42,6.2],"rotation":200},{"asset":"undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","position":[17.9,0.42,6.4],"rotation":15},{"asset":"undercity-sewers-and-thieves-den-wanted-poster-wall-0ba01947","position":[20.6,0.42,6.85],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-signal-lantern-2bf1ebd0","position":[19.9,1.42,3.95],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-hammock-3a15f9fb","position":[25.6,0.42,6.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-cot-2b69f7ce","position":[23.3,0.42,6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-crate-bed-122ced25","position":[26.9,0.42,6.1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-stew-pot-e41f7897","position":[24.6,0.42,4.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-forgelet-8f0cc5de","position":[22.7,0.42,4.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","position":[22.6,0.42,5.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-loot-sorting-table-3124b089","position":[19,0.42,-6.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-map-of-city-c30a1737","position":[19,1.18,-6.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-lockpick-bench-35267ae5","position":[17,0.42,-4.2],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-den-weapon-rack-78808b62","position":[21.4,0.42,-6.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-hidden-door-bookcase-777cafc3","position":[16.6,0.42,-5.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-disguise-rack-43a359ed","position":[23.4,0.42,-6.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-dice-table-8af0f535","position":[25.6,0.42,-4.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","position":[27,0.42,-6.3],"rotation":340},{"asset":"undercity-sewers-and-thieves-den-fake-wall-panel-9c7e2f9a","position":[25,0.42,-6.85],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-den-trapdoor-2dcf163c","position":[26.6,0.42,-4.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rope-ladder-53c556ed","position":[22.3,0.42,-6.5],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-guard-post-5cfd133c","position":[15.6,0.42,2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-dog-kennel-53dbd12c","position":[27.2,0.42,-1.4],"rotation":200},{"asset":"undercity-sewers-and-thieves-den-dice-table-8af0f535","position":[21.5,0.42,1.4],"rotation":25},{"asset":"undercity-sewers-and-thieves-den-stew-pot-e41f7897","position":[20.4,0.42,0.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-water-butt-27904a3d","position":[17,0.42,-2.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-crate-bed-122ced25","position":[15.3,0.42,-2.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","position":[22.8,0.42,3.1],"rotation":95},{"asset":"undercity-sewers-and-thieves-den-spike-trap-plate-bdc722d1","position":[15.2,0.42,4.6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-tripwire-bell-e750375e","position":[14.9,0.42,0.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-tripwire-bell-e750375e","position":[28.2,0.42,3.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-den-weapon-rack-78808b62","position":[27.8,0.42,1.6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-wanted-poster-wall-0ba01947","position":[23.6,0.42,-8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-disguise-rack-43a359ed","position":[24.4,0.42,6.9],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-fake-wall-panel-9c7e2f9a","position":[14.05,0.42,5.4],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[24.5,0.42,6.6],"rotation":60},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[20.4,0.42,-8.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-8,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-7,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-6,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-5,0,6],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-8,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-7,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-6,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-5,0,10],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-8,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-7,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-6,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-5,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-8,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-7,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-6,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-right-d4735d31","position":[-5,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[6,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[7,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[8,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[9,0,18],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[6,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[7,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[8,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[9,0,22],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[6,0,26],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[7,0,26],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[8,0,26],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-ledge-left-f9ece27d","position":[9,0,26],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-water-butt-27904a3d","position":[-5.4,0.42,20.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[-4.2,0.42,17.2],"rotation":70},{"asset":"undercity-sewers-and-thieves-den-sandbag-stack-91a6782f","position":[-6.4,0.42,22.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-mortar-bucket-6287882f","position":[-3.6,0.42,9.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-wheelbarrow-ed6df4b2","position":[-5,0.42,7.4],"rotation":140},{"asset":"undercity-sewers-and-thieves-den-maintenance-handcart-eb97b400","position":[5.4,0.42,24.6],"rotation":10},{"asset":"undercity-sewers-and-thieves-den-stolen-goods-crates-26c53b7e","position":[5.8,0.42,19.4],"rotation":30},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[-6.8,0.42,18.8],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-rat-nest-heap-97075121","position":[6.4,0.42,22.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[-4.6,0.42,11.4],"rotation":200},{"asset":"undercity-sewers-and-thieves-den-silt-bank-78808d04","position":[5.2,0.42,26.6],"rotation":40},{"asset":"undercity-sewers-and-thieves-den-brick-pile-223f7fd6","position":[6.2,0.42,17.4],"rotation":190},{"asset":"undercity-sewers-and-thieves-den-coal-scuttle-b5d041d4","position":[-3.4,0.42,22.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[-5,0.42,21],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-grate-surround-ecee3eab","position":[-5,0.42,21],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-drain-grate-e6a86a6b","position":[5,0.42,20],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[-6.6,0.42,6.6],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-mile-marker-7a86d3ae","position":[6.6,0.42,25.4],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[-5,0.42,23.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-timber-shoring-set-da9f1d44","position":[5,0.42,18.1],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","position":[-5,0.42,5.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-chain-barrier-746b49bd","position":[5,0.42,27.2],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-rope-pulley-76ccb93d","position":[-6.5,0.42,10.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-screen-rake-3ab89efb","position":[6.6,0.42,21.4],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[-6.9,1.67,16.2],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-gas-lamp-bracket-f18a8764","position":[6.9,1.67,16.2],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[-6.9,0.42,8.2],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-oil-lamp-niche-d68b4395","position":[6.9,0.42,26.9],"rotation":0},{"asset":"undercity-sewers-and-thieves-den-dog-kennel-53dbd12c","position":[-6.2,0.42,9.6],"rotation":20},{"asset":"undercity-sewers-and-thieves-den-guard-post-5cfd133c","position":[6.2,0.42,28],"rotation":180},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.15,0,6],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.15,0,10],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.15,0,18],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[-9.15,0,22],"rotation":-90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[9.15,0,18],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[9.15,0,22],"rotation":90},{"asset":"undercity-sewers-and-thieves-den-buttressed-wall-bc99e042","position":[9.15,0,26],"rotation":90}],"points":[{"position":[0,0.42,18],"title":"Main trunk, cut away","text":"The demo lifts the vaulting off the undercity so it can be walked. Four metre channel bays run the length of the trunk with a two metre waterway and a raised ledge either side.","asset":"undercity-sewers-and-thieves-den-brick-barrel-open-cut-2941d71b"},{"position":[0,0.42,13.5],"title":"Cross junction","text":"Four ways meet here. The junction, tee and fork modules keep the water level and both ledges continuous, so runs join without a seam.","asset":"undercity-sewers-and-thieves-den-cross-junction-f4538362"},{"position":[-2.5,0.42,-2],"title":"Penstock chamber","text":"The widened bay carries the hand penstock wheel, the screw pump and the rocking beam pump. All three are static models: the pack ships no clips.","asset":"undercity-sewers-and-thieves-den-archimedean-screw-pum-a5ba8ceb"},{"position":[-16,0.42,-5],"title":"Cistern hall","text":"Four six metre floor tiles, masonry columns and two free standing vaults. The columns and vaults show how the enclosed version of this space goes together.","asset":"undercity-sewers-and-thieves-den-cistern-columns-8d5e24b7"},{"position":[16.5,0.42,2],"title":"Into the den","text":"Past the threshold arch, four cutaway rooms round a paved courtyard: the fence, the sleeping corner, the workshop and the store.","asset":"undercity-sewers-and-thieves-den-arched-den-threshold-0ae9bc06"},{"position":[19,0.42,3.4],"title":"The fence's counter","text":"Trade counter, strongbox, coin sacks and a jewellery tray. The posters carry no names or readable text.","asset":"undercity-sewers-and-thieves-den-fences-counter-a4b62c44"},{"position":[0,0.42,27],"title":"Weir and outfall","text":"The weir pool and overflow sill step the water down to the outfall arch and its culvert mouths, where the trunk leaves the plot.","asset":"undercity-sewers-and-thieves-den-overflow-weir-6596f39e"},{"position":[8,0.42,8],"title":"Collapsed reach","text":"A fallen barrel section, timber shoring and a low vault bay close the loop between the two eastern arms.","asset":"undercity-sewers-and-thieves-den-brick-barrel-collapse-24cbe6db"}],"poster":{"position":[-5.1,2.1,13.7],"lookAt":[0,0.2,14]}},"bounds":{"min":[-31,0,-26],"max":[31,7,32]},"assets":[{"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":6,"publishedAt":"2026-09-07T20:36:34.714Z","updatedAt":"2026-10-06T11:52:26.123Z","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":"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":10,"publishedAt":"2026-09-07T20:36:26.719Z","updatedAt":"2026-10-06T06:52:57.284Z","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":"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":8,"publishedAt":"2026-09-07T20:36:28.553Z","updatedAt":"2026-10-12T11:31:59.814Z","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":"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":8,"publishedAt":"2026-09-07T20:36:30.987Z","updatedAt":"2026-10-13T02:45:15.455Z","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":"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":8,"publishedAt":"2026-09-07T20:36:27.801Z","updatedAt":"2026-10-06T18:05:28.957Z","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":"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":6,"publishedAt":"2026-09-07T20:36:29.429Z","updatedAt":"2026-10-06T19:29:33.648Z","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":"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":7,"publishedAt":"2026-09-07T20:36:31.123Z","updatedAt":"2026-10-06T11:52:31.388Z","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":"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":6,"publishedAt":"2026-09-07T20:36:32.208Z","updatedAt":"2026-10-06T05:35:35.494Z","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":"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":6,"publishedAt":"2026-09-07T20:36:27.958Z","updatedAt":"2026-10-06T19:29:35.622Z","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":"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":8,"publishedAt":"2026-09-07T20:36:31.088Z","updatedAt":"2026-10-06T10:32:33.470Z","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":"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":7,"publishedAt":"2026-09-07T20:36:33.049Z","updatedAt":"2026-10-06T05:35:35.698Z","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":"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":6,"publishedAt":"2026-09-07T20:36:33.549Z","updatedAt":"2026-10-06T11:52:30.547Z","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":"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":8,"publishedAt":"2026-09-07T20:36:25.606Z","updatedAt":"2026-10-25T10:37:19.043Z","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":"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":8,"publishedAt":"2026-09-07T20:36:27.574Z","updatedAt":"2026-10-06T19:29:37.425Z","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":"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":7,"publishedAt":"2026-09-07T20:36:30.346Z","updatedAt":"2026-10-06T05:39:32.308Z","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":"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":6,"publishedAt":"2026-09-07T20:36:29.953Z","updatedAt":"2026-10-06T17:02:31.425Z","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":"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":10,"publishedAt":"2026-09-07T20:36:27.433Z","updatedAt":"2026-10-06T19:29:40.326Z","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":"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":8,"publishedAt":"2026-09-07T20:36:25.710Z","updatedAt":"2026-10-25T06:31:06.299Z","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":"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":8,"publishedAt":"2026-09-07T20:36:26.120Z","updatedAt":"2026-10-09T00:38:31.990Z","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":"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":9,"publishedAt":"2026-09-07T20:36:23.794Z","updatedAt":"2026-10-12T04:40:22.080Z","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":"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":7,"publishedAt":"2026-09-07T20:36:23.941Z","updatedAt":"2026-10-06T02:52:15.351Z","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":6,"publishedAt":"2026-09-07T20:36:23.866Z","updatedAt":"2026-10-06T17:55:06.722Z","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":"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":9,"publishedAt":"2026-09-07T20:36:29.307Z","updatedAt":"2026-10-12T04:39:57.483Z","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":"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":7,"publishedAt":"2026-09-07T20:36:23.712Z","updatedAt":"2026-10-06T05:39:32.997Z","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":"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":11,"publishedAt":"2026-09-07T20:36:23.779Z","updatedAt":"2026-10-07T10:38:20.642Z","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":"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":7,"publishedAt":"2026-09-07T20:36:24.028Z","updatedAt":"2026-10-06T17:55:07.363Z","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":"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":8,"publishedAt":"2026-09-07T20:36:31.242Z","updatedAt":"2026-10-06T11:52:31.356Z","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":8,"publishedAt":"2026-09-07T20:36:31.173Z","updatedAt":"2026-10-25T16:03:21.020Z","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":7,"publishedAt":"2026-09-07T20:36:31.672Z","updatedAt":"2026-10-06T11:52:31.391Z","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":"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":7,"publishedAt":"2026-09-07T21:00:40.234Z","updatedAt":"2026-10-25T12:57:27.678Z","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":"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":7,"publishedAt":"2026-09-07T20:36:33.862Z","updatedAt":"2026-10-06T11:52:30.512Z","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":"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":8,"publishedAt":"2026-09-07T20:36:29.481Z","updatedAt":"2026-10-06T19:29:33.730Z","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":"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":7,"publishedAt":"2026-09-07T20:36:29.301Z","updatedAt":"2026-10-06T19:29:35.355Z","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":"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":9,"publishedAt":"2026-09-07T21:00:40.228Z","updatedAt":"2026-10-25T13:28:43.009Z","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":"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":8,"publishedAt":"2026-09-07T20:36:25.701Z","updatedAt":"2026-10-25T07:47:23.995Z","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":"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":7,"publishedAt":"2026-09-07T20:36:23.759Z","updatedAt":"2026-10-06T00:58:13.781Z","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":"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":7,"publishedAt":"2026-09-07T21:00:40.120Z","updatedAt":"2026-10-12T04:39:52.240Z","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":"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":9,"publishedAt":"2026-09-07T20:36:23.753Z","updatedAt":"2026-10-25T11:53:56.146Z","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":"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":6,"publishedAt":"2026-09-07T20:36:27.696Z","updatedAt":"2026-10-06T19:29:36.196Z","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":"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":8,"publishedAt":"2026-09-07T20:36:27.536Z","updatedAt":"2026-10-25T15:36:38.231Z","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":"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":11,"publishedAt":"2026-09-07T20:36:33.192Z","updatedAt":"2026-10-25T10:46:32.999Z","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":"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":9,"publishedAt":"2026-09-07T20:36:33.034Z","updatedAt":"2026-10-25T07:12:09.458Z","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":"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":10,"publishedAt":"2026-09-07T20:36:33.036Z","updatedAt":"2026-10-07T11:12:40.914Z","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":"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":6,"publishedAt":"2026-09-07T20:36:33.015Z","updatedAt":"2026-10-06T06:52:50.466Z","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":"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":10,"publishedAt":"2026-09-07T21:00:41.914Z","updatedAt":"2026-10-06T15:17:10.727Z","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":6,"publishedAt":"2026-09-07T21:00:41.818Z","updatedAt":"2026-10-06T23:35:42.668Z","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":"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":8,"publishedAt":"2026-09-07T21:00:41.994Z","updatedAt":"2026-10-07T05:41:42.626Z","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":"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":8,"publishedAt":"2026-09-07T21:00:41.978Z","updatedAt":"2026-10-06T11:20:38.704Z","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":"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":7,"publishedAt":"2026-09-07T21:00:58.386Z","updatedAt":"2026-10-07T12:44:08.497Z","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":"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":8,"publishedAt":"2026-09-07T21:00:55.574Z","updatedAt":"2026-10-06T11:12:21.503Z","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":"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":7,"publishedAt":"2026-09-07T21:00:47.060Z","updatedAt":"2026-10-06T23:25:58.013Z","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":"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":9,"publishedAt":"2026-09-07T21:00:47.040Z","updatedAt":"2026-10-25T07:24:00.410Z","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":"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":7,"publishedAt":"2026-09-07T21:00:58.991Z","updatedAt":"2026-10-25T06:53:47.911Z","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":"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":8,"publishedAt":"2026-09-07T21:00:43.629Z","updatedAt":"2026-10-11T12:18:45.403Z","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":7,"publishedAt":"2026-09-07T21:00:43.598Z","updatedAt":"2026-10-06T06:10:34.568Z","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":7,"publishedAt":"2026-09-07T21:00:43.677Z","updatedAt":"2026-10-05T23:34:59.585Z","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":9,"publishedAt":"2026-09-07T21:00:43.646Z","updatedAt":"2026-10-12T14:47:08.533Z","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":"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":6,"publishedAt":"2026-09-07T21:00:56.725Z","updatedAt":"2026-10-06T23:21:23.418Z","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":6,"publishedAt":"2026-09-07T21:00:57.393Z","updatedAt":"2026-10-05T14:29:20.062Z","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":"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":7,"publishedAt":"2026-09-07T21:00:55.771Z","updatedAt":"2026-10-06T04:00:55.318Z","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":"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":5,"publishedAt":"2026-09-07T21:00:45.309Z","updatedAt":"2026-10-06T23:25:59.597Z","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":"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":7,"publishedAt":"2026-09-07T21:00:45.283Z","updatedAt":"2026-10-13T03:06:54.101Z","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":"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":8,"publishedAt":"2026-09-07T21:00:59.160Z","updatedAt":"2026-10-25T14:34:20.529Z","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":"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":7,"publishedAt":"2026-09-07T21:00:57.450Z","updatedAt":"2026-10-06T14:55:44.618Z","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":9,"publishedAt":"2026-09-07T21:00:57.654Z","updatedAt":"2026-10-25T16:41:59.858Z","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":"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":7,"publishedAt":"2026-09-07T20:36:33.965Z","updatedAt":"2026-10-06T11:52:26.558Z","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":"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":8,"publishedAt":"2026-09-07T20:36:26.735Z","updatedAt":"2026-10-08T07:16:16.270Z","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":"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":7,"publishedAt":"2026-09-07T20:36:29.458Z","updatedAt":"2026-10-06T16:47:54.624Z","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":"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":6,"publishedAt":"2026-09-07T21:00:39.990Z","updatedAt":"2026-10-06T11:52:09.650Z","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":7,"publishedAt":"2026-09-07T21:00:39.986Z","updatedAt":"2026-10-06T11:52:09.756Z","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":6,"publishedAt":"2026-09-07T21:00:39.996Z","updatedAt":"2026-10-06T11:52:09.222Z","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":"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":6,"publishedAt":"2026-09-07T21:00:52.132Z","updatedAt":"2026-10-12T11:31:49.991Z","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":"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":6,"publishedAt":"2026-09-07T21:00:53.319Z","updatedAt":"2026-10-05T14:29:44.896Z","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":"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":7,"publishedAt":"2026-09-07T21:00:52.138Z","updatedAt":"2026-10-06T01:36:19.348Z","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":"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":6,"publishedAt":"2026-09-07T21:00:55.038Z","updatedAt":"2026-10-08T04:29:09.198Z","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":"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":6,"publishedAt":"2026-09-07T21:00:53.160Z","updatedAt":"2026-10-06T03:34:43.050Z","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":"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":5,"publishedAt":"2026-09-07T21:00:55.836Z","updatedAt":"2026-10-06T23:21:23.985Z","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":"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":7,"publishedAt":"2026-09-07T21:00:53.854Z","updatedAt":"2026-10-06T23:25:55.413Z","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":"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":7,"publishedAt":"2026-09-07T21:00:53.896Z","updatedAt":"2026-10-06T13:42:29.939Z","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":"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":6,"publishedAt":"2026-09-07T21:00:47.150Z","updatedAt":"2026-10-06T23:25:57.655Z","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":8,"publishedAt":"2026-09-07T21:00:48.085Z","updatedAt":"2026-10-25T13:52:27.103Z","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":"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":6,"publishedAt":"2026-09-07T21:00:50.459Z","updatedAt":"2026-10-06T23:25:55.536Z","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":"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":6,"publishedAt":"2026-09-07T21:00:50.502Z","updatedAt":"2026-10-06T23:25:55.394Z","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":"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":8,"publishedAt":"2026-09-07T21:00:48.808Z","updatedAt":"2026-10-12T04:39:36.000Z","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":6,"publishedAt":"2026-09-07T21:00:48.723Z","updatedAt":"2026-10-06T23:25:58.271Z","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":"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":5,"publishedAt":"2026-09-07T21:00:45.391Z","updatedAt":"2026-10-06T23:25:58.423Z","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":"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":9,"publishedAt":"2026-09-07T21:00:45.329Z","updatedAt":"2026-10-06T08:36:17.009Z","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":"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":8,"publishedAt":"2026-09-07T21:00:48.791Z","updatedAt":"2026-10-25T13:40:37.686Z","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":8,"publishedAt":"2026-09-07T21:00:50.133Z","updatedAt":"2026-10-06T08:36:42.559Z","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":8,"publishedAt":"2026-09-07T21:00:51.642Z","updatedAt":"2026-10-06T23:25:55.454Z","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":"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":7,"publishedAt":"2026-09-07T21:00:59.285Z","updatedAt":"2026-10-06T17:10:53.963Z","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":"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":8,"publishedAt":"2026-09-07T21:01:08.540Z","updatedAt":"2026-10-25T15:11:54.113Z","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":8,"publishedAt":"2026-09-07T21:01:09.238Z","updatedAt":"2026-10-06T02:41:35.217Z","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":"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":7,"publishedAt":"2026-09-07T21:01:04.053Z","updatedAt":"2026-10-06T17:40:12.701Z","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":"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":6,"publishedAt":"2026-09-07T21:01:02.701Z","updatedAt":"2026-10-06T23:21:22.022Z","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":"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":9,"publishedAt":"2026-09-07T21:01:06.846Z","updatedAt":"2026-10-25T12:41:58.400Z","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":"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":5,"publishedAt":"2026-09-07T21:01:05.864Z","updatedAt":"2026-10-06T23:21:18.916Z","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":"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":6,"publishedAt":"2026-09-07T21:01:00.924Z","updatedAt":"2026-10-06T23:21:22.229Z","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":6,"publishedAt":"2026-09-07T21:01:02.363Z","updatedAt":"2026-10-06T23:21:22.534Z","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":7,"publishedAt":"2026-09-07T21:01:02.676Z","updatedAt":"2026-10-06T23:21:22.451Z","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":"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":8,"publishedAt":"2026-09-07T21:01:06.359Z","updatedAt":"2026-10-08T14:27:25.279Z","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":"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":5,"publishedAt":"2026-09-07T21:01:02.306Z","updatedAt":"2026-10-06T23:21:21.845Z","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":"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":8,"publishedAt":"2026-09-07T21:01:01.075Z","updatedAt":"2026-10-25T12:25:00.813Z","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":"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":6,"publishedAt":"2026-09-07T21:01:08.005Z","updatedAt":"2026-10-06T23:16:05.992Z","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":"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":7,"publishedAt":"2026-09-07T21:01:00.713Z","updatedAt":"2026-10-06T17:10:55.636Z","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":"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":5,"publishedAt":"2026-09-07T21:01:07.951Z","updatedAt":"2026-10-06T23:16:06.595Z","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":"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":6,"publishedAt":"2026-09-07T21:01:05.094Z","updatedAt":"2026-10-06T00:50:50.915Z","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":"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":6,"publishedAt":"2026-09-07T21:01:07.564Z","updatedAt":"2026-10-06T23:16:05.577Z","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":"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":6,"publishedAt":"2026-09-07T21:01:06.318Z","updatedAt":"2026-10-06T23:16:05.062Z","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":"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":7,"publishedAt":"2026-09-07T21:01:09.600Z","updatedAt":"2026-10-06T23:16:05.374Z","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":"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":7,"publishedAt":"2026-09-07T21:01:04.633Z","updatedAt":"2026-10-06T23:21:20.297Z","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":8,"publishedAt":"2026-09-07T21:01:04.611Z","updatedAt":"2026-10-06T16:54:13.860Z","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":"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":6,"publishedAt":"2026-09-07T21:01:10.687Z","updatedAt":"2026-10-06T23:16:02.674Z","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":8,"publishedAt":"2026-09-07T21:01:10.745Z","updatedAt":"2026-10-06T08:27:17.603Z","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":10,"publishedAt":"2026-09-07T21:01:11.015Z","updatedAt":"2026-10-13T10:59:57.994Z","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":8,"publishedAt":"2026-09-07T21:01:11.243Z","updatedAt":"2026-10-06T23:16:02.358Z","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);"}}]}}