{"data":{"id":279,"slug":"cinema-multiplex-and-foyer","title":"Cinema Multiplex and Foyer","summary":"Realistic modern multiplex models: ported tiered seating rows with flip up seats, an aisle step, a masked screen, acoustic and exit door wall modules, the projection booth, the popcorn and drinks machines, and a ported concessions run with the whole front of house.","description":"A working modern cinema, auditorium and front of house, for building a whole multiplex floor. The rake is modular on a 1.1 m tread and a 0.3 m riser: a 3 m seating row carrying four tip up seats on the 0.75 m house pitch, a premium recliner row that drops into the same rake, and a 1.2 m aisle step that keeps pace beside it. Two rows butt into a six seat bank and six tiers make a screen. Around them go a 5.2 by 2.25 m silver screen behind its masking surround on a stage plinth, acoustic wall panels with fabric flutes, side wall light strips, surround speakers on brackets, an exit door module with a lit running man sign, the projection port panel the booth looks through, row letter signs, cup holder armrests, aisle floor tiles and a wheelchair space marking tile. The booth and back of house cover the projector on its plinth, the server rack, the spare lamp flight case, the step ladder, the cleaning trolley, the popcorn kettle machine, the warmer bin, a four valve drinks tower, an ice machine, the nacho and hot dog counter, stocked shelving and a bank of bins. Front of house is the box office with its pay windows and till screens, self service ticket kiosks, a 1.6 m concessions counter module that runs to any length, menu board banks, queue rails and rope barriers, poster light boxes standing and wall mounted, standees, benches, an arcade cabinet, a ticket tear podium, screen number signs, lit ceiling coffers, foyer wall modules and bold patterned carpet tiles. The seat bases, the exit door leaves, the popcorn kettle drum, the drinks flap, the ice machine lid, the trolley castors and the kiosk head are named nodes on their own pivots with rigid open, close, spin, roll and tilt clips: node transforms only, no skinning. A seat base hinges on the back of its own base, which is where a real tip up seat hinges. The screen fabric, the masking skirt, the projected image, the recliner linkage, the belt in a queue rail, the velvet rope and every cable stay static, because none of them is reachable with one rigid node transform and faking it costs a consumer more than it gives. No cinema chain, studio or film is represented: every poster face and standee is an abstract panel of colour. Every file is self-contained CC0 geometry with no collision or navigation data.","url":"https://3dassets.dev/packs/cinema-multiplex-and-foyer","coverUrl":"https://cdn.3dassets.dev/assets/34689/v1/poster.webp","assetCount":43,"aiGenerated":true,"aiGeneratedAssetCount":43,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":5783040,"totalTriangles":140546,"starterScene":{"id":"34689","slug":"cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","title":"Cinema Multiplex Floor (Cinema Multiplex and Foyer)","summary":"A screen and its foyer, side by side. Six tiers of seating rise from the stage toward the back wall, two three metre rows to a tier with an aisle step running up beside them and a pair of premium recliner rows at the top, all facing a masked screen on its plinth; acoustic...","description":"A screen and its foyer, side by side. Six tiers of seating rise from the stage toward the back wall, two three metre rows to a tier with an aisle step running up beside them and a pair of premium recliner rows at the top, all facing a masked screen on its plinth; acoustic panels, light strips and surround speakers run down the side wall, and the back wall carries the projection port and an exit door. Through that wall the foyer: a four module concessions run with the popcorn kettle, warmer, drinks tower, nacho counter and ice machine behind it under two banks of menu boards, the box office and its ticket kiosks, queue rails and rope barriers, poster light boxes, standees, benches, an arcade cabinet and the tear podium, all on bold red, gold and teal carpet under lit ceiling coffers.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34689/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34689/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34689/v1/poster.webp","blurhash":"U29jN3O*0JEU$~^-%N9Z00$S=4-75800Dh~C","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":2111104,"triangles":53658,"vertices":118303,"meshes":246,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-14.119974974637675,-0.000043055610791764565,-6.119974975163378],"max":[4,3.690000057220459,4.0299999833107]},"sizeMeters":[18.12,3.69,10.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:47:00.180Z","updatedAt":"2026-09-11T09:47:00.292Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34689/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CinemaMultiplexFloorCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34689/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34689/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34689/v1/model.glb\" alt=\"Cinema Multiplex Floor (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34689/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34689/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"34650","slug":"cinema-multiplex-and-foyer-tiered-seating-row-ec21447b","title":"Tiered Seating Row Module (Cinema Multiplex and Foyer)","summary":"A 3 m tier module carrying four tip up cinema seats on the 0.75 m house pitch: a 1.1 m tread on a 0.3 m riser with an amber nosing, armrests with recessed cup holders, crowned red backs and four folding bases. Two modules butt into a six seat bank.","description":"A 3 m tier module carrying four tip up cinema seats on the 0.75 m house pitch: a 1.1 m tread on a 0.3 m riser with an amber nosing, armrests with recessed cup holders, crowned red backs and four folding bases. Two modules butt into a six seat bank. Ports tier-front and tier-back sit at the tread edges at deck and riser height, so a row placed 1.1 m back and 0.3 m up meets the one in front; row-left and row-right sit at seat height on the module ends. Each base is hinged on its own back edge, which is where a real tip up seat hinges, so a raised seat clears the row rather than swinging off the floor. The upholstery is rigid geometry: it does not compress under a sitter. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: seat-1, seat-2, seat-3, seat-4. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-tiered-seating-row-ec21447b","cdnUrl":"https://cdn.3dassets.dev/assets/34650/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-tiered-seating-row-ec21447b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34650/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34650/v1/poster.webp","blurhash":"UABetH%20{t6|M-WOqJ60Jv%=MEy1tE1+dn+","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":227112,"triangles":6320,"vertices":13305,"meshes":9,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.5399999618530273,-0.000013984009661238694,-0.5499294886209379],"max":[1.5399999618530273,1.0776530270079223,0.5499294886209379]},"sizeMeters":[3.08,1.078,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:32.828Z","updatedAt":"2026-09-11T09:46:32.974Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34650/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 TieredSeatingRowModuleCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34650/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/34650/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34650/v1/model.glb\" alt=\"Tiered Seating Row Module (Cinema Multiplex and Foyer)\" 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/34650/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/34650/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34651","slug":"cinema-multiplex-and-foyer-premium-recliner-row-d1383e97","title":"Premium Recliner Row Module (Cinema Multiplex and Foyer)","summary":"The same 3 m tier module with three premium recliners on a 1 m pitch instead of four seats: deep red pads on plinth bases, high backs with headrests, wide armrests with cup holders and a control pad, and the footrests already out. It drops into the same rake.","description":"The same 3 m tier module with three premium recliners on a 1 m pitch instead of four seats: deep red pads on plinth bases, high backs with headrests, wide armrests with cup holders and a control pad, and the footrests already out. It drops into the same rake. The recline itself is a linkage of a back, a seat and a footrest driven together, which one rigid node transform cannot reproduce, so this variant ships the reclined pose as geometry and carries no clips. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-premium-recliner-row-d1383e97","cdnUrl":"https://cdn.3dassets.dev/assets/34651/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-premium-recliner-row-d1383e97","thumbnailUrl":"https://cdn.3dassets.dev/assets/34651/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34651/v1/poster.webp","blurhash":"UCE15hW;0{jZ|y$+EyEy0d#:,bJQ7JNZw|rs","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":195896,"triangles":5024,"vertices":10078,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.0000012255087506463092,-0.5499282815027314],"max":[1.5,1.4032734760216306,0.6663183197035768]},"sizeMeters":[3,1.403,1.216],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:32.846Z","updatedAt":"2026-09-11T09:46:32.967Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34651/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PremiumReclinerRowModuleCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34651/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34651/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34651/v1/model.glb\" alt=\"Premium Recliner Row Module (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34651/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34651/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34648","slug":"cinema-multiplex-and-foyer-aisle-step-module-91f496ec","title":"Aisle Step Module (Cinema Multiplex and Foyer)","summary":"The 1.2 m wide step that runs up the side of a seating bank: the same 1.1 m tread and 0.3 m riser as a seating row, with an amber nosing, a grip strip across the tread and a step light let into the riser.","description":"The 1.2 m wide step that runs up the side of a seating bank: the same 1.1 m tread and 0.3 m riser as a seating row, with an amber nosing, a grip strip across the tread and a step light let into the riser. Stacked one tread back and one riser up it makes a stair that keeps pace with the rake beside it. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-aisle-step-module-91f496ec","cdnUrl":"https://cdn.3dassets.dev/assets/34648/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-aisle-step-module-91f496ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/34648/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34648/v1/poster.webp","blurhash":"U47-HD~V0cNJ?IxZR$kC009G=#n~0JE3VzR6","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13576,"triangles":256,"vertices":578,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.0000228888830165197,-0.549974081120951],"max":[0.6000000238418579,0.3220196273225044,0.5549978788809194]},"sizeMeters":[1.2,0.322,1.105],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:32.835Z","updatedAt":"2026-09-11T09:46:32.952Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34648/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AisleStepModuleCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34648/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34648/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34648/v1/model.glb\" alt=\"Aisle Step Module (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34648/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34648/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34649","slug":"cinema-multiplex-and-foyer-cinema-screen-and-masking-92b7d56f","title":"Cinema Screen and Masking Frame (Cinema Multiplex and Foyer)","summary":"The end of an auditorium: a 5.2 by 2.25 m silver screen set back behind a charcoal masking surround with an amber reveal, on a 0.4 m stage plinth with the behind screen speaker stacks showing at each end. 6.3 m overall, so it fills a 3.4 m auditorium wall.","description":"The end of an auditorium: a 5.2 by 2.25 m silver screen set back behind a charcoal masking surround with an amber reveal, on a 0.4 m stage plinth with the behind screen speaker stacks showing at each end. 6.3 m overall, so it fills a 3.4 m auditorium wall. The screen fabric, the masking skirt and the projected image are all static: fabric is flexible and an image is light, so neither is reachable with a rigid node transform. Masking for a narrower ratio is done by moving the side bands in a consumer scene. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-cinema-screen-and-masking-92b7d56f","cdnUrl":"https://cdn.3dassets.dev/assets/34649/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-cinema-screen-and-masking-92b7d56f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34649/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34649/v1/poster.webp","blurhash":"UIEo[I%M00j[ad-;t7D%00M_~qofR*E1j@?a","category":{"slug":"buildings","title":"Buildings & Architecture"},"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":42216,"triangles":1024,"vertices":1966,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-3.2699999809265137,0.00004272283971715196,-0.5199342235642226],"max":[3.2699999809265137,3.299929167739141,0.3401693064791859]},"sizeMeters":[6.54,3.3,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:32.811Z","updatedAt":"2026-09-11T09:46:32.922Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34649/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CinemaScreenAndMaskingFrameCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34649/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34649/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34649/v1/model.glb\" alt=\"Cinema Screen and Masking Frame (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34649/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34649/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34652","slug":"cinema-multiplex-and-foyer-acoustic-wall-panel-module-a623eafe","title":"Acoustic Wall Panel Module (Cinema Multiplex and Foyer)","summary":"A 2 m by 3.4 m auditorium wall module: a charcoal panel with nine fabric flutes standing proud of its face above a deep red dado and an amber band at the dado line. Panels butt on the 2 m module with a 4 mm shadow gap at each joint.","description":"A 2 m by 3.4 m auditorium wall module: a charcoal panel with nine fabric flutes standing proud of its face above a deep red dado and an amber band at the dado line. Panels butt on the 2 m module with a 4 mm shadow gap at each joint. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-acoustic-wall-panel-module-a623eafe","cdnUrl":"https://cdn.3dassets.dev/assets/34652/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-acoustic-wall-panel-module-a623eafe","thumbnailUrl":"https://cdn.3dassets.dev/assets/34652/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34652/v1/poster.webp","blurhash":"U47U9$-=004mEIt6-XM{9FM{%N%M~Cxu56IU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":56404,"triangles":1344,"vertices":2893,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.9980956642558301,0,-0.11997497463767394],"max":[0.9991999864578247,3.690000057220459,0.06604241995259376]},"sizeMeters":[1.997,3.69,0.186],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:35.497Z","updatedAt":"2026-09-11T09:46:35.592Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34652/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AcousticWallPanelModuleCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34652/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34652/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34652/v1/model.glb\" alt=\"Acoustic Wall Panel Module (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34652/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34652/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34654","slug":"cinema-multiplex-and-foyer-side-wall-light-strip-b70cf154","title":"Side Wall Light Strip (Cinema Multiplex and Foyer)","summary":"A 2.4 m wall washer for an auditorium side wall: a warm tube in a charcoal channel behind a frame shroud, with an amber cap along the top. A run of them down both walls is the only light in the room before the projector starts.","description":"A 2.4 m wall washer for an auditorium side wall: a warm tube in a charcoal channel behind a frame shroud, with an amber cap along the top. A run of them down both walls is the only light in the room before the projector starts. The origin is the centre of the mounting plate on the wall face, because the strip is fixed to a wall rather than standing on the floor. The fitting emits through its material only; there is no light node in the file. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-side-wall-light-strip-b70cf154","cdnUrl":"https://cdn.3dassets.dev/assets/34654/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-side-wall-light-strip-b70cf154","thumbnailUrl":"https://cdn.3dassets.dev/assets/34654/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34654/v1/poster.webp","blurhash":"U36*guxuDixbob_3t7M_00M__3WAR+00M_-=","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":16420,"triangles":320,"vertices":704,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.11994445372887769,-0.025049593573279873],"max":[1.2000000476837158,0.07998291281292873,0.1499771134345263]},"sizeMeters":[2.4,0.2,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:35.632Z","updatedAt":"2026-09-11T09:46:35.744Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34654/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SideWallLightStripCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34654/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34654/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34654/v1/model.glb\" alt=\"Side Wall Light Strip (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34654/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34654/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34653","slug":"cinema-multiplex-and-foyer-exit-door-module-435f00b7","title":"Exit Door Module with Sign (Cinema Multiplex and Foyer)","summary":"A 2 m wall module with a 1.5 m double exit door in it: two leaves on their outer stiles with chrome push bars and teal kick plates, an amber lining round the opening and a lit running man sign over the head. It carries the same wall-run ports as the acoustic panel.","description":"A 2 m wall module with a 1.5 m double exit door in it: two leaves on their outer stiles with chrome push bars and teal kick plates, an amber lining round the opening and a lit running man sign over the head. It carries the same wall-run ports as the acoustic panel. The leaves swing away from the auditorium, which is the way an exit door is hung. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: door-left, door-right. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-exit-door-module-435f00b7","cdnUrl":"https://cdn.3dassets.dev/assets/34653/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-exit-door-module-435f00b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/34653/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34653/v1/poster.webp","blurhash":"U37-f|%g009FISof%ORj00D%~q_3?ct8E0M_","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38108,"triangles":896,"vertices":2002,"meshes":10,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9980956730045266,0,-0.11997497516337792],"max":[0.9980956730045266,3.4000000953674316,0.08999527176522568]},"sizeMeters":[1.996,3.4,0.21],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:35.641Z","updatedAt":"2026-09-11T09:46:35.781Z","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/34653/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 ExitDoorModuleWithSignCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34653/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/34653/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34653/v1/model.glb\" alt=\"Exit Door Module with Sign (Cinema Multiplex and Foyer)\" 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/34653/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/34653/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34655","slug":"cinema-multiplex-and-foyer-projection-port-panel-5fea671f","title":"Projection Port Wall Panel (Cinema Multiplex and Foyer)","summary":"The wall module at the back of an auditorium that the booth looks through: a 2 m by 3.4 m charcoal panel with a 0.62 m glazed projection port and a smaller observation port at 2.46 m, both in amber surrounds, over the same red dado as the acoustic panel.","description":"The wall module at the back of an auditorium that the booth looks through: a 2 m by 3.4 m charcoal panel with a 0.62 m glazed projection port and a smaller observation port at 2.46 m, both in amber surrounds, over the same red dado as the acoustic panel. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-projection-port-panel-5fea671f","cdnUrl":"https://cdn.3dassets.dev/assets/34655/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-projection-port-panel-5fea671f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34655/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34655/v1/poster.webp","blurhash":"U38pip=}000e8Xoz:9Mxn$OAS2+}{T#rB~6]","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20976,"triangles":448,"vertices":1014,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9980956730045266,0,-0.11997497516337792],"max":[0.9991999864578247,3.4000000953674316,0.03697512741765525]},"sizeMeters":[1.997,3.4,0.157],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:34.667Z","updatedAt":"2026-09-11T09:46:34.765Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34655/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProjectionPortWallPanelCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34655/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34655/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34655/v1/model.glb\" alt=\"Projection Port Wall Panel (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34655/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34655/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34656","slug":"cinema-multiplex-and-foyer-aisle-floor-tile-2ed6e733","title":"Auditorium Aisle Floor Tile (Cinema Multiplex and Foyer)","summary":"A 2 m auditorium floor module: dark pile with amber guide lines at the edges and flecks between them, the low contrast pattern a room built to swallow light can carry. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric.","description":"A 2 m auditorium floor module: dark pile with amber guide lines at the edges and flecks between them, the low contrast pattern a room built to swallow light can carry. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-aisle-floor-tile-2ed6e733","cdnUrl":"https://cdn.3dassets.dev/assets/34656/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-aisle-floor-tile-2ed6e733","thumbnailUrl":"https://cdn.3dassets.dev/assets/34656/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34656/v1/poster.webp","blurhash":"U26kS8t700WFt8j]j?oc00WB_4axM_WAa$Rl","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25936,"triangles":576,"vertices":1282,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000010071331644496972,-1],"max":[1,0.02147206810021109,1]},"sizeMeters":[2,0.021,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:37.567Z","updatedAt":"2026-09-11T09:46:37.664Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34656/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AuditoriumAisleFloorTileCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34656/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34656/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34656/v1/model.glb\" alt=\"Auditorium Aisle Floor Tile (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34656/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34656/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34657","slug":"cinema-multiplex-and-foyer-wheelchair-space-tile-a6a67a60","title":"Wheelchair Space Marking Tile (Cinema Multiplex and Foyer)","summary":"The same 2 m auditorium module marked out as a wheelchair space: an amber ring round a cream symbol, for the flat bay at the end of a row or at the back of the rake.","description":"The same 2 m auditorium module marked out as a wheelchair space: an amber ring round a cream symbol, for the flat bay at the end of a row or at the back of the rake. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-wheelchair-space-tile-a6a67a60","cdnUrl":"https://cdn.3dassets.dev/assets/34657/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-wheelchair-space-tile-a6a67a60","thumbnailUrl":"https://cdn.3dassets.dev/assets/34657/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34657/v1/poster.webp","blurhash":"U98E3rt701Rlt7a#WBj@00Rk~os.M_fPt6ay","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25912,"triangles":544,"vertices":1238,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000010071331644496972,-1],"max":[1,0.023992248227624878,1]},"sizeMeters":[2,0.024,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:38.246Z","updatedAt":"2026-09-11T09:46:38.359Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34657/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WheelchairSpaceMarkingTileCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34657/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34657/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34657/v1/model.glb\" alt=\"Wheelchair Space Marking Tile (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34657/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34657/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34659","slug":"cinema-multiplex-and-foyer-cup-holder-armrest-dfedf2e7","title":"Cup Holder Armrest (Cinema Multiplex and Foyer)","summary":"The armrest that ends a row, on its own: a charcoal cap on a frame standard with two chrome cup holder rings and amber liners, 0.63 m to the top. Useful for filling the end of a bank or dressing a row a consumer has built from loose seats.","description":"The armrest that ends a row, on its own: a charcoal cap on a frame standard with two chrome cup holder rings and amber liners, 0.63 m to the top. Useful for filling the end of a bank or dressing a row a consumer has built from loose seats. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-cup-holder-armrest-dfedf2e7","cdnUrl":"https://cdn.3dassets.dev/assets/34659/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-cup-holder-armrest-dfedf2e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/34659/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34659/v1/poster.webp","blurhash":"U27d:]ru00krVqIA%N_4xAkDtSIA_49F9E?c","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":33884,"triangles":768,"vertices":1599,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.07001526203689444,0,-0.2800000011920929],"max":[0.07001526203689444,0.6369883324347806,0.3199999928474426]},"sizeMeters":[0.14,0.637,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:38.583Z","updatedAt":"2026-09-11T09:46:38.688Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34659/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CupHolderArmrestCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34659/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34659/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34659/v1/model.glb\" alt=\"Cup Holder Armrest (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34659/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34659/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34658","slug":"cinema-multiplex-and-foyer-row-letter-sign-34c34d2e","title":"Row Letter Sign (Cinema Multiplex and Foyer)","summary":"The lit plate at the end of a row, 1.36 m on a chrome post with a weighted foot: a charcoal box with a glowing face, a red plate for the letter and an amber cap. The letter itself is left blank so a consumer can letter the rake in its own type.","description":"The lit plate at the end of a row, 1.36 m on a chrome post with a weighted foot: a charcoal box with a glowing face, a red plate for the letter and an amber cap. The letter itself is left blank so a consumer can letter the rake in its own type. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-row-letter-sign-34c34d2e","cdnUrl":"https://cdn.3dassets.dev/assets/34658/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-row-letter-sign-34c34d2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/34658/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34658/v1/poster.webp","blurhash":"U66kL+%2009G~Uxa4:IV_2t64:Ipt1f5Rpj^","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":16736,"triangles":368,"vertices":794,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0,-0.11696646065606761],"max":[0.15000000596046448,1.3599968247626537,0.11696646065606761]},"sizeMeters":[0.3,1.36,0.234],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:38.652Z","updatedAt":"2026-09-11T09:46:38.846Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34658/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RowLetterSignCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34658/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34658/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34658/v1/model.glb\" alt=\"Row Letter Sign (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34658/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34658/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34660","slug":"cinema-multiplex-and-foyer-wall-speaker-on-mount-ac24c00d","title":"Wall Mounted Surround Speaker (Cinema Multiplex and Foyer)","summary":"A surround speaker on a swivel bracket: a charcoal cabinet tipped down off a wall plate, with an amber cone and a chrome tweeter. One of these every couple of metres down the side walls is what a surround array looks like.","description":"A surround speaker on a swivel bracket: a charcoal cabinet tipped down off a wall plate, with an amber cone and a chrome tweeter. One of these every couple of metres down the side walls is what a surround array looks like. The origin is the centre of the bracket plate against the wall, because the speaker hangs rather than stands. The bracket is modelled in one pose; it does not swivel. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-wall-speaker-on-mount-ac24c00d","cdnUrl":"https://cdn.3dassets.dev/assets/34660/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-wall-speaker-on-mount-ac24c00d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34660/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34660/v1/poster.webp","blurhash":"U26@~B%K00E9?wIUIS?a0L9Gs*~VI8-otS9c","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":18880,"triangles":376,"vertices":771,"meshes":5,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000271330549678,-0.26182296872138977,-0.015002899481960841],"max":[0.15000271330549678,0.1873352974653244,0.34979623127393883]},"sizeMeters":[0.3,0.449,0.365],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:40.259Z","updatedAt":"2026-09-11T09:46:40.375Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34660/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallMountedSurroundSpeakerCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34660/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34660/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34660/v1/model.glb\" alt=\"Wall Mounted Surround Speaker (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34660/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34660/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34661","slug":"cinema-multiplex-and-foyer-digital-projector-plinth-2e5f1d38","title":"Digital Projector on its Plinth (Cinema Multiplex and Foyer)","summary":"The head of a modern screen: a 0.94 m charcoal projector body with a vented top, an amber status strip, a control panel and a stepped lens barrel, bolted to a steel plinth on levelling feet with a cable tray under it and an extract duct off the top.","description":"The head of a modern screen: a 0.94 m charcoal projector body with a vented top, an amber status strip, a control panel and a stepped lens barrel, bolted to a steel plinth on levelling feet with a cable tray under it and an extract duct off the top. Nothing on it moves: the lens shift and zoom are internal, the lamp is behind a sealed door, and the light it throws is not geometry. It is modelled as the fixed object a booth is built around. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-digital-projector-plinth-2e5f1d38","cdnUrl":"https://cdn.3dassets.dev/assets/34661/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-digital-projector-plinth-2e5f1d38","thumbnailUrl":"https://cdn.3dassets.dev/assets/34661/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34661/v1/poster.webp","blurhash":"U18ED0Td00MwRQ?H009F00DiM~-;?^OD%gIU","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"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":78320,"triangles":1760,"vertices":3920,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5199999809265137,0,-0.4299874716392678],"max":[0.5199999809265137,1.600000023841858,0.5799938359691437]},"sizeMeters":[1.04,1.6,1.01],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:40.996Z","updatedAt":"2026-09-11T09:46:41.203Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34661/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DigitalProjectorOnItsPlinthCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34661/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34661/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34661/v1/model.glb\" alt=\"Digital Projector on its Plinth (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34661/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34661/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34662","slug":"cinema-multiplex-and-foyer-projector-server-rack-a24a3778","title":"Projection Server Rack (Cinema Multiplex and Foyer)","summary":"The rack beside the projector: a 1.5 m charcoal cabinet of five rack units with amber and red status lamps, a vented blank top and bottom, a media server with a lit panel, and a glazed front door with an amber cap over it.","description":"The rack beside the projector: a 1.5 m charcoal cabinet of five rack units with amber and red status lamps, a vented blank top and bottom, a media server with a lit panel, and a glazed front door with an amber cap over it. The rack door is modelled shut as one piece with the cabinet; only the counter and auditorium mechanisms in this pack are rigged. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-projector-server-rack-a24a3778","cdnUrl":"https://cdn.3dassets.dev/assets/34662/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-projector-server-rack-a24a3778","thumbnailUrl":"https://cdn.3dassets.dev/assets/34662/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34662/v1/poster.webp","blurhash":"UA8||w~q4m00t7j@Rja#DiD%WD-;t8ofWAWB","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"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":94024,"triangles":2130,"vertices":4810,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.30996276780876086,0,-0.4000372330853088],"max":[0.30996276780876086,1.5299999713897705,0.4199791577917417]},"sizeMeters":[0.62,1.53,0.82],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:41.446Z","updatedAt":"2026-09-11T09:46:41.590Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34662/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProjectionServerRackCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34662/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34662/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34662/v1/model.glb\" alt=\"Projection Server Rack (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34662/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34662/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34663","slug":"cinema-multiplex-and-foyer-spare-lamp-case-9f73b1ff","title":"Spare Lamp Flight Case (Cinema Multiplex and Foyer)","summary":"The case a spare lamp house lives in: a 0.78 m flight case with a red ply inset, a chrome band, corner caps, two butterfly latches, a top handle and an amber label panel. Every booth has one under the bench.","description":"The case a spare lamp house lives in: a 0.78 m flight case with a red ply inset, a chrome band, corner caps, two butterfly latches, a top handle and an amber label panel. Every booth has one under the bench. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-spare-lamp-case-9f73b1ff","cdnUrl":"https://cdn.3dassets.dev/assets/34663/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-spare-lamp-case-9f73b1ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/34663/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34663/v1/poster.webp","blurhash":"UCD[^e}a0JBTu4tRv~n40JB7n5#7quxFF_Ef","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":46044,"triangles":970,"vertices":2234,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.39500001072883606,-0.000022265902425461226,-0.2549870323155453],"max":[0.39500001072883606,0.5316979759680445,0.26901872571219304]},"sizeMeters":[0.79,0.532,0.524],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:41.529Z","updatedAt":"2026-09-11T09:46:41.735Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34663/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpareLampFlightCaseCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34663/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34663/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34663/v1/model.glb\" alt=\"Spare Lamp Flight Case (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34663/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34663/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34664","slug":"cinema-multiplex-and-foyer-staff-step-ladder-b753b404","title":"Staff Step Ladder (Cinema Multiplex and Foyer)","summary":"A 1.5 m four tread step ladder in aluminium with amber treads and a red top platform, the one staff stand on to change a sign or reach a top shelf. Modelled open; the hinge and the spreader bar are static.","description":"A 1.5 m four tread step ladder in aluminium with amber treads and a red top platform, the one staff stand on to change a sign or reach a top shelf. Modelled open; the hinge and the spreader bar are static. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-staff-step-ladder-b753b404","cdnUrl":"https://cdn.3dassets.dev/assets/34664/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-staff-step-ladder-b753b404","thumbnailUrl":"https://cdn.3dassets.dev/assets/34664/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34664/v1/poster.webp","blurhash":"U8B3NU?F000N|}sp5%OA8yMz.P%d#ps:OqI:","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"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":24708,"triangles":512,"vertices":1121,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.34391665861051934,0,-0.35944156303820357],"max":[0.34391665861051934,1.5545966143021197,0.3447762547034784]},"sizeMeters":[0.688,1.555,0.704],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:42.997Z","updatedAt":"2026-09-11T09:46:43.113Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34664/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StaffStepLadderCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34664/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34664/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34664/v1/model.glb\" alt=\"Staff Step Ladder (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34664/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34664/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34665","slug":"cinema-multiplex-and-foyer-cleaning-trolley-e56d0d02","title":"Cleaning Trolley (Cinema Multiplex and Foyer)","summary":"The trolley that turns a house round between shows: a frame on four castors with two shelves, a sack ring with a red liner in it, a mop bucket and wringer, a caution sign and a mop standing in the frame.","description":"The trolley that turns a house round between shows: a frame on four castors with two shelves, a sack ring with a red liner in it, a mop bucket and wringer, a caution sign and a mop standing in the frame. The sack liner and the mop head are rigid geometry; only the castors turn. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: wheel-1, wheel-2, wheel-3, wheel-4. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-cleaning-trolley-e56d0d02","cdnUrl":"https://cdn.3dassets.dev/assets/34665/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-cleaning-trolley-e56d0d02","thumbnailUrl":"https://cdn.3dassets.dev/assets/34665/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34665/v1/poster.webp","blurhash":"U89jioxv00X2IVt7%LM|00WU~Wnm^*jJD+ov","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"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":70860,"triangles":1816,"vertices":3816,"meshes":10,"materials":6,"textures":0,"animations":["roll"],"boundingBox":{"min":[-0.47791067300766327,-7.450580569168253e-10,-0.24874874556318727],"max":[0.4300102555433263,1.4208680391311646,0.24874874556318727]},"sizeMeters":[0.908,1.421,0.497],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:43.843Z","updatedAt":"2026-09-11T09:46:43.948Z","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/34665/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 CleaningTrolleyCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34665/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/34665/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34665/v1/model.glb\" alt=\"Cleaning Trolley (Cinema Multiplex and Foyer)\" 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/34665/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/34665/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34666","slug":"cinema-multiplex-and-foyer-popcorn-kettle-machine-cec50d7d","title":"Popcorn Kettle Machine (Cinema Multiplex and Foyer)","summary":"The machine the foyer smells of: a 1.5 m glazed warming cabinet on chrome legs with a lit red header, a heap of corn on the deck, a scoop, and a stainless kettle hung on its trunnion bar in the top box.","description":"The machine the foyer smells of: a 1.5 m glazed warming cabinet on chrome legs with a lit red header, a heap of corn on the deck, a scoop, and a stainless kettle hung on its trunnion bar in the top box. The kettle turns on its trunnion to tip the corn out, which is the only moving part; the corn itself is rigid geometry and the heat is not modelled. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: kettle-drum. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-popcorn-kettle-machine-cec50d7d","cdnUrl":"https://cdn.3dassets.dev/assets/34666/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-popcorn-kettle-machine-cec50d7d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34666/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34666/v1/poster.webp","blurhash":"UQE2a,xa01Rj~Bs:9aRjEKWUt8kCOSW.jJoL","category":{"slug":"food","title":"Food & Drink"},"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":160352,"triangles":3312,"vertices":8312,"meshes":8,"materials":7,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.39003205151034326,0,-0.3199939021029682],"max":[0.39003205151034326,1.5,0.3199939021029682]},"sizeMeters":[0.78,1.5,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:44.347Z","updatedAt":"2026-09-11T09:46:44.485Z","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/34666/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 PopcornKettleMachineCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34666/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/34666/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34666/v1/model.glb\" alt=\"Popcorn Kettle Machine (Cinema Multiplex and Foyer)\" 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/34666/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/34666/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34667","slug":"cinema-multiplex-and-foyer-popcorn-warmer-bin-e1fd81fa","title":"Popcorn Warmer Bin (Cinema Multiplex and Foyer)","summary":"The warmer the servers fill from: a 0.9 m counter unit with a red apron, a stainless well heaped with corn behind low glass, a heat lamp rail over it and two cups waiting on the worktop.","description":"The warmer the servers fill from: a 0.9 m counter unit with a red apron, a stainless well heaped with corn behind low glass, a heat lamp rail over it and two cups waiting on the worktop. The lamp rail is lit through its material; the corn does not settle and nothing on it moves. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-popcorn-warmer-bin-e1fd81fa","cdnUrl":"https://cdn.3dassets.dev/assets/34667/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-popcorn-warmer-bin-e1fd81fa","thumbnailUrl":"https://cdn.3dassets.dev/assets/34667/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34667/v1/poster.webp","blurhash":"U4B3vp^,00556]K0Qn-C00D$.TyDtAaL~CkV","category":{"slug":"food","title":"Food & Drink"},"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":191932,"triangles":4048,"vertices":10035,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.450046676811884,0,-0.30599725256263655],"max":[0.450046676811884,1.559999942779541,0.30599725256263655]},"sizeMeters":[0.9,1.56,0.612],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:44.408Z","updatedAt":"2026-09-11T09:46:44.507Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34667/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PopcornWarmerBinCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34667/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34667/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34667/v1/model.glb\" alt=\"Popcorn Warmer Bin (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34667/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34667/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34668","slug":"cinema-multiplex-and-foyer-drinks-dispenser-bank-5ab89b48","title":"Drinks Dispenser Bank (Cinema Multiplex and Foyer)","summary":"A four valve drinks tower on its own counter unit: stainless back and valves with red and amber badges over a drip tray, a lit header, an ice bin and a stack of lids, with a push flap the cup opens.","description":"A four valve drinks tower on its own counter unit: stainless back and valves with red and amber badges over a drip tray, a lit header, an ice bin and a stack of lids, with a push flap the cup opens. The flap is hinged along its top edge the way a real cup rest is; the syrup lines and the drink itself are not modelled. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: dispenser-flap. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-drinks-dispenser-bank-5ab89b48","cdnUrl":"https://cdn.3dassets.dev/assets/34668/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-drinks-dispenser-bank-5ab89b48","thumbnailUrl":"https://cdn.3dassets.dev/assets/34668/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34668/v1/poster.webp","blurhash":"U6B{o?-W009s}sJ70y-BQ8RPGttlxJ$+Sc9t","category":{"slug":"food","title":"Food & Drink"},"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":84176,"triangles":1872,"vertices":4106,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.550000011920929,0.000023803354186391346,-0.3359744610139781],"max":[0.550000011920929,1.600000023841858,0.3359744610139781]},"sizeMeters":[1.1,1.6,0.672],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:45.921Z","updatedAt":"2026-09-11T09:46:46.018Z","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/34668/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 DrinksDispenserBankCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34668/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/34668/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34668/v1/model.glb\" alt=\"Drinks Dispenser Bank (Cinema Multiplex and Foyer)\" 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/34668/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/34668/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34669","slug":"cinema-multiplex-and-foyer-ice-machine-0b83fd26","title":"Ice Machine (Cinema Multiplex and Foyer)","summary":"A 1.05 m under counter ice machine in cream with a teal apron and badge: a stainless lid hinged along its back edge, a vent grille down the customer side and the scoop in its holder.","description":"A 1.05 m under counter ice machine in cream with a teal apron and badge: a stainless lid hinged along its back edge, a vent grille down the customer side and the scoop in its holder. The ice itself is not modelled; the bin reads as full through the lid being the only opening. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: ice-lid. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-ice-machine-0b83fd26","cdnUrl":"https://cdn.3dassets.dev/assets/34669/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-ice-machine-0b83fd26","thumbnailUrl":"https://cdn.3dassets.dev/assets/34669/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34669/v1/poster.webp","blurhash":"UDDvs9.800MdR5sox]Sg00IU~qxut6RjM{xt","category":{"slug":"food","title":"Food & Drink"},"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":57800,"triangles":1248,"vertices":2783,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.38999998569488525,0.000020141627797669315,-0.35602786162853417],"max":[0.42355723498900677,1.1500053314153116,0.35602786162853417]},"sizeMeters":[0.814,1.15,0.712],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:45.737Z","updatedAt":"2026-09-11T09:46:45.963Z","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/34669/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 IceMachineCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34669/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/34669/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34669/v1/model.glb\" alt=\"Ice Machine (Cinema Multiplex and Foyer)\" 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/34669/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/34669/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34671","slug":"cinema-multiplex-and-foyer-nacho-and-hot-dog-counter-686a7c9e","title":"Nacho and Hot Dog Counter Unit (Cinema Multiplex and Foyer)","summary":"The hot side of a concessions run: a 1.2 m timber counter with an amber apron, a six roller hot dog grill with three dogs on it, a heated cheese dispenser with a ladle, a tray rack and a lamp rail overhead.","description":"The hot side of a concessions run: a 1.2 m timber counter with an amber apron, a six roller hot dog grill with three dogs on it, a heated cheese dispenser with a ladle, a tray rack and a lamp rail overhead. The rollers are modelled in place and do not turn; a roller grill turns slowly enough that a still one reads correctly. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-nacho-and-hot-dog-counter-686a7c9e","cdnUrl":"https://cdn.3dassets.dev/assets/34671/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-nacho-and-hot-dog-counter-686a7c9e","thumbnailUrl":"https://cdn.3dassets.dev/assets/34671/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34671/v1/poster.webp","blurhash":"U6Cs25~U004:A3V_x9tL00E2-:xa+XtNtmIt","category":{"slug":"food","title":"Food & Drink"},"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":79200,"triangles":1784,"vertices":3833,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000213527383302,0,-0.3559706305420073],"max":[0.6000213527383302,1.399999976158142,0.3559706305420073]},"sizeMeters":[1.2,1.4,0.712],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:47.186Z","updatedAt":"2026-09-11T09:46:47.324Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34671/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NachoAndHotDogCounterUnitCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34671/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34671/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34671/v1/model.glb\" alt=\"Nacho and Hot Dog Counter Unit (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34671/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34671/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34670","slug":"cinema-multiplex-and-foyer-stock-shelving-with-stock-f4f647f8","title":"Stock Shelving with Cups and Boxes (Cinema Multiplex and Foyer)","summary":"The shelving behind the counter, stocked: a 1.1 m by 1.8 m slotted bay of four decks carrying nested cup stacks with red rims and cartons with amber and red labels. Nothing on it is loose geometry, so a whole back of house wall is a few placements.","description":"The shelving behind the counter, stocked: a 1.1 m by 1.8 m slotted bay of four decks carrying nested cup stacks with red rims and cartons with amber and red labels. Nothing on it is loose geometry, so a whole back of house wall is a few placements. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-stock-shelving-with-stock-f4f647f8","cdnUrl":"https://cdn.3dassets.dev/assets/34670/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-stock-shelving-with-stock-f4f647f8","thumbnailUrl":"https://cdn.3dassets.dev/assets/34670/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34670/v1/poster.webp","blurhash":"U3Av|N_30000}=%19~9H0MR*~Axax^%MW99F","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":153160,"triangles":3512,"vertices":7865,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.5499677649858972,0,-0.22502480849255777],"max":[0.5499677649858972,1.8259999752044678,0.22502480849255777]},"sizeMeters":[1.1,1.826,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:47.153Z","updatedAt":"2026-09-11T09:46:47.281Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34670/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StockShelvingWithCupsAndBoxesCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34670/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34670/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34670/v1/model.glb\" alt=\"Stock Shelving with Cups and Boxes (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34670/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34670/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34672","slug":"cinema-multiplex-and-foyer-waste-bin-bank-922932db","title":"Waste Bin Bank (Cinema Multiplex and Foyer)","summary":"The bank of bins at the auditorium doors: a 1.6 m timber housing with three apertures in red, amber and teal surrounds, a charcoal plinth and cap, and a stainless tray rest along the top.","description":"The bank of bins at the auditorium doors: a 1.6 m timber housing with three apertures in red, amber and teal surrounds, a charcoal plinth and cap, and a stainless tray rest along the top. The sacks and the bins inside are not modelled; the apertures read dark. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-waste-bin-bank-922932db","cdnUrl":"https://cdn.3dassets.dev/assets/34672/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-waste-bin-bank-922932db","thumbnailUrl":"https://cdn.3dassets.dev/assets/34672/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34672/v1/poster.webp","blurhash":"UAD[;2~A00I[KR=|$yIn019^t*,.SuS$W?NY","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":28132,"triangles":832,"vertices":1871,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.8299999833106995,0.00003277573320803473,-0.30500289312552664],"max":[0.8299999833106995,1.130039530750393,0.30500289312552664]},"sizeMeters":[1.66,1.13,0.61],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:48.637Z","updatedAt":"2026-09-11T09:46:48.780Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34672/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WasteBinBankCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34672/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34672/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34672/v1/model.glb\" alt=\"Waste Bin Bank (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34672/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34672/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34673","slug":"cinema-multiplex-and-foyer-carpet-floor-tile-f8877c6c","title":"Patterned Foyer Carpet Tile (Cinema Multiplex and Foyer)","summary":"A 2 m foyer carpet module in the bold house pattern: four red chevrons chasing a gold ring and centre disc on deep indigo, with red corner blocks and edge bars. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric.","description":"A 2 m foyer carpet module in the bold house pattern: four red chevrons chasing a gold ring and centre disc on deep indigo, with red corner blocks and edge bars. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric. Ports floor-left, floor-right, floor-front and floor-back sit at the module edge midpoints at half thickness. Swapping the pattern material at a placement is how a run of tiles is broken up without another model. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-carpet-floor-tile-f8877c6c","cdnUrl":"https://cdn.3dassets.dev/assets/34673/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-carpet-floor-tile-f8877c6c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34673/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34673/v1/poster.webp","blurhash":"U57T^gxc0JR:t8ayWBoe00Rh~CoGInj]t6WC","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38868,"triangles":864,"vertices":1934,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000010071331644496972,-1],"max":[1,0.022806292941242572,1]},"sizeMeters":[2,0.023,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:48.720Z","updatedAt":"2026-09-11T09:46:48.819Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34673/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatternedFoyerCarpetTileCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34673/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34673/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34673/v1/model.glb\" alt=\"Patterned Foyer Carpet Tile (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34673/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34673/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34675","slug":"cinema-multiplex-and-foyer-foyer-wall-panel-module-92f4c202","title":"Foyer Wall Panel Module (Cinema Multiplex and Foyer)","summary":"A 2 m by 3.4 m foyer wall module: a slate panel with a timber dado under a gold band, three tall red bays above it, a timber cornice and a dark skirting. It carries the same wall-run ports as the auditorium panels, so one run can turn from the foyer into a screen.","description":"A 2 m by 3.4 m foyer wall module: a slate panel with a timber dado under a gold band, three tall red bays above it, a timber cornice and a dark skirting. It carries the same wall-run ports as the auditorium panels, so one run can turn from the foyer into a screen. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-foyer-wall-panel-module-92f4c202","cdnUrl":"https://cdn.3dassets.dev/assets/34675/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-foyer-wall-panel-module-92f4c202","thumbnailUrl":"https://cdn.3dassets.dev/assets/34675/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34675/v1/poster.webp","blurhash":"U8COk3=y000|}v$+Ed9[1tS4|yw]K}Szm.rZ","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25664,"triangles":512,"vertices":1151,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9991999864578247,0,-0.11997497516337792],"max":[0.9992555099880159,3.40120005607605,0.031056184240317825]},"sizeMeters":[1.998,3.401,0.151],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:50.112Z","updatedAt":"2026-09-11T09:46:50.207Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34675/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoyerWallPanelModuleCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34675/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34675/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34675/v1/model.glb\" alt=\"Foyer Wall Panel Module (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34675/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34675/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34674","slug":"cinema-multiplex-and-foyer-concessions-counter-module-472474ee","title":"Concessions Counter Module (Cinema Multiplex and Foyer)","summary":"The 1.6 m module a concessions run is built from: a timber carcass with a gold apron over a red band and a stainless kick rail, a 1.1 m dark worktop with a till plate let into it, and a glass sneeze screen on stainless stems with a service light under its rail.","description":"The 1.6 m module a concessions run is built from: a timber carcass with a gold apron over a red band and a stainless kick rail, a 1.1 m dark worktop with a till plate let into it, and a glass sneeze screen on stainless stems with a service light under its rail. Ports counter-left and counter-right sit at half height on the module ends, so a run of four is 6.4 m of counter with no seam to hide. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-concessions-counter-module-472474ee","cdnUrl":"https://cdn.3dassets.dev/assets/34674/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-concessions-counter-module-472474ee","thumbnailUrl":"https://cdn.3dassets.dev/assets/34674/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34674/v1/poster.webp","blurhash":"UFDlWa~V0LD*KQx[$yM{029v%KxV]~njI]Na","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51744,"triangles":1128,"vertices":2478,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.800000011920929,0.00003204816071755712,-0.400061042980326],"max":[0.800000011920929,1.5799644691822718,0.41304439088564954]},"sizeMeters":[1.6,1.58,0.813],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:49.067Z","updatedAt":"2026-09-11T09:46:49.162Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34674/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConcessionsCounterModuleCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34674/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34674/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34674/v1/model.glb\" alt=\"Concessions Counter Module (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34674/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34674/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34676","slug":"cinema-multiplex-and-foyer-box-office-counter-215e746a","title":"Box Office Counter with Screens (Cinema Multiplex and Foyer)","summary":"The window a person still buys a ticket at: a 2 m timber counter with a red apron and gold band, a dark postform top, two glazed pay windows with speech grilles and cash trays, a timber canopy with a gold strip, and two till screens on poles on the staff side.","description":"The window a person still buys a ticket at: a 2 m timber counter with a red apron and gold band, a dark postform top, two glazed pay windows with speech grilles and cash trays, a timber canopy with a gold strip, and two till screens on poles on the staff side. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-box-office-counter-215e746a","cdnUrl":"https://cdn.3dassets.dev/assets/34676/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-box-office-counter-215e746a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34676/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34676/v1/poster.webp","blurhash":"UADbf}}]0056?]x[IBIB0_E{xvwN@u,;K%F2","category":{"slug":"buildings","title":"Buildings & Architecture"},"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":111868,"triangles":2550,"vertices":5598,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-1.0300042879395863,-0.0000024510175012926183,-0.4249702444532609],"max":[1.0300042879395863,2.2700459413905967,0.4440097224615235]},"sizeMeters":[2.06,2.27,0.869],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:51.414Z","updatedAt":"2026-09-11T09:46:51.531Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34676/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoxOfficeCounterWithScreensCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34676/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34676/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34676/v1/model.glb\" alt=\"Box Office Counter with Screens (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34676/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34676/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34677","slug":"cinema-multiplex-and-foyer-self-service-ticket-kiosk-aa30d8b3","title":"Self Service Ticket Kiosk (Cinema Multiplex and Foyer)","summary":"The pedestal a collection code goes into: a 1 m charcoal kiosk with a red panel and gold band, a ticket slot and a card reader, under a 0.56 m touch screen head on a mount that tips so a queue of any height can read it.","description":"The pedestal a collection code goes into: a 1 m charcoal kiosk with a red panel and gold band, a ticket slot and a card reader, under a 0.56 m touch screen head on a mount that tips so a queue of any height can read it. The printer, the card reader and the ticket itself are modelled as fixed detail; only the head tips. Metre units, +Y up, the customer side toward +Z, resting on y=0. Named pivoted nodes: kiosk-screen. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-self-service-ticket-kiosk-aa30d8b3","cdnUrl":"https://cdn.3dassets.dev/assets/34677/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-self-service-ticket-kiosk-aa30d8b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34677/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34677/v1/poster.webp","blurhash":"U8840%=y000ylSkVmlZ*F=Sx#r#X|?$%6R9]","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":32616,"triangles":640,"vertices":1399,"meshes":8,"materials":6,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.3099765007477035,0,-0.1999725333414716],"max":[0.3099765007477035,1.5106212733839453,0.21199999749660492]},"sizeMeters":[0.62,1.511,0.412],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:51.433Z","updatedAt":"2026-09-11T09:46:51.565Z","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/34677/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 SelfServiceTicketKioskCinemaMultiplexAndFoyer(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34677/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/34677/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34677/v1/model.glb\" alt=\"Self Service Ticket Kiosk (Cinema Multiplex and Foyer)\" 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/34677/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/34677/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34678","slug":"cinema-multiplex-and-foyer-menu-board-bank-96deac03","title":"Menu Board Bank (Cinema Multiplex and Foyer)","summary":"The run of three lit menu boards over a concessions counter: 2.6 m of charcoal rail with gold and red header bars and rows of blank price lines, so a consumer can letter it in its own type.","description":"The run of three lit menu boards over a concessions counter: 2.6 m of charcoal rail with gold and red header bars and rows of blank price lines, so a consumer can letter it in its own type. The origin is the centre of the mounting rail at the top, against the wall, because the bank hangs over a counter rather than standing on the floor. The boards are lit through their material; there is no light node in the file. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-menu-board-bank-96deac03","cdnUrl":"https://cdn.3dassets.dev/assets/34678/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-menu-board-bank-96deac03","thumbnailUrl":"https://cdn.3dassets.dev/assets/34678/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34678/v1/poster.webp","blurhash":"U8AdN7%g8_%N=?_4tSM_00#j?vX8EmDgwF%3","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":28164,"triangles":1344,"vertices":3007,"meshes":21,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.3300000429153442,-0.9799435328963122,-0.02627400628993648],"max":[1.3300000429153442,0.04998931668808613,0.06798163097677284]},"sizeMeters":[2.66,1.03,0.094],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:51.765Z","updatedAt":"2026-09-11T09:46:51.862Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34678/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MenuBoardBankCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34678/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34678/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34678/v1/model.glb\" alt=\"Menu Board Bank (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34678/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34678/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34679","slug":"cinema-multiplex-and-foyer-queue-rail-d9e14f45","title":"Retractable Belt Queue Rail (Cinema Multiplex and Foyer)","summary":"A pair of weighted chrome posts 1.8 m apart with a red belt and a gold stripe run between them, the unit a queue is folded out of. Posts and belt are one model, so a whole queue is a handful of placements.","description":"A pair of weighted chrome posts 1.8 m apart with a red belt and a gold stripe run between them, the unit a queue is folded out of. Posts and belt are one model, so a whole queue is a handful of placements. The belt is rigid geometry at its drawn length: a retracting belt is a mechanism a rigid node transform cannot hold, so the pack ships it out rather than faking the cassette. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-queue-rail-d9e14f45","cdnUrl":"https://cdn.3dassets.dev/assets/34679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-queue-rail-d9e14f45","thumbnailUrl":"https://cdn.3dassets.dev/assets/34679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34679/v1/poster.webp","blurhash":"U9A9pRs:GGxc}Z?HEMNG9tv~w^Ef0|%2^PI.","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":33988,"triangles":768,"vertices":1615,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.0700000524520874,-0.000043055610791764565,-0.16993561427535822],"max":[1.0700000524520874,1.0000430556107918,0.16993561427535822]},"sizeMeters":[2.14,1,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:52.769Z","updatedAt":"2026-09-11T09:46:52.867Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RetractableBeltQueueRailCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34679/v1/model.glb\" alt=\"Retractable Belt Queue Rail (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34679/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34680","slug":"cinema-multiplex-and-foyer-poster-light-box-stand-fae33718","title":"Poster Light Box on a Stand (Cinema Multiplex and Foyer)","summary":"The lit poster case a foyer is dressed with: a 1.02 by 1.5 m box in a gold frame on a weighted stem and foot, 1.92 m to the top. The face is an abstract panel of coloured bands and blocks, never readable artwork, so a consumer drops its own poster texture onto it.","description":"The lit poster case a foyer is dressed with: a 1.02 by 1.5 m box in a gold frame on a weighted stem and foot, 1.92 m to the top. The face is an abstract panel of coloured bands and blocks, never readable artwork, so a consumer drops its own poster texture onto it. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-poster-light-box-stand-fae33718","cdnUrl":"https://cdn.3dassets.dev/assets/34680/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-poster-light-box-stand-fae33718","thumbnailUrl":"https://cdn.3dassets.dev/assets/34680/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34680/v1/poster.webp","blurhash":"UEC$r|?G004:~W%29GE10LRj~BxZ9FRj%gxa","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":37108,"triangles":784,"vertices":1740,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5111572447031074,0,-0.21996764546329534],"max":[0.5111572447031074,1.9199999570846558,0.21996764546329534]},"sizeMeters":[1.022,1.92,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:53.261Z","updatedAt":"2026-09-11T09:46:53.356Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34680/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PosterLightBoxOnAStandCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34680/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34680/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34680/v1/model.glb\" alt=\"Poster Light Box on a Stand (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34680/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34680/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34681","slug":"cinema-multiplex-and-foyer-poster-light-box-wall-997574ca","title":"Wall Mounted Poster Light Box (Cinema Multiplex and Foyer)","summary":"The same 1.02 by 1.5 m lit poster case in its wall mounted form, with the stem and foot taken off, for a run of them down a foyer wall or beside an auditorium door.","description":"The same 1.02 by 1.5 m lit poster case in its wall mounted form, with the stem and foot taken off, for a run of them down a foyer wall or beside an auditorium door. The origin is the centre of the box against the wall, because it hangs rather than stands. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-poster-light-box-wall-997574ca","cdnUrl":"https://cdn.3dassets.dev/assets/34681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-poster-light-box-wall-997574ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/34681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34681/v1/poster.webp","blurhash":"UEFOlj~U000LXmxuwIIU00Io~V-WMKn$yWX9","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":28916,"triangles":592,"vertices":1311,"meshes":5,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5111572651509912,-0.75,-0.20220141360853924],"max":[0.5111572651509912,0.75,0.035009918917799525]},"sizeMeters":[1.022,1.5,0.237],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:54.320Z","updatedAt":"2026-09-11T09:46:54.417Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallMountedPosterLightBoxCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34681/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34681/v1/model.glb\" alt=\"Wall Mounted Poster Light Box (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34681/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34682","slug":"cinema-multiplex-and-foyer-standee-display-frame-2dcb261a","title":"Standee Display Frame (Cinema Multiplex and Foyer)","summary":"The free standing cut out by the doors: a 1.9 m frame on a weighted base carrying a board of abstract coloured shapes with a lit wash at its foot and a brace at the back. The artwork is deliberately abstract, never a recognisable title.","description":"The free standing cut out by the doors: a 1.9 m frame on a weighted base carrying a board of abstract coloured shapes with a lit wash at its foot and a brace at the back. The artwork is deliberately abstract, never a recognisable title. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-standee-display-frame-2dcb261a","cdnUrl":"https://cdn.3dassets.dev/assets/34682/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-standee-display-frame-2dcb261a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34682/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34682/v1/poster.webp","blurhash":"UBCPq:xb00InX-tRm-Mw00og~CRPvhnmP9On","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":27868,"triangles":528,"vertices":1182,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.600051887642176,0.000004271349732982294,-0.4491474636604771],"max":[0.600051887642176,1.9800000190734863,0.2500015358596419]},"sizeMeters":[1.2,1.98,0.699],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:54.488Z","updatedAt":"2026-09-11T09:46:54.615Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34682/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandeeDisplayFrameCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34682/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34682/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34682/v1/model.glb\" alt=\"Standee Display Frame (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34682/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34682/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34683","slug":"cinema-multiplex-and-foyer-rope-barrier-post-21c628b9","title":"Rope Barrier Post (Cinema Multiplex and Foyer)","summary":"A chrome post 1 m tall on a weighted base with a red velvet rope hung from its eye to a 1.6 m reach, with gold ferrules at both ends. Placed end to end the ropes make a continuous barrier across a foyer.","description":"A chrome post 1 m tall on a weighted base with a red velvet rope hung from its eye to a 1.6 m reach, with gold ferrules at both ends. Placed end to end the ropes make a continuous barrier across a foyer. The rope is rigid geometry in one hung shape; a rope is flexible and is not reachable with a rigid node transform. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-rope-barrier-post-21c628b9","cdnUrl":"https://cdn.3dassets.dev/assets/34683/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-rope-barrier-post-21c628b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34683/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34683/v1/poster.webp","blurhash":"U99ZA$?bBmRj}u$+JQJ60e#n,[K11ux[^Rxa","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":28996,"triangles":604,"vertices":1361,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.18001342814416943,0,-0.1772667622913297],"max":[1.6091291904449463,1,0.1772667622913297]},"sizeMeters":[1.789,1,0.355],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:55.612Z","updatedAt":"2026-09-11T09:46:55.714Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34683/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RopeBarrierPostCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34683/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34683/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34683/v1/model.glb\" alt=\"Rope Barrier Post (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34683/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34683/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34684","slug":"cinema-multiplex-and-foyer-foyer-bench-a0ef69e6","title":"Foyer Bench (Cinema Multiplex and Foyer)","summary":"A 1.7 m bench for the wait before a screening: a crowned red pad with timber slats let into it and a gold edge strip, on chrome standards with a magazine shelf under the seat.","description":"A 1.7 m bench for the wait before a screening: a crowned red pad with timber slats let into it and a gold edge strip, on chrome standards with a magazine shelf under the seat. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-foyer-bench-a0ef69e6","cdnUrl":"https://cdn.3dassets.dev/assets/34684/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-foyer-bench-a0ef69e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34684/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34684/v1/poster.webp","blurhash":"UDC##%xa9]of}t=|S2Na00$j-BNa0|9txHwv","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":35520,"triangles":800,"vertices":1697,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8535000085830688,0.000016167265569883016,-0.2535207856544392],"max":[0.8535000085830688,0.4552146674094302,0.2535207856544392]},"sizeMeters":[1.707,0.455,0.507],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:56.063Z","updatedAt":"2026-09-11T09:46:56.163Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34684/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoyerBenchCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34684/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34684/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34684/v1/model.glb\" alt=\"Foyer Bench (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34684/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34684/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34685","slug":"cinema-multiplex-and-foyer-ceiling-light-coffer-50595460","title":"Ceiling Light Coffer (Cinema Multiplex and Foyer)","summary":"A 2.4 by 1.2 m recessed coffer for a foyer ceiling: a charcoal tray with a frame reveal, a warm panel in the well and gold edge strips. A grid of them is what gives a foyer its lit ceiling.","description":"A 2.4 by 1.2 m recessed coffer for a foyer ceiling: a charcoal tray with a frame reveal, a warm panel in the well and gold edge strips. A grid of them is what gives a foyer its lit ceiling. The origin is the centre of the mounting face at the top, because the coffer is let into a ceiling rather than standing on the floor. It emits through its material only; there is no light node in the file. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-ceiling-light-coffer-50595460","cdnUrl":"https://cdn.3dassets.dev/assets/34685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-ceiling-light-coffer-50595460","thumbnailUrl":"https://cdn.3dassets.dev/assets/34685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34685/v1/poster.webp","blurhash":"U17d,-?w00M_R8_NpHIA009F?dnh?[00Q-bu","category":{"slug":"buildings","title":"Buildings & Architecture"},"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":16324,"triangles":384,"vertices":855,"meshes":5,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.31999663602202977,-0.600091579373924],"max":[1.2000000476837158,0.00003021518822695496,0.600091579373924]},"sizeMeters":[2.4,0.32,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:57.107Z","updatedAt":"2026-09-11T09:46:57.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CeilingLightCofferCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34685/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34685/v1/model.glb\" alt=\"Ceiling Light Coffer (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34685/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34686","slug":"cinema-multiplex-and-foyer-arcade-cabinet-85302f3a","title":"Foyer Arcade Cabinet (Cinema Multiplex and Foyer)","summary":"The upright cabinet that lives beside the doors: a 1.75 m charcoal machine with red side stripes, a stick and four buttons on a stainless deck, a screen behind glass and a lit marquee over it.","description":"The upright cabinet that lives beside the doors: a 1.75 m charcoal machine with red side stripes, a stick and four buttons on a stainless deck, a screen behind glass and a lit marquee over it. The stick and buttons are modelled in place and do not move. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-arcade-cabinet-85302f3a","cdnUrl":"https://cdn.3dassets.dev/assets/34686/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-arcade-cabinet-85302f3a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34686/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34686/v1/poster.webp","blurhash":"U68Wz7~D0000YkTdZhzpJ}O9nS#?{e+uBm7e","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":36528,"triangles":748,"vertices":1616,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.37000349985512515,0,-0.39994109123485927],"max":[0.37000349985512515,1.6999960604091113,0.43246763281311124]},"sizeMeters":[0.74,1.7,0.832],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:57.726Z","updatedAt":"2026-09-11T09:46:57.822Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34686/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoyerArcadeCabinetCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34686/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34686/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34686/v1/model.glb\" alt=\"Foyer Arcade Cabinet (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34686/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34686/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34687","slug":"cinema-multiplex-and-foyer-ticket-tear-podium-99e52a6d","title":"Ticket Tear Podium (Cinema Multiplex and Foyer)","summary":"The podium a ticket is scanned at: a 1.06 m timber stand with a red panel and gold band, a dark cap, a scanner head on a gooseneck and a stub tray of torn halves.","description":"The podium a ticket is scanned at: a 1.06 m timber stand with a red panel and gold band, a dark cap, a scanner head on a gooseneck and a stub tray of torn halves. Metre units, +Y up, the customer side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-ticket-tear-podium-99e52a6d","cdnUrl":"https://cdn.3dassets.dev/assets/34687/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-ticket-tear-podium-99e52a6d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34687/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34687/v1/poster.webp","blurhash":"U8Av2*}Z000|1MN[=b$P0fAC^Q].:mwMKhF?","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":31448,"triangles":618,"vertices":1402,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3100000023841858,0,-0.2500189233987511],"max":[0.3100000023841858,1.4023722617373051,0.2500189233987511]},"sizeMeters":[0.62,1.402,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:58.572Z","updatedAt":"2026-09-11T09:46:58.705Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34687/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TicketTearPodiumCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34687/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34687/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34687/v1/model.glb\" alt=\"Ticket Tear Podium (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34687/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34687/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34688","slug":"cinema-multiplex-and-foyer-screen-number-sign-058f4219","title":"Screen Number Sign (Cinema Multiplex and Foyer)","summary":"The lit sign over an auditorium door: a 1 m charcoal box with a glowing face, a red plate and gold caps top and bottom. The number itself is a blank plate, so a consumer can number a multiplex in its own type.","description":"The lit sign over an auditorium door: a 1 m charcoal box with a glowing face, a red plate and gold caps top and bottom. The number itself is a blank plate, so a consumer can number a multiplex in its own type. The origin is the centre of the sign box against the wall, because it hangs over a doorway rather than standing on the floor. Metre units, +Y up, the customer side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-screen-number-sign-058f4219","cdnUrl":"https://cdn.3dassets.dev/assets/34688/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-screen-number-sign-058f4219","thumbnailUrl":"https://cdn.3dassets.dev/assets/34688/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34688/v1/poster.webp","blurhash":"UFIqP.^k01%M?a~Vxb9u0JS^];VsV@?qXLrF","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":15524,"triangles":384,"vertices":867,"meshes":6,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000025177397788667816,-0.06500442518387402],"max":[0.5,0.5100251771742712,0.06800518997933779]},"sizeMeters":[1,0.51,0.133],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:46:59.029Z","updatedAt":"2026-09-11T09:46:59.135Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34688/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScreenNumberSignCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34688/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34688/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34688/v1/model.glb\" alt=\"Screen Number Sign (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34688/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34688/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34689","slug":"cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","title":"Cinema Multiplex Floor (Cinema Multiplex and Foyer)","summary":"A screen and its foyer, side by side. Six tiers of seating rise from the stage toward the back wall, two three metre rows to a tier with an aisle step running up beside them and a pair of premium recliner rows at the top, all facing a masked screen on its plinth; acoustic...","description":"A screen and its foyer, side by side. Six tiers of seating rise from the stage toward the back wall, two three metre rows to a tier with an aisle step running up beside them and a pair of premium recliner rows at the top, all facing a masked screen on its plinth; acoustic panels, light strips and surround speakers run down the side wall, and the back wall carries the projection port and an exit door. Through that wall the foyer: a four module concessions run with the popcorn kettle, warmer, drinks tower, nacho counter and ice machine behind it under two banks of menu boards, the box office and its ticket kiosks, queue rails and rope barriers, poster light boxes, standees, benches, an arcade cabinet and the tear podium, all on bold red, gold and teal carpet under lit ceiling coffers.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34689/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-cinema-multip-2527aaf9-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34689/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34689/v1/poster.webp","blurhash":"U29jN3O*0JEU$~^-%N9Z00$S=4-75800Dh~C","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":2111104,"triangles":53658,"vertices":118303,"meshes":246,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-14.119974974637675,-0.000043055610791764565,-6.119974975163378],"max":[4,3.690000057220459,4.0299999833107]},"sizeMeters":[18.12,3.69,10.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:47:00.180Z","updatedAt":"2026-09-11T09:47:00.292Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34689/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CinemaMultiplexFloorCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34689/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34689/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34689/v1/model.glb\" alt=\"Cinema Multiplex Floor (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34689/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34689/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34690","slug":"cinema-multiplex-and-foyer-projection-booth-and-back-o-9f69a861","title":"Projection Booth and Back of House (Cinema Multiplex and Foyer)","summary":"The rooms the public never sees: a projector off its plinth in the middle of the booth with the spare lamp case open beside it, the step ladder and two server racks against the port wall, and through the doorway the service side of a concessions run, with the popcorn kettle...","description":"The rooms the public never sees: a projector off its plinth in the middle of the booth with the spare lamp case open beside it, the step ladder and two server racks against the port wall, and through the doorway the service side of a concessions run, with the popcorn kettle and warmer, the drinks tower, the nacho counter, the ice machine, stocked shelving, cleaning trolleys and the bin bank on the plain aisle floor.","status":"published","url":"https://3dassets.dev/assets/cinema-multiplex-and-foyer-projection-booth-and-back-o-9f69a861","cdnUrl":"https://cdn.3dassets.dev/assets/34690/v1/model.glb","downloadUrl":"https://3dassets.dev/download/cinema-multiplex-and-foyer-projection-booth-and-back-o-9f69a861","thumbnailUrl":"https://cdn.3dassets.dev/assets/34690/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34690/v1/poster.webp","blurhash":"U5ATA%}?00Siw~sDR+bH00ENxaR%pZSwM{ae","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":1290028,"triangles":31580,"vertices":71847,"meshes":138,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-4.1199749751633785,-0.000043055610791764565,-4.119974975163378],"max":[4,3.690000057220459,4]},"sizeMeters":[8.12,3.69,8.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T09:47:00.778Z","updatedAt":"2026-09-11T09:47:00.874Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34690/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProjectionBoothAndBackOfHouseCinemaMultiplexAndFoyer(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34690/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34690/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34690/v1/model.glb\" alt=\"Projection Booth and Back of House (Cinema Multiplex and Foyer)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34690/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34690/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"cinema-multiplex-and-foyer","title":"Cinema Multiplex and Foyer","url":"https://3dassets.dev/demos/cinema-multiplex-and-foyer"}}}