{"data":{"id":"25","slug":"downtown-office-interiors","title":"Open-plan office","summary":"Walk a 20 by 14 metre office floor built from the Downtown Office Interiors pack: three bench desk runs with monitors and task chairs, a glazed boardroom, a meeting pod and phone booths, a lounge, an executive corner, lockers and print.","url":"https://3dassets.dev/demos/downtown-office-interiors","coverUrl":"https://cdn.3dassets.dev/media/downtown-office-interiors-demo-2.png","featured":false,"pack":{"slug":"downtown-office-interiors","title":"Downtown Office Interiors","url":"https://3dassets.dev/packs/downtown-office-interiors","summary":"Realistic office workstations, bench desking, task seating, storage, meeting rooms, desk technology and acoustic partitions.","assetCount":106,"totalBytes":9900692,"starterScene":{"slug":"downtown-office-interiors-open-plan-floo-fc7431a0-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/17066/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-open-plan-floo-fc7431a0-starter-scene","fileSize":1289984}},"placementCount":72,"assetCount":24,"spawn":{"position":[0,0,3.8],"yaw":180},"publishedAt":"2026-09-07T20:31:08.565Z","updatedAt":"2026-09-07T20:31:08.565Z","description":"One floor from 24 of the pack's 106 models, in the room preset with cool light and lamps under a 3 m ceiling.\n\nYou start by the pods facing the desks: three six-position bench desks with cable spines, eighteen mesh-back task chairs and dual monitor arms, split by a planter-topped divider. The glazed boardroom on the west holds the eight-person table, six cantilever chairs and a whiteboard. Two acoustic phone booths, the four-person meeting pod, a standing meeting table and a mobile whiteboard take the south-east; a sofa, an armchair and ottoman cubes make the lounge; the executive desk and chair sit in the north-east corner beside the touchdown bar and its high stools. The printer, the recycling station and a tambour cupboard line the back wall, with two locker banks on the west wall and three floor planters.\n\nThis pack ships animation clips: the boardroom table hatch, the pod and booth doors, the executive desk drawers, the printer tray, the cupboard tambour and the locker doors play as you come within three metres and rewind when you leave.","scene":{"version":1,"spawn":{"position":[0,0,3.8],"yaw":180},"bounds":{"min":[-10,0,-7],"max":[10,3,7]},"ground":{"style":"plain"},"environment":{"preset":"room","wallHeight":3,"wall":"#eceff1","floor":"#c9ccd1","light":"cool","lampHeight":2.8,"shadows":true},"placements":[{"asset":"downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","position":[-6,0,-3.5],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-7.4,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-7.4,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-7.4,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-7.4,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-6,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-6,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-6,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-6,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-4.6,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-4.6,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-4.6,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-4.6,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","position":[-6,0,0.5],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-7.4,0,-0.6499999999999999],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-7.4,0,1.65],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-7.4,0.72,0.15000000000000002],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-7.4,0.72,0.85],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-6,0,-0.6499999999999999],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-6,0,1.65],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-6,0.72,0.15000000000000002],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-6,0.72,0.85],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-4.6,0,-0.6499999999999999],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-4.6,0,1.65],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-4.6,0.72,0.15000000000000002],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-4.6,0.72,0.85],"rotation":0},{"asset":"downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","position":[0.5,0,-3.5],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-0.8999999999999999,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[-0.8999999999999999,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-0.8999999999999999,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[-0.8999999999999999,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[0.5,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[0.5,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[0.5,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[0.5,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[1.9,0,-4.65],"rotation":0},{"asset":"downtown-office-interiors-task-chair-mesh-b69df323","position":[1.9,0,-2.35],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[1.9,0.72,-3.85],"rotation":180},{"asset":"downtown-office-interiors-monitor-arm-dual-e1548459","position":[1.9,0.72,-3.15],"rotation":0},{"asset":"downtown-office-interiors-planter-divider-c399d4d2","position":[-2.8,0,-3.5],"rotation":90},{"asset":"downtown-office-interiors-glazed-boardroom-5c7c7a97","position":[-5.5,0,5.2],"rotation":0},{"asset":"downtown-office-interiors-boardroom-table-8-7fca1c34","position":[-5.5,0,5.2],"rotation":0},{"asset":"downtown-office-interiors-whiteboard-wall-mounted-251627dd","position":[-5.5,0.9,6.85],"rotation":0},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-6.3,0,4.5],"rotation":0},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-6.3,0,5.9],"rotation":180},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-5.5,0,4.5],"rotation":0},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-5.5,0,5.9],"rotation":180},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-4.7,0,4.5],"rotation":0},{"asset":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","position":[-4.7,0,5.9],"rotation":180},{"asset":"downtown-office-interiors-meeting-pod-4-person-fc000e18","position":[6.5,0,5],"rotation":180},{"asset":"downtown-office-interiors-phone-booth-acoustic-3530e845","position":[2.2,0,6.2],"rotation":0},{"asset":"downtown-office-interiors-phone-booth-acoustic-3530e845","position":[3.5,0,6.2],"rotation":0},{"asset":"downtown-office-interiors-standing-meeting-table-2d8667ee","position":[4.5,0,1.5],"rotation":0},{"asset":"downtown-office-interiors-whiteboard-mobile-61f65aa8","position":[4.5,0,3.3],"rotation":180},{"asset":"downtown-office-interiors-sofa-two-seat-692d1b57","position":[8.6,0,-0.5],"rotation":270},{"asset":"downtown-office-interiors-lounge-armchair-f30911e6","position":[6.6,0,-2.4],"rotation":45},{"asset":"downtown-office-interiors-ottoman-cube-a3eeb142","position":[7.2,0,0.9],"rotation":0},{"asset":"downtown-office-interiors-ottoman-cube-a3eeb142","position":[7.9,0,1.5],"rotation":30},{"asset":"downtown-office-interiors-desk-executive-6ef42aca","position":[7,0,-5.5],"rotation":0},{"asset":"downtown-office-interiors-executive-chair-9801b58f","position":[7,0,-6.3],"rotation":0},{"asset":"downtown-office-interiors-touchdown-bar-fb7e8093","position":[2.5,0,-6.4],"rotation":0},{"asset":"downtown-office-interiors-high-stool-a4aaa740","position":[1.8,0,-5.6],"rotation":180},{"asset":"downtown-office-interiors-high-stool-a4aaa740","position":[2.5,0,-5.6],"rotation":180},{"asset":"downtown-office-interiors-high-stool-a4aaa740","position":[3.2,0,-5.6],"rotation":180},{"asset":"downtown-office-interiors-printer-multifunction-0b3b5d41","position":[-1,0,-6.5],"rotation":0},{"asset":"downtown-office-interiors-recycling-station-3-stream-95c45063","position":[0.3,0,-6.6],"rotation":0},{"asset":"downtown-office-interiors-tambour-cupboard-a81d4e36","position":[-2.7,0,-6.6],"rotation":0},{"asset":"downtown-office-interiors-locker-bank-12-33f03a4a","position":[-9.5,0,-4],"rotation":90},{"asset":"downtown-office-interiors-locker-bank-12-33f03a4a","position":[-9.5,0,-2.9],"rotation":90},{"asset":"downtown-office-interiors-floor-planter-large-8b6e3c88","position":[0,0,6.5],"rotation":0},{"asset":"downtown-office-interiors-floor-planter-large-8b6e3c88","position":[9.3,0,-3.2],"rotation":0},{"asset":"downtown-office-interiors-floor-planter-large-8b6e3c88","position":[-9.3,0,6.5],"rotation":0}],"points":[{"position":[-3,0,-1.5],"title":"Bench desks","text":"Three six-position bench desks with cable spines, eighteen mesh-back task chairs and a dual monitor arm at every position, with a planter-topped divider between the runs.","asset":"downtown-office-interiors-bench-desk-6-position-spine-63ac96a0"},{"position":[-5.5,0,2.4],"title":"Boardroom","text":"The glazed boardroom with the eight-person table, six cantilever chairs and a wall whiteboard. The table has a clip: its cable hatch opens as you approach.","asset":"downtown-office-interiors-glazed-boardroom-5c7c7a97"},{"position":[3,0,4.5],"title":"Pods and booths","text":"Two acoustic phone booths and the four-person meeting pod, with a standing meeting table and a mobile whiteboard. The pod and booth doors have clips.","asset":"downtown-office-interiors-meeting-pod-4-person-fc000e18"},{"position":[6.4,0,-0.8],"title":"Lounge","text":"A two-seat sofa, a lounge armchair and two ottoman cubes by the east wall.","asset":"downtown-office-interiors-sofa-two-seat-692d1b57"},{"position":[5.5,0,-4.8],"title":"Executive desk","text":"The executive desk with modesty panel and the chair with headrest in the corner; the desk drawers have clips. Beside it the hot-desk touchdown bar with three high stools.","asset":"downtown-office-interiors-desk-executive-6ef42aca"},{"position":[-1,0,-5.2],"title":"Print and lockers","text":"The multifunction printer, the recycling station and a tambour cupboard along the back wall, and two twelve-door locker banks on the west wall, all with opening clips.","asset":"downtown-office-interiors-printer-multifunction-0b3b5d41"}],"poster":{"position":[-5.6,1.8,2],"lookAt":[-6,0.3,-3.5]}},"bounds":{"min":[-10,0,-7],"max":[10,3,7]},"assets":[{"id":"16975","slug":"downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","title":"Bench desk, six positions with cable spine (Downtown Office Interiors)","summary":"A back-to-back six-position bench desk run: three 1.4 m positions each side, 1.6 m overall depth, with a lidded central cable spine, four A-frame legs and six cable baskets.","description":"A back-to-back six-position bench desk run: three 1.4 m positions each side, 1.6 m overall depth, with a lidded central cable spine, four A-frame legs and six cable baskets. Desk grid: finished top at 730 mm, 800 mm deep positions on the 1.4 / 1.6 / 1.8 m bench module. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","cdnUrl":"https://cdn.3dassets.dev/assets/16975/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-bench-desk-6-position-spine-63ac96a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/16975/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16975/v1/poster.webp","blurhash":"UAC6lcoz01of~V?HM{IV00-o^*IV004.-p%1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":299400,"triangles":6184,"vertices":18552,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.103749990463257,0.00015472649443803999,-0.7979824686194483],"max":[2.103749990463257,0.7348655680623166,0.7979824686194483]},"sizeMeters":[4.207,0.735,1.596],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:40.974Z","updatedAt":"2026-09-07T16:24:41.073Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16975/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchDeskSixPositionsWithCableSpineDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16975/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16975/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16975/v1/model.glb\" alt=\"Bench desk, six positions with cable spine (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16975/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16975/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16979","slug":"downtown-office-interiors-task-chair-mesh-b69df323","title":"Task chair with mesh back (Downtown Office Interiors)","summary":"A 0.66 m wide office task chair: five-star castor base, gas lift with a paddle-lever mechanism, a piped seat cushion, a tensioned mesh back in a loop frame with a lumbar slider, and height-adjustable T arms.","description":"A 0.66 m wide office task chair: five-star castor base, gas lift with a paddle-lever mechanism, a piped seat cushion, a tensioned mesh back in a loop frame with a lumbar slider, and height-adjustable T arms. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-task-chair-mesh-b69df323","cdnUrl":"https://cdn.3dassets.dev/assets/16979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-task-chair-mesh-b69df323","thumbnailUrl":"https://cdn.3dassets.dev/assets/16979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16979/v1/poster.webp","blurhash":"U48EJGD%00_4o~D$s+_N8^IU.8.8fkx]RiD$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":176828,"triangles":3616,"vertices":10848,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.34299524386286656,0,-0.3699782774364864],"max":[0.2892452355182163,1.2141966819763184,0.34022691702007407]},"sizeMeters":[0.632,1.214,0.71],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:41.539Z","updatedAt":"2026-09-07T16:24:41.657Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16979/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TaskChairWithMeshBackDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16979/v1/model.glb\" alt=\"Task chair with mesh back (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16979/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17030","slug":"downtown-office-interiors-monitor-arm-dual-e1548459","title":"Dual monitor arm (Downtown Office Interiors)","summary":"A dual monitor arm: a desk clamp, a 0.46 m post and two articulated arms with tilt heads and 100 mm mounting plates.","description":"A dual monitor arm: a desk clamp, a 0.46 m post and two articulated arms with tilt heads and 100 mm mounting plates. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-monitor-arm-dual-e1548459","cdnUrl":"https://cdn.3dassets.dev/assets/17030/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-monitor-arm-dual-e1548459","thumbnailUrl":"https://cdn.3dassets.dev/assets/17030/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17030/v1/poster.webp","blurhash":"U67w?5-=00IU_4%NIoM{4nxv?bIo4nM{%Nog","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":43832,"triangles":876,"vertices":2628,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000008451706064255271,-0.11501236245521355],"max":[0.4000000059604645,0.48000844097722817,0.05501236007102776]},"sizeMeters":[0.8,0.48,0.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:54.049Z","updatedAt":"2026-09-07T16:24:54.144Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17030/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DualMonitorArmDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17030/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17030/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17030/v1/model.glb\" alt=\"Dual monitor arm (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17030/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17030/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17048","slug":"downtown-office-interiors-planter-divider-c399d4d2","title":"Planter-topped divider (Downtown Office Interiors)","summary":"A 1.4 m planter-topped divider: an empty trough with a drainage grille and timber capping, carrying a slatted screen above.","description":"A 1.4 m planter-topped divider: an empty trough with a drainage grille and timber capping, carrying a slatted screen above. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-planter-divider-c399d4d2","cdnUrl":"https://cdn.3dassets.dev/assets/17048/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-planter-divider-c399d4d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/17048/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17048/v1/poster.webp","blurhash":"UDFFZ~-:00M{Z}-:XA9Z00IU^*o#_4WYMwRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":56924,"triangles":1120,"vertices":3360,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7120000123977661,-0.000009311236165765457,-0.22200702312289733],"max":[0.7120000123977661,1.2711685473055523,0.22200702312289733]},"sizeMeters":[1.424,1.271,0.444],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:59.322Z","updatedAt":"2026-09-07T16:24:59.441Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17048/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlanterToppedDividerDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17048/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17048/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17048/v1/model.glb\" alt=\"Planter-topped divider (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17048/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17048/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17067","slug":"downtown-office-interiors-glazed-boardroom-5c7c7a97","title":"Glazed Boardroom (Downtown Office Interiors)","summary":"A glazed boardroom on the 1.2 m partition module: a twelve-person boardroom table with a hinged cable box, twelve castor meeting chairs, a credenza with a wall screen above it, a video bar, a ceiling projector, a speakerphone, a writing wall and a floor planter. Static...","description":"A glazed boardroom on the 1.2 m partition module: a twelve-person boardroom table with a hinged cable box, twelve castor meeting chairs, a credenza with a wall screen above it, a video bar, a ceiling projector, a speakerphone, a writing wall and a floor planter. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-glazed-boardroom-5c7c7a97","cdnUrl":"https://cdn.3dassets.dev/assets/17067/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-glazed-boardroom-5c7c7a97","thumbnailUrl":"https://cdn.3dassets.dev/assets/17067/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17067/v1/poster.webp","blurhash":"U7D,Ao-;00og_N-;MxIU00j]?GRPR4V?R-kC","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":642880,"triangles":15088,"vertices":32350,"meshes":59,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-3.0599871817719864,-0.000020904061715482092,-2.4599871817719863],"max":[3.135067292972287,2.5999999046325684,1.3350672929722873]},"sizeMeters":[6.195,2.6,3.795],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:25:02.725Z","updatedAt":"2026-09-07T21:20:49.088Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17067/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GlazedBoardroomDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17067/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17067/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17067/v1/model.glb\" alt=\"Glazed Boardroom (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17067/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17067/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17013","slug":"downtown-office-interiors-boardroom-table-8-7fca1c34","title":"Boardroom table, eight person (Downtown Office Interiors)","summary":"A 2.4 m by 1.2 m eight-person boardroom table: a shaped timber top over a chamfered underframe on two panel trestles, with a recessed cable box whose lid is a named hinged node and four edge grommets.","description":"A 2.4 m by 1.2 m eight-person boardroom table: a shaped timber top over a chamfered underframe on two panel trestles, with a recessed cable box whose lid is a named hinged node and four edge grommets. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: cable-lid. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-boardroom-table-8-7fca1c34","cdnUrl":"https://cdn.3dassets.dev/assets/17013/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-boardroom-table-8-7fca1c34","thumbnailUrl":"https://cdn.3dassets.dev/assets/17013/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17013/v1/poster.webp","blurhash":"UFCsQ=xt01j[~W%LM|M{00xu-;M|00IoxZt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":100608,"triangles":1984,"vertices":5952,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.2000000476837158,-0.000038975631291737756,-0.600091579373924],"max":[1.2000000476837158,0.7519872701923029,0.600091579373924]},"sizeMeters":[2.4,0.752,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:50.618Z","updatedAt":"2026-09-07T16:24:50.732Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17013/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BoardroomTableEightPersonDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17013/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17013/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17013/v1/model.glb\" alt=\"Boardroom table, eight person (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17013/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17013/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17019","slug":"downtown-office-interiors-whiteboard-wall-mounted-251627dd","title":"Wall-mounted whiteboard (Downtown Office Interiors)","summary":"A 2.0 m by 1.2 m wall-mounted whiteboard in an aluminium frame with a pen tray, three markers and two rear mounting cleats.","description":"A 2.0 m by 1.2 m wall-mounted whiteboard in an aluminium frame with a pen tray, three markers and two rear mounting cleats. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-whiteboard-wall-mounted-251627dd","cdnUrl":"https://cdn.3dassets.dev/assets/17019/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-whiteboard-wall-mounted-251627dd","thumbnailUrl":"https://cdn.3dassets.dev/assets/17019/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17019/v1/poster.webp","blurhash":"UDHC1S-;00%M?b~qog9F00t6~qM{M{IUj?xt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":25196,"triangles":496,"vertices":1488,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.000044294837301193934,-0.03503954835169223],"max":[1,1.2600165513553812,0.08295168778761447]},"sizeMeters":[2,1.26,0.118],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:51.491Z","updatedAt":"2026-09-07T16:24:51.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17019/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallMountedWhiteboardDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17019/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17019/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17019/v1/model.glb\" alt=\"Wall-mounted whiteboard (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17019/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17019/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16986","slug":"downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","title":"Cantilever meeting chair (Downtown Office Interiors)","summary":"A sprung cantilever meeting chair: a continuous tubular sled frame, a piped seat cushion, a welted back pad on twin stems and open loop arms.","description":"A sprung cantilever meeting chair: a continuous tubular sled frame, a piped seat cushion, a welted back pad on twin stems and open loop arms. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","cdnUrl":"https://cdn.3dassets.dev/assets/16986/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-meeting-chair-cantilever-fdb6d31a","thumbnailUrl":"https://cdn.3dassets.dev/assets/16986/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16986/v1/poster.webp","blurhash":"U5AdDzxZ00%N?wD%9E?c009F?b_3ROtRo#Ri","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":70524,"triangles":1400,"vertices":4200,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.286001375863378,0,-0.32509297132492065],"max":[0.286001375863378,0.9295123164407098,0.25730753359643055]},"sizeMeters":[0.572,0.93,0.582],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:42.946Z","updatedAt":"2026-09-07T16:24:43.058Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16986/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CantileverMeetingChairDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16986/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16986/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16986/v1/model.glb\" alt=\"Cantilever meeting chair (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16986/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16986/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17023","slug":"downtown-office-interiors-meeting-pod-4-person-fc000e18","title":"Acoustic meeting pod, four person (Downtown Office Interiors)","summary":"A 2.24 m by 1.72 m four-person acoustic meeting pod: felt-lined walls, glazed front lights either side of an open entry bay, two piped bench seats, a pedestal table with a cable box and a roof vent.","description":"A 2.24 m by 1.72 m four-person acoustic meeting pod: felt-lined walls, glazed front lights either side of an open entry bay, two piped bench seats, a pedestal table with a cable box and a roof vent. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: cable-lid. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-meeting-pod-4-person-fc000e18","cdnUrl":"https://cdn.3dassets.dev/assets/17023/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-meeting-pod-4-person-fc000e18","thumbnailUrl":"https://cdn.3dassets.dev/assets/17023/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17023/v1/poster.webp","blurhash":"U9F~muXA9E~p9a%N-:Rk00oJ4n9F_NRk9FM_","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":240536,"triangles":4868,"vertices":14604,"meshes":8,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.1399787415167917,0,-0.8799854491625546],"max":[1.1399787415167917,2.315000057220459,0.8799854491625546]},"sizeMeters":[2.28,2.315,1.76],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:53.381Z","updatedAt":"2026-09-07T16:24:53.491Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17023/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function AcousticMeetingPodFourPersonDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17023/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17023/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17023/v1/model.glb\" alt=\"Acoustic meeting pod, four person (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17023/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17023/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17022","slug":"downtown-office-interiors-phone-booth-acoustic-3530e845","title":"Acoustic phone booth (Downtown Office Interiors)","summary":"A 1.02 m single-occupancy acoustic phone booth: felt-lined walls on a raised plinth, a glazed hinged leaf as a named node, a laptop shelf, a leaning stool, a roof ventilation grille and a downlight.","description":"A 1.02 m single-occupancy acoustic phone booth: felt-lined walls on a raised plinth, a glazed hinged leaf as a named node, a laptop shelf, a leaning stool, a roof ventilation grille and a downlight. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: booth-door. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-phone-booth-acoustic-3530e845","cdnUrl":"https://cdn.3dassets.dev/assets/17022/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-phone-booth-acoustic-3530e845","thumbnailUrl":"https://cdn.3dassets.dev/assets/17022/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17022/v1/poster.webp","blurhash":"U7DcadbJ00%0xvayoIWo00jF~qNGxvafM{of","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":159652,"triangles":3168,"vertices":9504,"meshes":9,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5250480644368279,0,-0.5250480644368279],"max":[0.5250480644368279,2.26200008392334,0.5340095317165066]},"sizeMeters":[1.05,2.262,1.059],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:52.275Z","updatedAt":"2026-09-07T16:24:52.386Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17022/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function AcousticPhoneBoothDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17022/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17022/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17022/v1/model.glb\" alt=\"Acoustic phone booth (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17022/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17022/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16972","slug":"downtown-office-interiors-standing-meeting-table-2d8667ee","title":"Standing meeting table (Downtown Office Interiors)","summary":"A 1.8 m by 0.9 m standing meeting table at 1.05 m on tapered round legs with an H stretcher and a central 100 mm cable grommet.","description":"A 1.8 m by 0.9 m standing meeting table at 1.05 m on tapered round legs with an H stretcher and a central 100 mm cable grommet. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-standing-meeting-table-2d8667ee","cdnUrl":"https://cdn.3dassets.dev/assets/16972/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-standing-meeting-table-2d8667ee","thumbnailUrl":"https://cdn.3dassets.dev/assets/16972/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16972/v1/poster.webp","blurhash":"UUC$.bofE1of~VxuIVRjWBxtWBM|9ZxaxaM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":48388,"triangles":956,"vertices":2868,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000004507389569807785,-0.450068654723573],"max":[0.8999999761581421,1.0549889566729758,0.450068654723573]},"sizeMeters":[1.8,1.055,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:39.841Z","updatedAt":"2026-09-07T16:24:39.966Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16972/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandingMeetingTableDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16972/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16972/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16972/v1/model.glb\" alt=\"Standing meeting table (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16972/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16972/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17018","slug":"downtown-office-interiors-whiteboard-mobile-61f65aa8","title":"Mobile double-sided whiteboard (Downtown Office Interiors)","summary":"A 1.5 m mobile double-sided whiteboard on a castored post frame with a full-width pen tray.","description":"A 1.5 m mobile double-sided whiteboard on a castored post frame with a full-width pen tray. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-whiteboard-mobile-61f65aa8","cdnUrl":"https://cdn.3dassets.dev/assets/17018/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-whiteboard-mobile-61f65aa8","thumbnailUrl":"https://cdn.3dassets.dev/assets/17018/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17018/v1/poster.webp","blurhash":"UDCi{%t700R%~qxu4nIU00t7_3IU00R*?bt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":53324,"triangles":1060,"vertices":3180,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,-0.00001907903623417362,-0.3173003452601357],"max":[0.75,1.8899999856948853,0.3173003452601357]},"sizeMeters":[1.5,1.89,0.635],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:51.043Z","updatedAt":"2026-09-07T16:24:51.147Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17018/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MobileDoubleSidedWhiteboardDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17018/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17018/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17018/v1/model.glb\" alt=\"Mobile double-sided whiteboard (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17018/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17018/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16990","slug":"downtown-office-interiors-sofa-two-seat-692d1b57","title":"Two-seat soft sofa (Downtown Office Interiors)","summary":"A 1.62 m two-seat soft sofa on turned timber feet: two piped seat cushions, two welted back pads, bolster arms and a timber capping rail.","description":"A 1.62 m two-seat soft sofa on turned timber feet: two piped seat cushions, two welted back pads, bolster arms and a timber capping rail. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-sofa-two-seat-692d1b57","cdnUrl":"https://cdn.3dassets.dev/assets/16990/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-sofa-two-seat-692d1b57","thumbnailUrl":"https://cdn.3dassets.dev/assets/16990/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16990/v1/poster.webp","blurhash":"UADcdoo#00t7~px]IVRP00adS7RQD%n#IVIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":170208,"triangles":3480,"vertices":10440,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8130000233650208,0.000030336414894194252,-0.4100356574031902],"max":[0.8130000233650208,0.8468811535486374,0.4100356574031902]},"sizeMeters":[1.626,0.847,0.82],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:44.345Z","updatedAt":"2026-09-07T16:24:44.456Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16990/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwoSeatSoftSofaDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16990/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16990/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16990/v1/model.glb\" alt=\"Two-seat soft sofa (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16990/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16990/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16988","slug":"downtown-office-interiors-lounge-armchair-f30911e6","title":"Soft lounge armchair (Downtown Office Interiors)","summary":"A soft lounge armchair, 0.82 m wide: an upholstered tub on splayed timber legs with a deep piped seat cushion, a welted back pad and bolster arms.","description":"A soft lounge armchair, 0.82 m wide: an upholstered tub on splayed timber legs with a deep piped seat cushion, a welted back pad and bolster arms. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-lounge-armchair-f30911e6","cdnUrl":"https://cdn.3dassets.dev/assets/16988/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-lounge-armchair-f30911e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/16988/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16988/v1/poster.webp","blurhash":"U8C?$Mxv00%1~qD%D%?b00D%S%%MoLtRRjRi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":113892,"triangles":2320,"vertices":6960,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.41350001096725464,0,-0.4000224874920196],"max":[0.41350001096725464,0.8805384039878845,0.4000224874920196]},"sizeMeters":[0.827,0.881,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:43.459Z","updatedAt":"2026-09-07T16:24:43.581Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16988/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SoftLoungeArmchairDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16988/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16988/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16988/v1/model.glb\" alt=\"Soft lounge armchair (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16988/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16988/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16991","slug":"downtown-office-interiors-ottoman-cube-a3eeb142","title":"Upholstered ottoman cube (Downtown Office Interiors)","summary":"A 0.45 m upholstered ottoman cube with twin welt seams on a recessed dark plinth.","description":"A 0.45 m upholstered ottoman cube with twin welt seams on a recessed dark plinth. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-ottoman-cube-a3eeb142","cdnUrl":"https://cdn.3dassets.dev/assets/16991/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-ottoman-cube-a3eeb142","thumbnailUrl":"https://cdn.3dassets.dev/assets/16991/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16991/v1/poster.webp","blurhash":"UFD9^?.84mNF_4kCM_of00IUoJofMxaeV?Ri","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":38952,"triangles":760,"vertices":2280,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.22849999368190765,-0.0000032037572170844075,-0.22849999368190765],"max":[0.22849999368190765,0.42399384321903943,0.22849999368190765]},"sizeMeters":[0.457,0.424,0.457],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:45.496Z","updatedAt":"2026-09-07T16:24:45.608Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16991/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UpholsteredOttomanCubeDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16991/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16991/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16991/v1/model.glb\" alt=\"Upholstered ottoman cube (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16991/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16991/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16970","slug":"downtown-office-interiors-desk-executive-6ef42aca","title":"Executive desk with modesty panel (Downtown Office Interiors)","summary":"A 2.0 m by 0.9 m executive desk on a laminate plinth base with a recessed dark plinth, a full modesty panel, an inset timber top and a three-drawer bank.","description":"A 2.0 m by 0.9 m executive desk on a laminate plinth base with a recessed dark plinth, a full modesty panel, an inset timber top and a three-drawer bank. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: drawer-1, drawer-2, drawer-3. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-desk-executive-6ef42aca","cdnUrl":"https://cdn.3dassets.dev/assets/16970/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-desk-executive-6ef42aca","thumbnailUrl":"https://cdn.3dassets.dev/assets/16970/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16970/v1/poster.webp","blurhash":"UGE{Ux%MIW-;~V?aM|IU00oIROE1029F%1oz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":42820,"triangles":1004,"vertices":3012,"meshes":9,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1,-0.00004112369231928925,-0.4499954222235786],"max":[1,0.735041137997434,0.4499954222235786]},"sizeMeters":[2,0.735,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:39.348Z","updatedAt":"2026-09-07T16:24:39.492Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16970/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ExecutiveDeskWithModestyPanelDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16970/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16970/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16970/v1/model.glb\" alt=\"Executive desk with modesty panel (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16970/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16970/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16982","slug":"downtown-office-interiors-executive-chair-9801b58f","title":"Executive chair with headrest (Downtown Office Interiors)","summary":"A high-back executive chair: deep welted back and seat cushions on a moulded shell, a stemmed headrest, wrap-around tubular arms with pads and a five-star castor base.","description":"A high-back executive chair: deep welted back and seat cushions on a moulded shell, a stemmed headrest, wrap-around tubular arms with pads and a five-star castor base. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-executive-chair-9801b58f","cdnUrl":"https://cdn.3dassets.dev/assets/16982/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-executive-chair-9801b58f","thumbnailUrl":"https://cdn.3dassets.dev/assets/16982/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16982/v1/poster.webp","blurhash":"U697npax00tRx^ITM_?c00RP?wx]M_xutSIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":181860,"triangles":3720,"vertices":11160,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.36299780132689263,0,-0.433203010446465],"max":[0.34051652070178423,1.4575648307800293,0.35930162537757154]},"sizeMeters":[0.704,1.458,0.793],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:42.622Z","updatedAt":"2026-09-07T16:24:42.740Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16982/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExecutiveChairWithHeadrestDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16982/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16982/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16982/v1/model.glb\" alt=\"Executive chair with headrest (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16982/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16982/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16974","slug":"downtown-office-interiors-touchdown-bar-fb7e8093","title":"Hot-desk touchdown bar (Downtown Office Interiors)","summary":"A 2.4 m by 0.6 m hot-desk touchdown bar at 1.05 m on four turned posts with tubular foot rails, two grommets and a rear cable trough.","description":"A 2.4 m by 0.6 m hot-desk touchdown bar at 1.05 m on four turned posts with tubular foot rails, two grommets and a rear cable trough. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-touchdown-bar-fb7e8093","cdnUrl":"https://cdn.3dassets.dev/assets/16974/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-touchdown-bar-fb7e8093","thumbnailUrl":"https://cdn.3dassets.dev/assets/16974/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16974/v1/poster.webp","blurhash":"UIC?fbt6E1xu~V-:M|M{D%-os:M|4:%M%2M|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":55452,"triangles":1104,"vertices":3312,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.00005051941038813901,-0.300045789686962],"max":[1.2000000476837158,1.0549646482546016,0.300045789686962]},"sizeMeters":[2.4,1.055,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:40.906Z","updatedAt":"2026-09-07T16:24:41.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16974/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HotDeskTouchdownBarDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16974/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16974/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16974/v1/model.glb\" alt=\"Hot-desk touchdown bar (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16974/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16974/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16994","slug":"downtown-office-interiors-high-stool-a4aaa740","title":"High stool for touchdown bars (Downtown Office Interiors)","summary":"A backless high stool at 760 mm: a weighted disc base, a gas-lift column, a 0.44 m foot ring on four brackets and a piped round seat pad.","description":"A backless high stool at 760 mm: a weighted disc base, a gas-lift column, a 0.44 m foot ring on four brackets and a piped round seat pad. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-high-stool-a4aaa740","cdnUrl":"https://cdn.3dassets.dev/assets/16994/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-high-stool-a4aaa740","thumbnailUrl":"https://cdn.3dassets.dev/assets/16994/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16994/v1/poster.webp","blurhash":"U3AAgt?b0000%$fjnMxb-;j[IAWB~pofD%Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":67072,"triangles":1332,"vertices":3996,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.23350321448354605,0,-0.23350321448354605],"max":[0.23350321448354605,0.7740006596791347,0.23350321448354605]},"sizeMeters":[0.467,0.774,0.467],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:45.039Z","updatedAt":"2026-09-07T16:24:45.132Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16994/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HighStoolForTouchdownBarsDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16994/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16994/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16994/v1/model.glb\" alt=\"High stool for touchdown bars (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/16994/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/16994/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"17043","slug":"downtown-office-interiors-printer-multifunction-0b3b5d41","title":"Multifunction printer (Downtown Office Interiors)","summary":"A floor-standing multifunction printer: three named paper drawers, an output recess, a scanner lid as a named node and a tilted operator panel.","description":"A floor-standing multifunction printer: three named paper drawers, an output recess, a scanner lid as a named node and a tilted operator panel. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: paper-drawer-1, paper-drawer-2, paper-drawer-3, scanner-lid. Rigid node-transform clips: drawer-open, drawer-close, door-open and door-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-printer-multifunction-0b3b5d41","cdnUrl":"https://cdn.3dassets.dev/assets/17043/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-printer-multifunction-0b3b5d41","thumbnailUrl":"https://cdn.3dassets.dev/assets/17043/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17043/v1/poster.webp","blurhash":"U8F=~=xv009Fo#RjxYkD00WU~WtR-;oeRPoy","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":54824,"triangles":1338,"vertices":4014,"meshes":11,"materials":5,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.2900073160076449,0,-0.31001830208905284],"max":[0.2900073160076449,0.9499836564538567,0.3439986898121641]},"sizeMeters":[0.58,0.95,0.654],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:57.019Z","updatedAt":"2026-09-07T16:24:57.112Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17043/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MultifunctionPrinterDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17043/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17043/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17043/v1/model.glb\" alt=\"Multifunction printer (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17043/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17043/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17010","slug":"downtown-office-interiors-recycling-station-3-stream-95c45063","title":"Three-stream recycling station (Downtown Office Interiors)","summary":"A 1.02 m three-stream recycling station: a shared carcass with three internal bays and a moulded lid with round, slot and square apertures over accent aperture plates.","description":"A 1.02 m three-stream recycling station: a shared carcass with three internal bays and a moulded lid with round, slot and square apertures over accent aperture plates. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: bay-flap-1, bay-flap-2, bay-flap-3. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-recycling-station-3-stream-95c45063","cdnUrl":"https://cdn.3dassets.dev/assets/17010/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-recycling-station-3-stream-95c45063","thumbnailUrl":"https://cdn.3dassets.dev/assets/17010/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17010/v1/poster.webp","blurhash":"U9HB;]_300M{v|~px^9G00IA%MtS?vD%DiNH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":62740,"triangles":1420,"vertices":4260,"meshes":9,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5170000195503235,0.000022012344390309746,-0.21497620369192047],"max":[0.5170000195503235,0.8619779762115178,0.21755021243424108]},"sizeMeters":[1.034,0.862,0.433],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:48.904Z","updatedAt":"2026-09-07T16:24:49.015Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17010/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ThreeStreamRecyclingStationDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17010/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17010/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17010/v1/model.glb\" alt=\"Three-stream recycling station (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17010/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17010/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17000","slug":"downtown-office-interiors-tambour-cupboard-a81d4e36","title":"Tambour storage cupboard (Downtown Office Interiors)","summary":"A 1.0 m tambour storage cupboard: a slatted roller shutter as a single named node pivoted on the head rail, two internal shelves, a recessed plinth and a timber top.","description":"A 1.0 m tambour storage cupboard: a slatted roller shutter as a single named node pivoted on the head rail, two internal shelves, a recessed plinth and a timber top. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: shutter. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-tambour-cupboard-a81d4e36","cdnUrl":"https://cdn.3dassets.dev/assets/17000/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-tambour-cupboard-a81d4e36","thumbnailUrl":"https://cdn.3dassets.dev/assets/17000/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17000/v1/poster.webp","blurhash":"U9Gbn[-;00xa~V-;E4IA00aep0IW%MaxIUIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":97916,"triangles":1944,"vertices":5832,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5099999904632568,0.00001571882051948359,-0.24201147043407026],"max":[0.5099999904632568,1.244015740650481,0.24702401456723616]},"sizeMeters":[1.02,1.244,0.489],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:46.715Z","updatedAt":"2026-09-07T16:24:46.821Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17000/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function TambourStorageCupboardDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17000/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17000/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17000/v1/model.glb\" alt=\"Tambour storage cupboard (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17000/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17000/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17007","slug":"downtown-office-interiors-locker-bank-12-33f03a4a","title":"Locker bank, twelve door (Downtown Office Interiors)","summary":"A twelve-door staff locker bank, three columns by four tiers: vented fronts with pull rails and lock barrels, internal dividers and twelve named hinged leaves.","description":"A twelve-door staff locker bank, three columns by four tiers: vented fronts with pull rails and lock barrels, internal dividers and twelve named hinged leaves. Metre units, +Y up, the user side toward +Z, resting on y=0. Named pivoted nodes: locker-door-1, locker-door-2, locker-door-3, locker-door-4, locker-door-5, locker-door-6, locker-door-7, locker-door-8, locker-door-9, locker-door-10, locker-door-11, locker-door-12. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-locker-bank-12-33f03a4a","cdnUrl":"https://cdn.3dassets.dev/assets/17007/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-locker-bank-12-33f03a4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/17007/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17007/v1/poster.webp","blurhash":"UAE.tsrp00Tf%gxtRiM{00o#~BZ~t8jvRPjY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":82272,"triangles":6120,"vertices":18360,"meshes":38,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4659791899603469,0,-0.23000946250692236],"max":[0.4659791899603469,1.8600000143051147,0.25599968179295063]},"sizeMeters":[0.932,1.86,0.486],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:48.406Z","updatedAt":"2026-09-07T16:24:48.515Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17007/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LockerBankTwelveDoorDowntownOfficeInteriors(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/17007/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17007/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17007/v1/model.glb\" alt=\"Locker bank, twelve door (Downtown Office Interiors)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17007/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17007/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"17056","slug":"downtown-office-interiors-floor-planter-large-8b6e3c88","title":"Large floor planter (Downtown Office Interiors)","summary":"A 0.56 m square tapered floor planter, 0.62 m tall: a chamfered body on four feet with a rolled rim, an inner liner and a bark substrate surface. Shipped empty; use a Nature pack plant to fill it.","description":"A 0.56 m square tapered floor planter, 0.62 m tall: a chamfered body on four feet with a rolled rim, an inner liner and a bark substrate surface. Shipped empty; use a Nature pack plant to fill it. Metre units, +Y up, the user side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/downtown-office-interiors-floor-planter-large-8b6e3c88","cdnUrl":"https://cdn.3dassets.dev/assets/17056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/downtown-office-interiors-floor-planter-large-8b6e3c88","thumbnailUrl":"https://cdn.3dassets.dev/assets/17056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/17056/v1/poster.webp","blurhash":"UJIOhF?b00IU~qj@M{t700M{ofofWBayM{Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"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":34708,"triangles":672,"vertices":2016,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2880132472482,0,-0.2880132472482],"max":[0.2880132472482,0.6200000047683716,0.2880132472482]},"sizeMeters":[0.576,0.62,0.576],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:24:59.999Z","updatedAt":"2026-09-07T16:25:00.100Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/17056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LargeFloorPlanterDowntownOfficeInteriors(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/17056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/17056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/17056/v1/model.glb\" alt=\"Large floor planter (Downtown Office Interiors)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/17056/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/17056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}