{"data":{"id":"86","slug":"public-aquarium-and-marine-centre","title":"Public Aquarium and Marine Centre","summary":"Walk an aquarium gallery: a run of lit wall tanks, a walk through tunnel, touch and ray pools, a shop and cafe, and the pump room and quarantine tanks behind the wall.","url":"https://3dassets.dev/demos/public-aquarium-and-marine-centre","coverUrl":"https://cdn.3dassets.dev/media/public-aquarium-and-marine-centre-demo.png","featured":true,"pack":{"slug":"public-aquarium-and-marine-centre","title":"Public Aquarium and Marine Centre","url":"https://3dassets.dev/packs/public-aquarium-and-marine-centre","summary":"A realistic public aquarium and marine visitor centre: a modular wall tank run, a walk through tunnel, touch and ray pools, the visitor route from ticket desk to cafe, and the plant room and wet benches behind the gallery wall.","assetCount":51,"totalBytes":6474740,"starterScene":{"slug":"public-aquarium-and-marine-centre-aquari-f44b7a24-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34192/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-aquari-f44b7a24-starter-scene","fileSize":2393968}},"placementCount":111,"assetCount":49,"spawn":{"position":[-4.5,0.04,2.6],"yaw":115},"publishedAt":"2026-09-11T06:53:45.048Z","updatedAt":"2026-09-11T06:53:45.048Z","description":"A visitor aquarium and its back of house, built from the pack's ported tank runs, tunnel sections, floor tiles, graphic walls, handrails and catwalks.\n\n**What is placed.** The visitor route runs from the ticket desk and turnstile past a run of wall tanks with corner and end modules, each with a frame, lighting hood, interior rockwork, interpretive sign and species label, through a walk through tunnel, past the touch pool and the open top ray pool with their handrails, to the gift shop, the cafe and the education classroom. Behind the wall, the life support plant room holds the pump skid, the filtration tower, the protein skimmer, the chiller, quarantine tanks on frames, the water test bench, the feed prep bench and fridge, net and gear racks, the chemical store, dive cylinders and a catwalk over the tanks.\n\n**What moves.** The turnstile spins, the locker, fridge and chemical store doors open and close, the quarantine tank lids lift, the hose drum spins, the chiller fan turns and the touchscreen kiosks tilt.\n\n**What does not move, and why.** There are no fish and no moving water. This library has no skinned meshes and water is not a rigid node, so the tanks ship as glass, frame, lighting and rockwork, with a still water surface plane in the open top pools that is deliberately static. The water and the animals are for you to add. Hoses, nets and wetsuits are static for the same reason, and there are no visitors or staff.","scene":{"version":1,"spawn":{"position":[-4.5,0.04,2.6],"yaw":115},"ground":{"style":"none"},"environment":{"preset":"room","wallHeight":4.6,"lampHeight":4,"shadows":true},"placements":[{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-9,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-9,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-9,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[3,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[3,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[3,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[5,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[5,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[5,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[7,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[7,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[7,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[9,-0.06,-1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[9,-0.06,1],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[9,-0.06,3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,-3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,-5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-7,-0.06,-7],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,-3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,-5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-5,-0.06,-7],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,-3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,-5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-3,-0.06,-7],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,-3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,-5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[-1,-0.06,-7],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,-3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,-5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","position":[1,-0.06,-7],"rotation":0},{"asset":"public-aquarium-and-marine-centre-corner-tank-module-84d95df2","position":[-9,0,-2.45],"rotation":180},{"asset":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","position":[-7.55,0,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","position":[-5.55,0,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","position":[-3.55,0,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-tank-module-end-b2a96a42","position":[-1.55,0,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","position":[-9,0,-1],"rotation":-90},{"asset":"public-aquarium-and-marine-centre-tank-lighting-hood-542461be","position":[-7.55,2.11,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-lighting-hood-542461be","position":[-5.55,2.11,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-lighting-hood-542461be","position":[-3.55,2.11,-2.45],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-rockwork-arch-bb6b8bf3","position":[-5.55,0.74,-2.5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-coral-cluster-99d9457b","position":[-3.55,0.74,-2.42],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-coral-cluster-99d9457b","position":[-7.55,0.74,-2.5],"rotation":90},{"asset":"public-aquarium-and-marine-centre-tank-interpretive-si-7f6f02d0","position":[-6.5,0,-1.55],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tank-interpretive-si-a078150f","position":[-2.6,0,-1.55],"rotation":0},{"asset":"public-aquarium-and-marine-centre-species-label-plate-cc25fc4e","position":[-4.5,0,-1.75],"rotation":0},{"asset":"public-aquarium-and-marine-centre-species-label-plate-cc25fc4e","position":[-8.1,0,-1.75],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-graphic-panel-a5dfb6e6","position":[1,0,-2.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-graphic-panel-c-e8b56a8f","position":[3,0,-2.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wall-graphic-panel-a5dfb6e6","position":[5,0,-2.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tunnel-tank-section-14262dee","position":[-3,0,1.9],"rotation":0},{"asset":"public-aquarium-and-marine-centre-tunnel-tank-section-14262dee","position":[-1,0,1.9],"rotation":0},{"asset":"public-aquarium-and-marine-centre-column-tank-099b661d","position":[3.4,0,-1.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-touch-pool-75729e13","position":[1.5,0,2.8],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ray-pool-section-07b90de7","position":[5.5,0,0.2],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ray-pool-section-07b90de7","position":[8.5,0,0.2],"rotation":0},{"asset":"public-aquarium-and-marine-centre-handrail-section-654ae00c","position":[5,0,1.75],"rotation":0},{"asset":"public-aquarium-and-marine-centre-handrail-section-654ae00c","position":[7,0,1.75],"rotation":0},{"asset":"public-aquarium-and-marine-centre-handrail-section-654ae00c","position":[9,0,1.75],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ticket-desk-5d81c4f6","position":[-8.4,0,3.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-turnstile-gate-83e9070d","position":[-6.2,0,3.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-cloakroom-lockers-e8de4a30","position":[-9.3,0,1.6],"rotation":90},{"asset":"public-aquarium-and-marine-centre-cloakroom-lockers-op-4b76ef74","position":[-9.3,0,-0.4],"rotation":90},{"asset":"public-aquarium-and-marine-centre-pushchair-park-f8fc2b46","position":[-4.4,0,3.5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wayfinding-totem-27df65f9","position":[-5.3,0,1.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wayfinding-totem-27df65f9","position":[2.9,0,1],"rotation":-34.38},{"asset":"public-aquarium-and-marine-centre-touchscreen-kiosk-6e93d8a4","position":[-2.2,0,-1.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-bench-4491faa1","position":[-7.4,0,0.5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-visitor-bench-teal-d3402427","position":[0.6,0,0.1],"rotation":180},{"asset":"public-aquarium-and-marine-centre-education-classroom--42ba1727","position":[-2.4,0,3.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-gift-shop-counter-4204e45a","position":[8.6,0,3.2],"rotation":0},{"asset":"public-aquarium-and-marine-centre-cafe-table-and-chair-fa60fcbf","position":[5.6,0,3.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-cafe-table-and-chair-1f443378","position":[3.6,0,3.5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","position":[-6.5,2.6,-1.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","position":[-2.5,2.6,-1.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","position":[-2,2.6,1.9],"rotation":0},{"asset":"public-aquarium-and-marine-centre-service-catwalk-sect-7a52bad0","position":[-6,0,-3.35],"rotation":0},{"asset":"public-aquarium-and-marine-centre-service-catwalk-sect-7a52bad0","position":[-4,0,-3.35],"rotation":0},{"asset":"public-aquarium-and-marine-centre-life-support-pump-sk-364d708f","position":[-6.4,0,-5.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-filtration-tower-c2141d5b","position":[-3.6,0,-6.2],"rotation":0},{"asset":"public-aquarium-and-marine-centre-filtration-tower-c2141d5b","position":[-2.5,0,-6.2],"rotation":0},{"asset":"public-aquarium-and-marine-centre-protein-skimmer-colu-c38bf599","position":[-1.2,0,-6.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-chiller-unit-b4168a97","position":[0.6,0,-6.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-quarantine-tank-on-f-7e9cc166","position":[-6.6,0,-7.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-quarantine-tank-on-f-7e9cc166","position":[-5.1,0,-7.3],"rotation":0},{"asset":"public-aquarium-and-marine-centre-water-test-bench-b9044121","position":[-3.4,0,-7.5],"rotation":180},{"asset":"public-aquarium-and-marine-centre-feed-prep-bench-635b6b50","position":[1.2,0,-4.6],"rotation":180},{"asset":"public-aquarium-and-marine-centre-feed-fridge-78751f1a","position":[1.5,0,-7.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-feed-fridge-open-c6bb444a","position":[0.5,0,-7.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-chemical-store-cabin-34860ff2","position":[-7.5,0,-4.5],"rotation":0},{"asset":"public-aquarium-and-marine-centre-chemical-store-cabin-e3d8605f","position":[-7.4,0,-6.3],"rotation":90},{"asset":"public-aquarium-and-marine-centre-net-rack-c23fde02","position":[-4.5,0,-4.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-wetsuit-and-gear-rac-888a51ba","position":[-0.6,0,-4.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-hose-reel-27f87427","position":[-2.4,0,-4.4],"rotation":0},{"asset":"public-aquarium-and-marine-centre-floor-drain-grate-e5ea2e95","position":[-5,0,-5.9],"rotation":0},{"asset":"public-aquarium-and-marine-centre-spare-pump-crate-689322fe","position":[0.9,0,-5.6],"rotation":0},{"asset":"public-aquarium-and-marine-centre-dive-cylinder-rack-2c4abbb1","position":[-7.2,0,-7.6],"rotation":90}],"points":[{"position":[-7,0.04,4.8],"title":"Admissions","text":"The ticket desk, the turnstile that spins, the cloakroom lockers whose doors open and the wayfinding totem at the start of the visitor route.","asset":"public-aquarium-and-marine-centre-ticket-desk-5d81c4f6"},{"position":[-5.95,0.04,-0.65],"title":"The tank run","text":"Wall tank modules repeat on their ports with corner and end pieces, each with a frame, a lighting hood, interior rockwork and its interpretive sign. There are no fish and no moving water: those are for you to add.","asset":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33"},{"position":[-3,0.04,4.5],"title":"The tunnel","text":"Tunnel sections repeat into a walk through arch. The water surface is a still plane and the glass is glass: nothing here is animated, because water is not a rigid node.","asset":"public-aquarium-and-marine-centre-tunnel-tank-section-14262dee"},{"position":[3.1,0.04,4.4],"title":"Touch pool","text":"The touch pool and the open top ray pool section with their low walls and handrails, each with a static water surface plane where a real one would be.","asset":"public-aquarium-and-marine-centre-touch-pool-75729e13"},{"position":[-4.6,0.04,-3.6],"title":"Back of house","text":"The pump skid, filtration tower, protein skimmer, chiller with its spinning fan, quarantine tanks whose lids lift, the test and feed benches and the catwalk over the tanks.","asset":"public-aquarium-and-marine-centre-life-support-pump-sk-364d708f"},{"position":[10.2,0.04,4.8],"title":"Shop and cafe","text":"The gift shop counter and shelving, the cafe tables and chairs, the education classroom set and the touchscreen kiosks that tilt.","asset":"public-aquarium-and-marine-centre-gift-shop-counter-4204e45a"}],"poster":{"position":[-7.1,2.8,1.2],"lookAt":[-5.5,0.9,-2.4]}},"bounds":{"min":[-12.001199960708618,-0.06003021399493349,-10.450000023841858],"max":[12.2,5.503446167857151,6.8]},"assets":[{"id":"34156","slug":"public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","title":"Visitor Floor Tile (Public Aquarium and Marine Centre)","summary":"A 2 m square of poured visitor floor with a recessed joint grid and a coloured route inlay, the tile every gallery in this pack stands on.","description":"A 2 m square of poured visitor floor with a recessed joint grid and a coloured route inlay, the tile every gallery in this pack stands on. Overall 2.00 by 0.07 by 2.00 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m floor grid through floor-north, floor-south, floor-east and floor-west, so a gallery floor of any shape is this one tile repeated. The route inlay runs along Z, so a turn is a tile rotated 90 degrees. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","cdnUrl":"https://cdn.3dassets.dev/assets/34156/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-visitor-floor-tile-86a4c47c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34156/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34156/v1/poster.webp","blurhash":"U7C%BQ%M00ae%gayaKof00Mx~qR*9Es:ShNG","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6188,"triangles":84,"vertices":196,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.0011999607086182,-0.000030213994933490917,-1.0011999607086182],"max":[1.0011999607086182,0.06800503641818081,1.0011999607086182]},"sizeMeters":[2.002,0.068,2.002],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:09.740Z","updatedAt":"2026-09-11T06:52:09.847Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34156/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VisitorFloorTilePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34156/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34156/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34156/v1/model.glb\" alt=\"Visitor Floor Tile (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34156/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34156/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34144","slug":"public-aquarium-and-marine-centre-corner-tank-module-84d95df2","title":"Corner Tank Module (Public Aquarium and Marine Centre)","summary":"The corner piece of the wall tank run: a square glazed box that turns a gallery wall through 90 degrees, with rockwork wrapping the inside corner.","description":"The corner piece of the wall tank run: a square glazed box that turns a gallery wall through 90 degrees, with rockwork wrapping the inside corner. Overall 0.90 by 2.11 by 0.90 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. tank-left continues a run along X and tank-back turns it away along -Z. Empty glass: add your own water and animals. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-corner-tank-module-84d95df2","cdnUrl":"https://cdn.3dassets.dev/assets/34144/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-corner-tank-module-84d95df2","thumbnailUrl":"https://cdn.3dassets.dev/assets/34144/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34144/v1/poster.webp","blurhash":"U9BzIM%g008__4od9EWCo#WBV?t8RoWBn}s;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":67160,"triangles":2780,"vertices":2768,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000006409010996522024,-0.44999998807907104],"max":[0.44999998807907104,2.109999895095825,0.44999998807907104]},"sizeMeters":[0.9,2.11,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:04.543Z","updatedAt":"2026-09-11T06:52:04.704Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34144/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CornerTankModulePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34144/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34144/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34144/v1/model.glb\" alt=\"Corner Tank Module (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34144/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34144/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34143","slug":"public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","title":"Wall Tank Module (Public Aquarium and Marine Centre)","summary":"A 2 m bay of the wall tank run: a service cabinet plinth, a glazed viewing box on a welded frame, a moulded rock back wall and coral, with a caption band under the glass.","description":"A 2 m bay of the wall tank run: a service cabinet plinth, a glazed viewing box on a welded frame, a moulded rock back wall and coral, with a caption band under the glass. Overall 2.00 by 2.11 by 0.93 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m tank-run grid through tank-left and tank-right so a gallery wall of any length repeats from this one bay; the corner module turns the run. The tank is empty on purpose: there is no water volume, no surface and no fish here, because this library ships rigid geometry only. Fill the glass box with your own water volume and animals. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","cdnUrl":"https://cdn.3dassets.dev/assets/34143/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wall-tank-module-dbdfdf33","thumbnailUrl":"https://cdn.3dassets.dev/assets/34143/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34143/v1/poster.webp","blurhash":"UBD,Ar.800D%_4xvD%InIVj]t6WUNexvs,Mx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":86144,"triangles":3544,"vertices":3675,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000030213994933490917,-0.46249222111308325],"max":[1,2.1099384728477264,0.46249222111308325]},"sizeMeters":[2,2.11,0.925],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:04.512Z","updatedAt":"2026-09-11T06:52:04.611Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34143/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallTankModulePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34143/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34143/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34143/v1/model.glb\" alt=\"Wall Tank Module (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34143/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34143/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34146","slug":"public-aquarium-and-marine-centre-wall-tank-module-end-b2a96a42","title":"Wall Tank Module End (Public Aquarium and Marine Centre)","summary":"The wall tank bay with a solid return panel closing the right hand end of a run, so a gallery wall stops cleanly instead of showing a cut glass edge.","description":"The wall tank bay with a solid return panel closing the right hand end of a run, so a gallery wall stops cleanly instead of showing a cut glass edge. Overall 2.10 by 2.11 by 0.93 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Only tank-left is live; the right hand end is closed. Same empty glass box as the standard bay: water and animals are yours to add. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wall-tank-module-end-b2a96a42","cdnUrl":"https://cdn.3dassets.dev/assets/34146/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wall-tank-module-end-b2a96a42","thumbnailUrl":"https://cdn.3dassets.dev/assets/34146/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34146/v1/poster.webp","blurhash":"UCC?+R~q000K~Xt7D%RjMyRjjrs-N_t8smM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90528,"triangles":3760,"vertices":3861,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000030213994933490917,-0.46245648197653044],"max":[1.1050000190734863,2.1099384728477264,0.46245648197653044]},"sizeMeters":[2.105,2.11,0.925],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:03.600Z","updatedAt":"2026-09-11T06:52:03.783Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34146/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallTankModuleEndPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34146/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34146/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34146/v1/model.glb\" alt=\"Wall Tank Module End (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34146/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34146/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34152","slug":"public-aquarium-and-marine-centre-tank-lighting-hood-542461be","title":"Tank Lighting Hood (Public Aquarium and Marine Centre)","summary":"A 2 m tank lighting hood: a vented steel canopy with four emissive lamp channels under a reflector, sized to sit on the wall tank run.","description":"A 2 m tank lighting hood: a vented steel canopy with four emissive lamp channels under a reflector, sized to sit on the wall tank run. Overall 2.00 by 0.40 by 1.04 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Origin at the underside of the hood, which is where it meets the tank top: place it at the tank coping height. The lamp channels are emissive geometry, not lights; add your own light sources. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tank-lighting-hood-542461be","cdnUrl":"https://cdn.3dassets.dev/assets/34152/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tank-lighting-hood-542461be","thumbnailUrl":"https://cdn.3dassets.dev/assets/34152/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34152/v1/poster.webp","blurhash":"U7A^at~q00RPM{xv%fRj009F-=oe%LRiIAM{","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":20592,"triangles":780,"vertices":866,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.000002439009080756893,-0.5200335620018395],"max":[1,0.3999975678454534,0.5200335620018395]},"sizeMeters":[2,0.4,1.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:08.012Z","updatedAt":"2026-09-11T06:52:08.129Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34152/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TankLightingHoodPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34152/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34152/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34152/v1/model.glb\" alt=\"Tank Lighting Hood (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34152/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34152/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34150","slug":"public-aquarium-and-marine-centre-tank-rockwork-arch-bb6b8bf3","title":"Tank Rockwork Arch (Public Aquarium and Marine Centre)","summary":"A moulded rockwork arch for the inside of a tank: a stacked reef ledge with a swim-through opening and a coral head on the shoulder.","description":"A moulded rockwork arch for the inside of a tank: a stacked reef ledge with a swim-through opening and a coral head on the shoulder. Overall 1.15 by 1.52 by 0.54 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Dressing for the inside of a tank, so it is modelled to be seen through glass. Rests on y=0 on the tank floor. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tank-rockwork-arch-bb6b8bf3","cdnUrl":"https://cdn.3dassets.dev/assets/34150/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tank-rockwork-arch-bb6b8bf3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34150/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34150/v1/poster.webp","blurhash":"U3BD4u%200%L]jOY0grX009a_M^*M_#,~VOr","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":81300,"triangles":3580,"vertices":3606,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5772638648635162,1.7706359711766595e-9,-0.250319246541277],"max":[0.5717647060176303,1.515264630317688,0.2921228151428853]},"sizeMeters":[1.149,1.515,0.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:06.440Z","updatedAt":"2026-09-11T06:52:06.591Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34150/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TankRockworkArchPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34150/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34150/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34150/v1/model.glb\" alt=\"Tank Rockwork Arch (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34150/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34150/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34151","slug":"public-aquarium-and-marine-centre-tank-coral-cluster-99d9457b","title":"Tank Coral Cluster (Public Aquarium and Marine Centre)","summary":"A reef dressing clump for the inside of a tank: a rock base carrying fans, fingers and bright coral heads at three heights.","description":"A reef dressing clump for the inside of a tank: a rock base carrying fans, fingers and bright coral heads at three heights. Overall 0.97 by 0.66 by 0.68 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Dressing for the inside of a tank. Rests on y=0 on the tank floor. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tank-coral-cluster-99d9457b","cdnUrl":"https://cdn.3dassets.dev/assets/34151/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tank-coral-cluster-99d9457b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34151/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34151/v1/poster.webp","blurhash":"UAC~bm%2009u}rsmOFNG00n~^*a$0}%2wcNc","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":70400,"triangles":2832,"vertices":3205,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4798209071159363,-0.000008254238496152588,-0.3305941219141308],"max":[0.4869953691959381,0.659476610558008,0.3504585618784252]},"sizeMeters":[0.967,0.659,0.681],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:07.107Z","updatedAt":"2026-09-11T06:52:07.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34151/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TankCoralClusterPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34151/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34151/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34151/v1/model.glb\" alt=\"Tank Coral Cluster (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34151/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34151/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34153","slug":"public-aquarium-and-marine-centre-tank-interpretive-si-7f6f02d0","title":"Tank Interpretive Sign (Public Aquarium and Marine Centre)","summary":"A leaning interpretive panel on two posts, 0.95 m wide, with a coloured graphic field, a caption band and a raised title plate.","description":"A leaning interpretive panel on two posts, 0.95 m wide, with a coloured graphic field, a caption band and a raised title plate. Overall 1.05 by 1.41 by 0.36 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tank-interpretive-si-7f6f02d0","cdnUrl":"https://cdn.3dassets.dev/assets/34153/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tank-interpretive-si-7f6f02d0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34153/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34153/v1/poster.webp","blurhash":"U6A-Fy%M009GB:%LvfD*]:M{A:xuL#%2*JIA","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":19304,"triangles":768,"vertices":681,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5249999761581421,0.0000032047892692694396,-0.17997756072220253],"max":[0.5249999761581421,1.409999966621399,0.18499832476023428]},"sizeMeters":[1.05,1.41,0.365],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:08.167Z","updatedAt":"2026-09-11T06:52:08.294Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34153/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TankInterpretiveSignPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34153/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34153/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34153/v1/model.glb\" alt=\"Tank Interpretive Sign (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34153/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34153/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34154","slug":"public-aquarium-and-marine-centre-tank-interpretive-si-a078150f","title":"Tank Interpretive Sign Teal (Public Aquarium and Marine Centre)","summary":"The interpretive panel in the second house livery: a pale graphic field with a teal title plate, for a second gallery in the same building.","description":"The interpretive panel in the second house livery: a pale graphic field with a teal title plate, for a second gallery in the same building. Overall 1.05 by 1.41 by 0.36 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tank-interpretive-si-a078150f","cdnUrl":"https://cdn.3dassets.dev/assets/34154/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tank-interpretive-si-a078150f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34154/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34154/v1/poster.webp","blurhash":"U9C%8Jx]00IA%gxuD$IUNMM{$zxu00xa~pIU","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":19372,"triangles":768,"vertices":681,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5249999761581421,0.0000032047892692694396,-0.17997756072220253],"max":[0.5249999761581421,1.409999966621399,0.18499832476023428]},"sizeMeters":[1.05,1.41,0.365],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:08.196Z","updatedAt":"2026-09-11T06:52:08.334Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34154/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TankInterpretiveSignTealPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34154/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34154/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34154/v1/model.glb\" alt=\"Tank Interpretive Sign Teal (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34154/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34154/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34155","slug":"public-aquarium-and-marine-centre-species-label-plate-cc25fc4e","title":"Species Label Plate (Public Aquarium and Marine Centre)","summary":"A small species label on a bent stainless stem: a 0.3 m plate with a coloured band and a silhouette block, for standing beside a tank.","description":"A small species label on a bent stainless stem: a 0.3 m plate with a coloured band and a silhouette block, for standing beside a tank. Overall 0.30 by 0.53 by 0.10 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-species-label-plate-cc25fc4e","cdnUrl":"https://cdn.3dassets.dev/assets/34155/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-species-label-plate-cc25fc4e","thumbnailUrl":"https://cdn.3dassets.dev/assets/34155/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34155/v1/poster.webp","blurhash":"U37w$z?G000L^i-oI[4:~W%29Y9ZE0t7%MIU","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":12856,"triangles":392,"vertices":423,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0,-0.050000967621661396],"max":[0.15000000596046448,0.533452575207466,0.050000967621661396]},"sizeMeters":[0.3,0.533,0.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:08.760Z","updatedAt":"2026-09-11T06:52:08.865Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34155/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpeciesLabelPlatePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34155/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34155/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34155/v1/model.glb\" alt=\"Species Label Plate (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34155/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34155/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34172","slug":"public-aquarium-and-marine-centre-wall-graphic-panel-a5dfb6e6","title":"Wall Graphic Panel (Public Aquarium and Marine Centre)","summary":"A 2 m module of interpretive wall graphic: a framed 2.7 m panel with a coloured field, a title band and a picture block, standing on its own foot against a gallery wall.","description":"A 2 m module of interpretive wall graphic: a framed 2.7 m panel with a coloured field, a title band and a picture block, standing on its own foot against a gallery wall. Overall 2.00 by 2.70 by 0.28 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m wall grid through wall-left and wall-right, so a graphic wall of any length is this module repeated. It is freestanding, so it needs no host wall. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wall-graphic-panel-a5dfb6e6","cdnUrl":"https://cdn.3dassets.dev/assets/34172/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wall-graphic-panel-a5dfb6e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34172/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34172/v1/poster.webp","blurhash":"U87{5G%#00DO]-xuFxD*Q8rXuiTdFeoL,VWo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13060,"triangles":384,"vertices":420,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.19992821001974606],"max":[0.9999237302152423,2.700000047683716,0.07603045788398867]},"sizeMeters":[2,2.7,0.276],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:17.222Z","updatedAt":"2026-09-11T06:52:17.412Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34172/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallGraphicPanelPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34172/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34172/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34172/v1/model.glb\" alt=\"Wall Graphic Panel (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34172/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34172/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34173","slug":"public-aquarium-and-marine-centre-wall-graphic-panel-c-e8b56a8f","title":"Wall Graphic Panel Coral (Public Aquarium and Marine Centre)","summary":"The wall graphic module in the warm livery, so a run of panels alternates instead of repeating one colour along a whole gallery.","description":"The wall graphic module in the warm livery, so a run of panels alternates instead of repeating one colour along a whole gallery. Overall 2.00 by 2.70 by 0.28 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wall-graphic-panel-c-e8b56a8f","cdnUrl":"https://cdn.3dassets.dev/assets/34173/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wall-graphic-panel-c-e8b56a8f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34173/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34173/v1/poster.webp","blurhash":"UFC~bn-p009aO?t7#lM{0fNH}@-A#lbHOYn%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13132,"triangles":384,"vertices":420,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.19992821001974606],"max":[0.9999237302152423,2.700000047683716,0.07603045788398867]},"sizeMeters":[2,2.7,0.276],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:17.457Z","updatedAt":"2026-09-11T06:52:17.562Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34173/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallGraphicPanelCoralPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34173/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34173/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34173/v1/model.glb\" alt=\"Wall Graphic Panel Coral (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34173/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34173/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34147","slug":"public-aquarium-and-marine-centre-tunnel-tank-section-14262dee","title":"Tunnel Tank Section (Public Aquarium and Marine Centre)","summary":"A 2 m section of walk through tunnel: a glazed crown over a 2.3 m walkway, with a glass sided reef tank each side on a concrete kerb, steel ribs and coping, and rockwork and coral banked behind the glass.","description":"A 2 m section of walk through tunnel: a glazed crown over a 2.3 m walkway, with a glass sided reef tank each side on a concrete kerb, steel ribs and coping, and rockwork and coral banked behind the glass. Overall 2.00 by 2.34 by 3.97 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m tunnel grid through tunnel-left and tunnel-right, so a walk through of any length is this one section repeated. The arch is glass over an empty volume: no water, no surface and no fish, because rigid geometry cannot carry them. Add a water volume outside the arch and inside the flanking walls. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-tunnel-tank-section-14262dee","cdnUrl":"https://cdn.3dassets.dev/assets/34147/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-tunnel-tank-section-14262dee","thumbnailUrl":"https://cdn.3dassets.dev/assets/34147/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34147/v1/poster.webp","blurhash":"U7EfZy.700e:0L4nslRl00$*-;NeR5NGxu~q","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":187364,"triangles":7472,"vertices":8521,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.0012048902403037,0.0000854484830372787,-1.9850000143051147],"max":[1.0012048902403037,2.3406260400076206,1.9850000143051147]},"sizeMeters":[2.002,2.341,3.97],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:05.405Z","updatedAt":"2026-09-11T06:52:05.507Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34147/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TunnelTankSectionPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34147/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34147/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34147/v1/model.glb\" alt=\"Tunnel Tank Section (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34147/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34147/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34145","slug":"public-aquarium-and-marine-centre-column-tank-099b661d","title":"Column Tank (Public Aquarium and Marine Centre)","summary":"A floor to ceiling cylindrical column tank, 1.2 m across and 3.3 m tall, on a clad plinth with a steel top collar and a rock and coral pillar standing inside the glass.","description":"A floor to ceiling cylindrical column tank, 1.2 m across and 3.3 m tall, on a clad plinth with a steel top collar and a rock and coral pillar standing inside the glass. Overall 1.56 by 3.30 by 1.56 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Origin on the plinth centre. The glass is a double-walled shell with nothing between the walls: no water volume, no surface and no fish, which are the consumer's to add. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-column-tank-099b661d","cdnUrl":"https://cdn.3dassets.dev/assets/34145/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-column-tank-099b661d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34145/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34145/v1/poster.webp","blurhash":"U29Qmr_300000Lay?ZR*9Zxu?aD*~qxu9FD%","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":126744,"triangles":5504,"vertices":5528,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.7799999713897705,0.000025342970610825466,-0.7799999713897705],"max":[0.7799999713897705,3.299999952316284,0.7799999713897705]},"sizeMeters":[1.56,3.3,1.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:04.545Z","updatedAt":"2026-09-11T06:52:04.666Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34145/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ColumnTankPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34145/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34145/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34145/v1/model.glb\" alt=\"Column Tank (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34145/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34145/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34148","slug":"public-aquarium-and-marine-centre-touch-pool-75729e13","title":"Touch Pool (Public Aquarium and Marine Centre)","summary":"A shallow touch pool 2.6 by 1.7 m with a leaning wall at hand height, a timber coping, a sand bed, rockwork and a still water surface plane.","description":"A shallow touch pool 2.6 by 1.7 m with a leaning wall at hand height, a timber coping, a sand bed, rockwork and a still water surface plane. Overall 2.70 by 0.95 by 1.80 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The water surface is a single static plane 160 mm below the coping. It does not move and it is not a shader: replace it or drive it yourself. No animals are included. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-touch-pool-75729e13","cdnUrl":"https://cdn.3dassets.dev/assets/34148/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-touch-pool-75729e13","thumbnailUrl":"https://cdn.3dassets.dev/assets/34148/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34148/v1/poster.webp","blurhash":"U8FPB6_N00$%?E?GkCM{00H?S~ELIwELIUMx","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":75516,"triangles":3076,"vertices":3218,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.350000023841858,0.000052209574153139204,-0.900054949212599],"max":[1.350000023841858,0.9498591131778291,0.900054949212599]},"sizeMeters":[2.7,0.95,1.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:06.237Z","updatedAt":"2026-09-11T06:52:06.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34148/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TouchPoolPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34148/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34148/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34148/v1/model.glb\" alt=\"Touch Pool (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34148/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34148/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34149","slug":"public-aquarium-and-marine-centre-ray-pool-section-07b90de7","title":"Ray Pool Section (Public Aquarium and Marine Centre)","summary":"A 3 m section of open top ray pool: a deep tiled basin with a viewing shelf, a stainless kick rail, a still water surface plane and a sand bed, ported so a pool of any length repeats.","description":"A 3 m section of open top ray pool: a deep tiled basin with a viewing shelf, a stainless kick rail, a still water surface plane and a sand bed, ported so a pool of any length repeats. Overall 3.00 by 1.06 by 2.50 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 3 m pool grid through pool-left and pool-right. The water surface is one static plane 140 mm below the shelf; it does not move, and there are no rays, because this library ships rigid geometry only. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-ray-pool-section-07b90de7","cdnUrl":"https://cdn.3dassets.dev/assets/34149/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-ray-pool-section-07b90de7","thumbnailUrl":"https://cdn.3dassets.dev/assets/34149/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34149/v1/poster.webp","blurhash":"U4E3VU?^00-Ut-bvRPt7008_cFIo+ar@E1D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80736,"triangles":2980,"vertices":3581,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00005095637408170095,-1.250053407391583],"max":[1.5,1.059918191321118,1.250053407391583]},"sizeMeters":[3,1.06,2.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:06.454Z","updatedAt":"2026-09-11T06:52:06.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34149/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RayPoolSectionPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34149/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34149/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34149/v1/model.glb\" alt=\"Ray Pool Section (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34149/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34149/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34157","slug":"public-aquarium-and-marine-centre-handrail-section-654ae00c","title":"Handrail Section (Public Aquarium and Marine Centre)","summary":"A 2 m section of visitor handrail: two flanged posts carrying a tubular top rail, a mid rail and a toe rail, for the edge of a pool or a step.","description":"A 2 m section of visitor handrail: two flanged posts carrying a tubular top rail, a mid rail and a toe rail, for the edge of a pool or a step. Overall 2.00 by 1.03 by 0.16 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m rail grid through rail-left and rail-right. The top rail overhangs each post by 80 mm so two sections butt into one continuous tube. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-handrail-section-654ae00c","cdnUrl":"https://cdn.3dassets.dev/assets/34157/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-handrail-section-654ae00c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34157/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34157/v1/poster.webp","blurhash":"U49jyAt74mx]%g~qITM{00Ri?IIUIT_3xvay","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17932,"triangles":452,"vertices":830,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.000024111464014375805,-0.07995849482711265],"max":[1,1.025323955819616,0.07995849482711265]},"sizeMeters":[2,1.025,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:11.120Z","updatedAt":"2026-09-11T06:52:11.248Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34157/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HandrailSectionPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34157/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34157/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34157/v1/model.glb\" alt=\"Handrail Section (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34157/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34157/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34162","slug":"public-aquarium-and-marine-centre-ticket-desk-5d81c4f6","title":"Ticket Desk (Public Aquarium and Marine Centre)","summary":"A 2.6 m ticket desk: a clad counter with a raised transaction shelf, a glazed screen on steel uprights, two till positions and a lit price header.","description":"A 2.6 m ticket desk: a clad counter with a raised transaction shelf, a glazed screen on steel uprights, two till positions and a lit price header. Overall 2.68 by 2.16 by 0.82 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-ticket-desk-5d81c4f6","cdnUrl":"https://cdn.3dassets.dev/assets/34162/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-ticket-desk-5d81c4f6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34162/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34162/v1/poster.webp","blurhash":"U8BNZiyC00oJ?^%LH=D%00WD~VIA0eF3-=#7","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":38920,"triangles":1528,"vertices":1488,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.340000033378601,0.00006431625493463766,-0.4099704072579265],"max":[1.340000033378601,2.160074200211162,0.4099704072579265]},"sizeMeters":[2.68,2.16,0.82],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:12.301Z","updatedAt":"2026-09-11T06:52:12.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34162/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TicketDeskPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34162/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34162/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34162/v1/model.glb\" alt=\"Ticket Desk (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34162/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34162/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34163","slug":"public-aquarium-and-marine-centre-turnstile-gate-83e9070d","title":"Turnstile Gate (Public Aquarium and Marine Centre)","summary":"A tripod turnstile: a stainless pedestal with a validator head and a three arm rotor, flanked by a fixed guide barrier, at the entry to a ticketed gallery.","description":"A tripod turnstile: a stainless pedestal with a validator head and a three arm rotor, flanked by a fixed guide barrier, at the entry to a ticketed gallery. Overall 1.35 by 1.19 by 0.80 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The rotor spins about the pedestal head; the pedestal, the validator and the guide barrier are fixed. There is no ratchet or one-way logic in the geometry: the clip is a full turn. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-turnstile-gate-83e9070d","cdnUrl":"https://cdn.3dassets.dev/assets/34163/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-turnstile-gate-83e9070d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34163/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34163/v1/poster.webp","blurhash":"U37x2Z?w00D4%MWYIUVs00Md_NpcnN-:xuE1","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":34348,"triangles":900,"vertices":1502,"meshes":5,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.8899786595499457,0,-0.28254418817937155],"max":[0.46333321928977966,1.1935511827468872,0.5200275107997634]},"sizeMeters":[1.353,1.194,0.803],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:12.933Z","updatedAt":"2026-09-11T06:52:13.034Z","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/34163/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 TurnstileGatePublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34163/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/34163/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34163/v1/model.glb\" alt=\"Turnstile Gate (Public Aquarium and Marine Centre)\" 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/34163/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/34163/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34164","slug":"public-aquarium-and-marine-centre-cloakroom-lockers-e8de4a30","title":"Cloakroom Lockers (Public Aquarium and Marine Centre)","summary":"A bank of six cloakroom lockers, 1.9 m wide: a welded carcass on a plinth with two shelves and six hinged doors, each with a coin lock escutcheon and a label strip.","description":"A bank of six cloakroom lockers, 1.9 m wide: a welded carcass on a plinth with two shelves and six hinged doors, each with a coin lock escutcheon and a label strip. Overall 1.90 by 2.00 by 0.51 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Every door is its own node on its own hinge stile and swings on a rigid transform; the carcass, the shelves and the top are fixed. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-cloakroom-lockers-e8de4a30","cdnUrl":"https://cdn.3dassets.dev/assets/34164/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-cloakroom-lockers-e8de4a30","thumbnailUrl":"https://cdn.3dassets.dev/assets/34164/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34164/v1/poster.webp","blurhash":"U89aN$t700RQ_NozDiROW?f+e.aKxux]M{D$","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":33856,"triangles":2724,"vertices":2390,"meshes":21,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.949999988079071,-7.1525572131747595e-9,-0.2500610338810995],"max":[0.949999988079071,2.0000137228111825,0.26299787314938505]},"sizeMeters":[1.9,2,0.513],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:13.763Z","updatedAt":"2026-09-11T06:52:13.864Z","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/34164/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 CloakroomLockersPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34164/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/34164/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34164/v1/model.glb\" alt=\"Cloakroom Lockers (Public Aquarium and Marine Centre)\" 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/34164/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/34164/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34165","slug":"public-aquarium-and-marine-centre-cloakroom-lockers-op-4b76ef74","title":"Cloakroom Lockers Open (Public Aquarium and Marine Centre)","summary":"The cloakroom bank with two doors already standing open, for dressing a busy cloakroom without posing a clip.","description":"The cloakroom bank with two doors already standing open, for dressing a busy cloakroom without posing a clip. Overall 1.90 by 2.80 by 1.06 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The two open doors are baked into the geometry and carry no clip, so they cannot swing on from an already-open pose; the other four still open and close. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-cloakroom-lockers-op-4b76ef74","cdnUrl":"https://cdn.3dassets.dev/assets/34165/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-cloakroom-lockers-op-4b76ef74","thumbnailUrl":"https://cdn.3dassets.dev/assets/34165/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34165/v1/poster.webp","blurhash":"U38Nwuax00oh%fozRPRP00x]_NDi9E%gx^4n","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":38708,"triangles":2724,"vertices":2390,"meshes":21,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.949999988079071,-7.1525572131747595e-9,-0.2500610338810995],"max":[0.949999988079071,2.7999999427795412,0.8068341243566617]},"sizeMeters":[1.9,2.8,1.057],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:13.956Z","updatedAt":"2026-09-11T06:52:14.050Z","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/34165/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 CloakroomLockersOpenPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34165/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/34165/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34165/v1/model.glb\" alt=\"Cloakroom Lockers Open (Public Aquarium and Marine Centre)\" 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/34165/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/34165/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34160","slug":"public-aquarium-and-marine-centre-pushchair-park-f8fc2b46","title":"Pushchair Park (Public Aquarium and Marine Centre)","summary":"A pushchair park: a low steel corral of four wheel bays under a leaning header sign, for the point where a route narrows into a tunnel.","description":"A pushchair park: a low steel corral of four wheel bays under a leaning header sign, for the point where a route narrows into a tunnel. Overall 1.90 by 1.29 by 0.90 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-pushchair-park-f8fc2b46","cdnUrl":"https://cdn.3dassets.dev/assets/34160/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-pushchair-park-f8fc2b46","thumbnailUrl":"https://cdn.3dassets.dev/assets/34160/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34160/v1/poster.webp","blurhash":"UBBzd|R500o}00s;$jNGR5E1M{%2~D.8NFMd","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":42396,"triangles":1176,"vertices":2083,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,-0.00004435989146345243,-0.4499938906514256],"max":[0.949999988079071,1.2873423239875328,0.4499938906514256]},"sizeMeters":[1.9,1.287,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:12.612Z","updatedAt":"2026-09-11T06:52:12.749Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34160/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PushchairParkPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34160/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34160/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34160/v1/model.glb\" alt=\"Pushchair Park (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34160/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34160/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34161","slug":"public-aquarium-and-marine-centre-wayfinding-totem-27df65f9","title":"Wayfinding Totem (Public Aquarium and Marine Centre)","summary":"A 2.5 m wayfinding totem: a slim clad column with a coloured header, three directional arrow plates and a lit level band, freestanding on a weighted base.","description":"A 2.5 m wayfinding totem: a slim clad column with a coloured header, three directional arrow plates and a lit level band, freestanding on a weighted base. Overall 0.60 by 2.47 by 0.42 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wayfinding-totem-27df65f9","cdnUrl":"https://cdn.3dassets.dev/assets/34161/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wayfinding-totem-27df65f9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34161/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34161/v1/poster.webp","blurhash":"U28E0k?b0000=?R%5Axb~ARj0g-q;0kABqah","category":{"slug":"icons","title":"3D Icons & UI"},"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":32000,"triangles":1320,"vertices":1177,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.300038141965036,-3.725291186640334e-10,-0.2100161704899725],"max":[0.300038141965036,2.4700000286102295,0.2100161704899725]},"sizeMeters":[0.6,2.47,0.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:11.892Z","updatedAt":"2026-09-11T06:52:12.000Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34161/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WayfindingTotemPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34161/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34161/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34161/v1/model.glb\" alt=\"Wayfinding Totem (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34161/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34161/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34170","slug":"public-aquarium-and-marine-centre-touchscreen-kiosk-6e93d8a4","title":"Touchscreen Kiosk (Public Aquarium and Marine Centre)","summary":"A freestanding touchscreen kiosk: a weighted column with a tilting screen head in a dark bezel, a coloured brow and a leaflet pocket.","description":"A freestanding touchscreen kiosk: a weighted column with a tilting screen head in a dark bezel, a coloured brow and a leaflet pocket. Overall 0.56 by 1.04 by 0.46 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The screen head tilts on its mounting boss; the column, the base and the leaflet pocket are fixed. The lit panel is emissive geometry, not a light source, and shows no interface. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-touchscreen-kiosk-6e93d8a4","cdnUrl":"https://cdn.3dassets.dev/assets/34170/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-touchscreen-kiosk-6e93d8a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/34170/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34170/v1/poster.webp","blurhash":"U26*wE?c00000mS6=ps*u6S#Q+#RqdRPpu%g","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":19552,"triangles":672,"vertices":615,"meshes":6,"materials":5,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.2800000011920929,-0.000012811558121494926,-0.23001037629322185],"max":[0.2800000011920929,1.0399999618530273,0.23001037629322185]},"sizeMeters":[0.56,1.04,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:15.959Z","updatedAt":"2026-09-11T06:52:16.057Z","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/34170/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 TouchscreenKioskPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34170/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/34170/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34170/v1/model.glb\" alt=\"Touchscreen Kiosk (Public Aquarium and Marine Centre)\" 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/34170/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/34170/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34158","slug":"public-aquarium-and-marine-centre-visitor-bench-4491faa1","title":"Visitor Bench (Public Aquarium and Marine Centre)","summary":"A 1.75 m backless gallery bench: five timber slats on two cast steel ends with a tie rail, the seat a busy aquarium puts opposite its biggest tank.","description":"A 1.75 m backless gallery bench: five timber slats on two cast steel ends with a tie rail, the seat a busy aquarium puts opposite its biggest tank. Overall 1.70 by 0.47 by 0.50 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-visitor-bench-4491faa1","cdnUrl":"https://cdn.3dassets.dev/assets/34158/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-visitor-bench-4491faa1","thumbnailUrl":"https://cdn.3dassets.dev/assets/34158/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34158/v1/poster.webp","blurhash":"UDCi,Mt59Gxu~V^+IoIU00-o-oIV01IV?as:","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":20804,"triangles":888,"vertices":796,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.000030512568702664722,-0.24999268234792937],"max":[0.8500000238418579,0.46501655215459153,0.24999268234792937]},"sizeMeters":[1.7,0.465,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:10.117Z","updatedAt":"2026-09-11T06:52:10.217Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34158/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VisitorBenchPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34158/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34158/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34158/v1/model.glb\" alt=\"Visitor Bench (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34158/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34158/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34159","slug":"public-aquarium-and-marine-centre-visitor-bench-teal-d3402427","title":"Visitor Bench Teal (Public Aquarium and Marine Centre)","summary":"The gallery bench with painted teal slats, for the education and cafe end of a building where the timber livery would read as retail.","description":"The gallery bench with painted teal slats, for the education and cafe end of a building where the timber livery would read as retail. Overall 1.70 by 0.47 by 0.50 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-visitor-bench-teal-d3402427","cdnUrl":"https://cdn.3dassets.dev/assets/34159/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-visitor-bench-teal-d3402427","thumbnailUrl":"https://cdn.3dassets.dev/assets/34159/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34159/v1/poster.webp","blurhash":"UA7.mzS#MIxudB.SR5IA8wX-pcVYL#Mx%$s;","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":20848,"triangles":888,"vertices":796,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.000030512568702664722,-0.24999268234792937],"max":[0.8500000238418579,0.46501655215459153,0.24999268234792937]},"sizeMeters":[1.7,0.465,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:10.625Z","updatedAt":"2026-09-11T06:52:10.725Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34159/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VisitorBenchTealPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34159/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34159/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34159/v1/model.glb\" alt=\"Visitor Bench Teal (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34159/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34159/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34169","slug":"public-aquarium-and-marine-centre-education-classroom--42ba1727","title":"Education Classroom Table Set (Public Aquarium and Marine Centre)","summary":"A classroom table set: a 1.6 m wipe-clean table with a raised sample tray rail and four stools, the furniture an education room runs school groups from.","description":"A classroom table set: a 1.6 m wipe-clean table with a raised sample tray rail and four stools, the furniture an education room runs school groups from. Overall 1.60 by 0.81 by 1.88 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-education-classroom--42ba1727","cdnUrl":"https://cdn.3dassets.dev/assets/34169/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-education-classroom--42ba1727","thumbnailUrl":"https://cdn.3dassets.dev/assets/34169/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34169/v1/poster.webp","blurhash":"U8B|EB_100D%x_M}IAni00M}%hICDN-o~ptQ","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":43060,"triangles":1944,"vertices":1676,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.800000011920929,-0.000031736599270193455,-0.9399999976158142],"max":[0.800000011920929,0.8100204469728911,0.9399999976158142]},"sizeMeters":[1.6,0.81,1.88],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:15.701Z","updatedAt":"2026-09-11T06:52:15.866Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34169/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EducationClassroomTableSetPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34169/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34169/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34169/v1/model.glb\" alt=\"Education Classroom Table Set (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34169/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34169/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34166","slug":"public-aquarium-and-marine-centre-gift-shop-counter-4204e45a","title":"Gift Shop Counter (Public Aquarium and Marine Centre)","summary":"A gift shop corner: a 2 m till counter with a clad front and a timber top, backed by a four shelf display wall carrying blocks of bright stock and a lit header.","description":"A gift shop corner: a 2 m till counter with a clad front and a timber top, backed by a four shelf display wall carrying blocks of bright stock and a lit header. Overall 2.40 by 2.58 by 1.49 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Origin centred on the counter and the shelf wall together; the shelf wall stands 400 mm behind the counter so a server can pass between them. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-gift-shop-counter-4204e45a","cdnUrl":"https://cdn.3dassets.dev/assets/34166/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-gift-shop-counter-4204e45a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34166/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34166/v1/poster.webp","blurhash":"U7B:$@-600GGLgM{Z3t600NH~BMy^N-;NeIU","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":76964,"triangles":3576,"vertices":3081,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.00004737740264482149,-0.4000465963598021],"max":[1.2000000476837158,2.5799944391855845,1.0900668467601327]},"sizeMeters":[2.4,2.58,1.49],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:14.301Z","updatedAt":"2026-09-11T06:52:14.395Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34166/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GiftShopCounterPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34166/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34166/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34166/v1/model.glb\" alt=\"Gift Shop Counter (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34166/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34166/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34167","slug":"public-aquarium-and-marine-centre-cafe-table-and-chair-fa60fcbf","title":"Cafe Table And Chairs (Public Aquarium and Marine Centre)","summary":"A cafe setting: an 0.8 m timber topped pedestal table on a cast base with three upholstered chairs drawn up to it, for the catering corner of a visitor centre.","description":"A cafe setting: an 0.8 m timber topped pedestal table on a cast base with three upholstered chairs drawn up to it, for the catering corner of a visitor centre. Overall 1.31 by 0.91 by 1.78 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The table is round, so it reads at any rotation; the chairs are separate geometry in one model rather than four files. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-cafe-table-and-chair-fa60fcbf","cdnUrl":"https://cdn.3dassets.dev/assets/34167/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-cafe-table-and-chair-fa60fcbf","thumbnailUrl":"https://cdn.3dassets.dev/assets/34167/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34167/v1/poster.webp","blurhash":"UA8}i8?b007M_Mw]D%O@00H?-:-A01IV-n#*","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":60320,"triangles":2736,"vertices":2512,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000026023163493371637,-0.8899999856948853],"max":[0.9100106833433015,0.9100282079622248,0.8899999856948853]},"sizeMeters":[1.31,0.91,1.78],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:14.788Z","updatedAt":"2026-09-11T06:52:14.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34167/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CafeTableAndChairsPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34167/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34167/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34167/v1/model.glb\" alt=\"Cafe Table And Chairs (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34167/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34167/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34168","slug":"public-aquarium-and-marine-centre-cafe-table-and-chair-1f443378","title":"Cafe Table And Chairs Coral (Public Aquarium and Marine Centre)","summary":"The cafe setting in the warm livery, with coral upholstery, so a room of tables is not all one colour.","description":"The cafe setting in the warm livery, with coral upholstery, so a room of tables is not all one colour. Overall 1.31 by 0.91 by 1.78 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-cafe-table-and-chair-1f443378","cdnUrl":"https://cdn.3dassets.dev/assets/34168/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-cafe-table-and-chair-1f443378","thumbnailUrl":"https://cdn.3dassets.dev/assets/34168/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34168/v1/poster.webp","blurhash":"UFC=;*-:0K+^~BX7E2$*01E1x[S~0fM|%1Sy","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":60376,"triangles":2736,"vertices":2512,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000026023163493371637,-0.8899999856948853],"max":[0.9100106833433015,0.9100282079622248,0.8899999856948853]},"sizeMeters":[1.31,0.91,1.78],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:15.541Z","updatedAt":"2026-09-11T06:52:15.635Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34168/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CafeTableAndChairsCoralPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34168/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34168/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34168/v1/model.glb\" alt=\"Cafe Table And Chairs Coral (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34168/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34168/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34171","slug":"public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","title":"Ceiling Light Bar (Public Aquarium and Marine Centre)","summary":"A 2.4 m suspended light bar: an extruded channel with a continuous emissive lens, end caps and two drop rods, the gallery lighting this pack hangs over a tank run.","description":"A 2.4 m suspended light bar: an extruded channel with a continuous emissive lens, end caps and two drop rods, the gallery lighting this pack hangs over a tank run. Overall 2.46 by 0.85 by 0.22 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Origin at the underside of the lens with the geometry rising to the ceiling plate 0.87 m above it, so the model is placed at ceiling height minus 0.87 rather than at the ceiling itself. The lens is emissive geometry, not a light source. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","cdnUrl":"https://cdn.3dassets.dev/assets/34171/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-ceiling-light-bar-e8a9cf32","thumbnailUrl":"https://cdn.3dassets.dev/assets/34171/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34171/v1/poster.webp","blurhash":"U584#v%MwcxuDi_N-;RP00IAo}og?^Di8_IU","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":20456,"triangles":688,"vertices":793,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2300000190734863,-0.000039521869077924904,-0.11105319236848274],"max":[1.2300000190734863,0.854007043121703,0.11105319236848274]},"sizeMeters":[2.46,0.854,0.222],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:16.454Z","updatedAt":"2026-09-11T06:52:16.550Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34171/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CeilingLightBarPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34171/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34171/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34171/v1/model.glb\" alt=\"Ceiling Light Bar (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34171/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34171/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34185","slug":"public-aquarium-and-marine-centre-service-catwalk-sect-7a52bad0","title":"Service Catwalk Section (Public Aquarium and Marine Centre)","summary":"A 2 m section of service catwalk: an open grating deck at 2.4 m on braced legs, with kick plates, a knee rail and a top rail down both sides, for walking the open tops of a tank run.","description":"A 2 m section of service catwalk: an open grating deck at 2.4 m on braced legs, with kick plates, a knee rail and a top rail down both sides, for walking the open tops of a tank run. Overall 2.00 by 3.50 by 1.05 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Tiles on the 2 m catwalk grid through catwalk-left and catwalk-right, so a gantry of any length is this one section repeated. Deck level is 2.4 m and the legs reach the floor, so it stands over a tank run without a host structure. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-service-catwalk-sect-7a52bad0","cdnUrl":"https://cdn.3dassets.dev/assets/34185/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-service-catwalk-sect-7a52bad0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34185/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34185/v1/poster.webp","blurhash":"U77K#aof00kC~pf99FobkYoee,R.9HoM-oWB","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":75120,"triangles":2252,"vertices":3679,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,0,-0.5240028077028718],"max":[1,3.5034461678571507,0.5240028077028718]},"sizeMeters":[2,3.503,1.048],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:23.730Z","updatedAt":"2026-09-11T06:52:23.827Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34185/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServiceCatwalkSectionPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34185/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34185/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34185/v1/model.glb\" alt=\"Service Catwalk Section (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34185/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34185/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34174","slug":"public-aquarium-and-marine-centre-life-support-pump-sk-364d708f","title":"Life Support Pump Skid (Public Aquarium and Marine Centre)","summary":"A packaged life support pump skid: three end suction pumps and motors bolted to a channel base with a common suction and delivery manifold, isolating valves, strainers and a gauge board.","description":"A packaged life support pump skid: three end suction pumps and motors bolted to a channel base with a common suction and delivery manifold, isolating valves, strainers and a gauge board. Overall 2.20 by 1.56 by 1.12 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Nothing on this skid moves. The impellers are inside their volutes, the handwheels are solid and there is no water: a pump that spins a hidden impeller buys a consumer nothing, so it ships static and the pipework is solid geometry. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-life-support-pump-sk-364d708f","cdnUrl":"https://cdn.3dassets.dev/assets/34174/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-life-support-pump-sk-364d708f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34174/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34174/v1/poster.webp","blurhash":"U57U^.*000m78_yDkrMx4THqyYyr%#Mdm,x]","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":143196,"triangles":5264,"vertices":6636,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.100000023841858,0.000026195634072467833,-0.5600207647245665],"max":[1.100000023841858,1.5599737376087255,0.5600207647245665]},"sizeMeters":[2.2,1.56,1.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:17.691Z","updatedAt":"2026-09-11T06:52:17.792Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34174/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LifeSupportPumpSkidPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34174/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34174/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34174/v1/model.glb\" alt=\"Life Support Pump Skid (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34174/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34174/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34175","slug":"public-aquarium-and-marine-centre-filtration-tower-c2141d5b","title":"Filtration Tower (Public Aquarium and Marine Centre)","summary":"A pressure sand filter: a 0.9 m glass fibre vessel on a skirt with a dished head, a multiport valve, a sight glass, a pressure gauge and flanged inlet and outlet legs.","description":"A pressure sand filter: a 0.9 m glass fibre vessel on a skirt with a dished head, a multiport valve, a sight glass, a pressure gauge and flanged inlet and outlet legs. Overall 1.00 by 2.48 by 1.36 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The multiport valve handle does not turn and the vessel is solid: there is no media bed, no water and no flow. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-filtration-tower-c2141d5b","cdnUrl":"https://cdn.3dassets.dev/assets/34175/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-filtration-tower-c2141d5b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34175/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34175/v1/poster.webp","blurhash":"U57d%qS200w|}@ae57kWDNjZyXoyITWVxvs:","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":83576,"triangles":3752,"vertices":3427,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.500052485561467,0,-0.5000693311843575],"max":[0.500052485561467,2.48091442211969,0.860819350734681]},"sizeMeters":[1,2.481,1.361],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:18.143Z","updatedAt":"2026-09-11T06:52:18.253Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34175/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FiltrationTowerPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34175/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34175/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34175/v1/model.glb\" alt=\"Filtration Tower (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34175/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34175/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34176","slug":"public-aquarium-and-marine-centre-protein-skimmer-colu-c38bf599","title":"Protein Skimmer Column (Public Aquarium and Marine Centre)","summary":"A protein skimmer: a 2.4 m acrylic column on a conical sump with a venturi injector, a riser, a drain and a removable collection cup with a sight window at the top.","description":"A protein skimmer: a 2.4 m acrylic column on a conical sump with a venturi injector, a riser, a drain and a removable collection cup with a sight window at the top. Overall 0.92 by 2.74 by 0.94 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The column is an empty acrylic shell: there is no foam, no water column and no air. The cup lifts off in reality but ships fixed here, because a lift-off cup with nothing under it reads as a modelling error. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-protein-skimmer-colu-c38bf599","cdnUrl":"https://cdn.3dassets.dev/assets/34176/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-protein-skimmer-colu-c38bf599","thumbnailUrl":"https://cdn.3dassets.dev/assets/34176/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34176/v1/poster.webp","blurhash":"U76[U7t700Io%2ofIoWA4TR*?^xa9ZWB-;t7","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":78496,"triangles":3284,"vertices":3279,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.3099885875717359,0,-0.3099546036971086],"max":[0.6139886075988965,2.740000009536743,0.6264546118033403]},"sizeMeters":[0.924,2.74,0.936],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:19.055Z","updatedAt":"2026-09-11T06:52:19.160Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34176/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProteinSkimmerColumnPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34176/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34176/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34176/v1/model.glb\" alt=\"Protein Skimmer Column (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34176/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34176/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34177","slug":"public-aquarium-and-marine-centre-chiller-unit-b4168a97","title":"Chiller Unit (Public Aquarium and Marine Centre)","summary":"A packaged water chiller: a louvred cabinet on anti-vibration feet with a guarded axial fan, a control panel, a titanium heat exchanger housing and flanged flow and return legs.","description":"A packaged water chiller: a louvred cabinet on anti-vibration feet with a guarded axial fan, a control panel, a titanium heat exchanger housing and flanged flow and return legs. Overall 1.02 by 1.42 by 1.09 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Only the fan turns, on the axis of its cowl. The compressor, the pipework and the louvres are fixed, and the cabinet is solid: there is no refrigerant circuit inside it. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-chiller-unit-b4168a97","cdnUrl":"https://cdn.3dassets.dev/assets/34177/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-chiller-unit-b4168a97","thumbnailUrl":"https://cdn.3dassets.dev/assets/34177/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34177/v1/poster.webp","blurhash":"UC9j$H-;00D%~qt79FNGRiWBRjafD%j]xvRj","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":72016,"triangles":2588,"vertices":3076,"meshes":8,"materials":6,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.5099932667423122,6.705522803684971e-10,-0.6599807816840078],"max":[0.5099932667423122,1.4199999570846558,0.42592147672528713]},"sizeMeters":[1.02,1.42,1.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:19.224Z","updatedAt":"2026-09-11T06:52:19.323Z","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/34177/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 ChillerUnitPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34177/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/34177/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34177/v1/model.glb\" alt=\"Chiller Unit (Public Aquarium and Marine Centre)\" 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/34177/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/34177/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34178","slug":"public-aquarium-and-marine-centre-quarantine-tank-on-f-7e9cc166","title":"Quarantine Tank On Frame (Public Aquarium and Marine Centre)","summary":"A quarantine tank: a 1.2 m glass box on a welded stand with a hinged mesh lid, a small hang-on filter box, an air line stack and a shelf of spare kit underneath.","description":"A quarantine tank: a 1.2 m glass box on a welded stand with a hinged mesh lid, a small hang-on filter box, an air line stack and a shelf of spare kit underneath. Overall 1.30 by 1.46 by 0.85 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The mesh lid lifts on its back hinge; everything else is fixed. The glass box is empty: no water, no surface and no animals. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-quarantine-tank-on-f-7e9cc166","cdnUrl":"https://cdn.3dassets.dev/assets/34178/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-quarantine-tank-on-f-7e9cc166","thumbnailUrl":"https://cdn.3dassets.dev/assets/34178/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34178/v1/poster.webp","blurhash":"U8AAgq-;00D%?bxuIVIV00Rj~qoz4oM|%M%1","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":88416,"triangles":3516,"vertices":3721,"meshes":10,"materials":8,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6499755958065464,1.4305114426349519e-8,-0.48520451409150533],"max":[0.6499755958065464,1.4600000381469727,0.36000307847927315]},"sizeMeters":[1.3,1.46,0.845],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:19.554Z","updatedAt":"2026-09-11T06:52:19.657Z","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/34178/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 QuarantineTankOnFramePublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34178/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/34178/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34178/v1/model.glb\" alt=\"Quarantine Tank On Frame (Public Aquarium and Marine Centre)\" 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/34178/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/34178/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34179","slug":"public-aquarium-and-marine-centre-water-test-bench-b9044121","title":"Water Test Bench (Public Aquarium and Marine Centre)","summary":"A water test bench: a laminate topped bench with a reagent rack of bottles, a tray of sample vials, a photometer, a log board and a drawer unit below.","description":"A water test bench: a laminate topped bench with a reagent rack of bottles, a tray of sample vials, a photometer, a log board and a drawer unit below. Overall 1.60 by 1.29 by 0.70 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The drawers and the photometer are solid, and the bottles do not open: a reagent bottle small enough to be right is too small to rig. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-water-test-bench-b9044121","cdnUrl":"https://cdn.3dassets.dev/assets/34179/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-water-test-bench-b9044121","thumbnailUrl":"https://cdn.3dassets.dev/assets/34179/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34179/v1/poster.webp","blurhash":"U99%*V%M4TRi~q%MIUM{00t7-;Rj00IUxuxu","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":91180,"triangles":2996,"vertices":4183,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.800000011920929,-0.00000946354483288836,-0.35003510150182676],"max":[0.800000011920929,1.290009418245303,0.35003510150182676]},"sizeMeters":[1.6,1.29,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:19.866Z","updatedAt":"2026-09-11T06:52:20.042Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34179/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterTestBenchPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34179/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34179/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34179/v1/model.glb\" alt=\"Water Test Bench (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34179/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34179/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34180","slug":"public-aquarium-and-marine-centre-feed-prep-bench-635b6b50","title":"Feed Prep Bench (Public Aquarium and Marine Centre)","summary":"A feed prep bench: a stainless topped wet bench with an upstand, a chopping board, a knife rail, a pan scale and four graduated feed buckets on the shelf under it.","description":"A feed prep bench: a stainless topped wet bench with an upstand, a chopping board, a knife rail, a pan scale and four graduated feed buckets on the shelf under it. Overall 1.80 by 1.12 by 0.75 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The buckets lift out in reality but ship fixed on the shelf, and nothing in the knife rail is sharp geometry. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-feed-prep-bench-635b6b50","cdnUrl":"https://cdn.3dassets.dev/assets/34180/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-feed-prep-bench-635b6b50","thumbnailUrl":"https://cdn.3dassets.dev/assets/34180/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34180/v1/poster.webp","blurhash":"UHB:y=xu8_R.~q%MIUM{4ntRx]M{4oR*t7t6","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":77760,"triangles":3340,"vertices":3411,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000023498060203630544,-0.378993629913551],"max":[0.8999999761581421,1.1199764995556107,0.3750022789540426]},"sizeMeters":[1.8,1.12,0.754],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:20.800Z","updatedAt":"2026-09-11T06:52:20.901Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34180/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FeedPrepBenchPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34180/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34180/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34180/v1/model.glb\" alt=\"Feed Prep Bench (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34180/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34180/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34181","slug":"public-aquarium-and-marine-centre-feed-fridge-78751f1a","title":"Feed Fridge (Public Aquarium and Marine Centre)","summary":"An upright feed fridge: a stainless cabinet on a plinth with four wire shelves of stacked feed boxes, a full height gasketed door with a tubular handle and a condenser hood.","description":"An upright feed fridge: a stainless cabinet on a plinth with four wire shelves of stacked feed boxes, a full height gasketed door with a tubular handle and a condenser hood. Overall 0.76 by 1.93 by 0.81 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The door swings on its hinge stile; the carcass, the shelves and the hood are fixed. The compressor is inside the hood as solid geometry and does not run. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-feed-fridge-78751f1a","cdnUrl":"https://cdn.3dassets.dev/assets/34181/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-feed-fridge-78751f1a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34181/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34181/v1/poster.webp","blurhash":"U57nXjxt00Dj~qa#4njYRRRioy%Mt7ayV@kC","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":43952,"triangles":2316,"vertices":2080,"meshes":8,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.38001358843495125,2.980232727267662e-10,-0.39002122858873306],"max":[0.38001358843495125,1.9299999475479126,0.4200337056402633]},"sizeMeters":[0.76,1.93,0.81],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:20.945Z","updatedAt":"2026-09-11T06:52:21.143Z","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/34181/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 FeedFridgePublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34181/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/34181/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34181/v1/model.glb\" alt=\"Feed Fridge (Public Aquarium and Marine Centre)\" 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/34181/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/34181/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34182","slug":"public-aquarium-and-marine-centre-feed-fridge-open-c6bb444a","title":"Feed Fridge Open (Public Aquarium and Marine Centre)","summary":"The feed fridge with its door already standing open on the shelves of feed boxes, for dressing a prep room mid shift.","description":"The feed fridge with its door already standing open on the shelves of feed boxes, for dressing a prep room mid shift. Overall 1.00 by 1.93 by 1.38 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The open door is baked into the geometry and carries no clip, so it cannot swing on from an already-open pose. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-feed-fridge-open-c6bb444a","cdnUrl":"https://cdn.3dassets.dev/assets/34182/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-feed-fridge-open-c6bb444a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34182/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34182/v1/poster.webp","blurhash":"U78Nwwxt00%M_4Ri9Ft8M~Rjt4WEo$j?aJkD","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":43096,"triangles":2316,"vertices":2080,"meshes":8,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.6167678631460092,2.980232727267662e-10,-0.39002122858873306],"max":[0.38001358843495125,1.9299999475479126,0.9899494064013089]},"sizeMeters":[0.997,1.93,1.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:21.304Z","updatedAt":"2026-09-11T06:52:21.398Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34182/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FeedFridgeOpenPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34182/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34182/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34182/v1/model.glb\" alt=\"Feed Fridge Open (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34182/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34182/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34188","slug":"public-aquarium-and-marine-centre-chemical-store-cabin-34860ff2","title":"Chemical Store Cabinet (Public Aquarium and Marine Centre)","summary":"A chemical store cabinet: a bunded steel cupboard on a plinth with a sump floor, three shelves of drums and carboys, hazard panels and two hinged doors.","description":"A chemical store cabinet: a bunded steel cupboard on a plinth with a sump floor, three shelves of drums and carboys, hazard panels and two hinged doors. Overall 1.08 by 1.88 by 0.56 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Both doors swing on their own hinge stiles as one open and close pair; the carcass, the sump and the shelves are fixed. The containers are solid geometry and carry no product names. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-chemical-store-cabin-34860ff2","cdnUrl":"https://cdn.3dassets.dev/assets/34188/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-chemical-store-cabin-34860ff2","thumbnailUrl":"https://cdn.3dassets.dev/assets/34188/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34188/v1/poster.webp","blurhash":"UC8||tt700M{~qf69Faz-;WBIUofx]a{M_f6","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":50584,"triangles":2064,"vertices":2511,"meshes":11,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5400512868811868,-7.450581263057643e-10,-0.26998718693308077],"max":[0.5400512868811868,1.8799999952316284,0.28999572292173986]},"sizeMeters":[1.08,1.88,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:24.349Z","updatedAt":"2026-09-11T06:52:24.456Z","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/34188/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 ChemicalStoreCabinetPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34188/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/34188/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34188/v1/model.glb\" alt=\"Chemical Store Cabinet (Public Aquarium and Marine Centre)\" 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/34188/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/34188/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34189","slug":"public-aquarium-and-marine-centre-chemical-store-cabin-e3d8605f","title":"Chemical Store Cabinet Open (Public Aquarium and Marine Centre)","summary":"The chemical store cabinet with both doors already standing open on its shelves of drums, for dressing a plant room without posing a clip.","description":"The chemical store cabinet with both doors already standing open on its shelves of drums, for dressing a plant room without posing a clip. Overall 1.38 by 1.88 by 0.98 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. The open doors are baked into the geometry and carry no clip. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-chemical-store-cabin-e3d8605f","cdnUrl":"https://cdn.3dassets.dev/assets/34189/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-chemical-store-cabin-e3d8605f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34189/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34189/v1/poster.webp","blurhash":"UC9aKo%200Rk~qoe9FfloNRPRjtRxvj[RhWB","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":53672,"triangles":2064,"vertices":2511,"meshes":11,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6886790192259654,-7.450581263057643e-10,-0.26998718693308077],"max":[0.6886790192259654,1.8799999952316284,0.7139053260103908]},"sizeMeters":[1.377,1.88,0.984],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:24.895Z","updatedAt":"2026-09-11T06:52:24.997Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34189/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChemicalStoreCabinetOpenPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34189/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34189/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34189/v1/model.glb\" alt=\"Chemical Store Cabinet Open (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34189/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34189/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34183","slug":"public-aquarium-and-marine-centre-net-rack-c23fde02","title":"Net Rack (Public Aquarium and Marine Centre)","summary":"A net rack: a freestanding steel frame with a hooked top rail carrying five nets of three sizes, each a hooped bag on a handle, and a drip tray under them.","description":"A net rack: a freestanding steel frame with a hooked top rail carrying five nets of three sizes, each a hooped bag on a handle, and a drip tray under them. Overall 1.44 by 1.87 by 0.36 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The nets are rigid geometry: a net bag is cloth and this library has no skinning, so it cannot hang or swing. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-net-rack-c23fde02","cdnUrl":"https://cdn.3dassets.dev/assets/34183/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-net-rack-c23fde02","thumbnailUrl":"https://cdn.3dassets.dev/assets/34183/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34183/v1/poster.webp","blurhash":"U27xH?.8008_yr?cQS00Iwt8?EM_Q8-=*J4n","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":77260,"triangles":3904,"vertices":3144,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7199923735198698,0,-0.1800052093354282],"max":[0.7199923735198698,1.8653481006622314,0.1800052093354282]},"sizeMeters":[1.44,1.865,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:21.663Z","updatedAt":"2026-09-11T06:52:21.768Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34183/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NetRackPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34183/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34183/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34183/v1/model.glb\" alt=\"Net Rack (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34183/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34183/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34184","slug":"public-aquarium-and-marine-centre-wetsuit-and-gear-rac-888a51ba","title":"Wetsuit And Gear Rack (Public Aquarium and Marine Centre)","summary":"A wetsuit and gear rack: a tubular frame with a drip tray, four hanging suits on shaped hangers, a shelf of masks and fins and a row of boots underneath.","description":"A wetsuit and gear rack: a tubular frame with a drip tray, four hanging suits on shaped hangers, a shelf of masks and fins and a row of boots underneath. Overall 1.78 by 2.00 by 0.56 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The suits and the boots are rigid geometry on fixed hangers, because neoprene needs skinning and this library has none. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-wetsuit-and-gear-rac-888a51ba","cdnUrl":"https://cdn.3dassets.dev/assets/34184/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-wetsuit-and-gear-rac-888a51ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/34184/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34184/v1/poster.webp","blurhash":"U38XIMxZ00bw~p-=9G9E9HRjV=oe4nbd-oRN","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":105376,"triangles":4348,"vertices":4624,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.8900112918485061,0,-0.2800122096487806],"max":[0.8900112918485061,2,0.2800122096487806]},"sizeMeters":[1.78,2,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:22.657Z","updatedAt":"2026-09-11T06:52:22.760Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34184/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetsuitAndGearRackPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34184/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34184/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34184/v1/model.glb\" alt=\"Wetsuit And Gear Rack (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34184/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34184/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34186","slug":"public-aquarium-and-marine-centre-hose-reel-27f87427","title":"Hose Reel (Public Aquarium and Marine Centre)","summary":"A wall mounted hose reel: a steel drum on a bracket wound with a coiled hose, with a crank handle, a guide roller and a trigger gun hung on the frame.","description":"A wall mounted hose reel: a steel drum on a bracket wound with a coiled hose, with a crank handle, a guide roller and a trigger gun hung on the frame. Overall 0.66 by 0.72 by 0.60 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Origin at the floor under the bracket so it can stand on a plinth or be lifted to a wall. The drum spins; the hose coil is part of the drum and turns with it, and the gun on the frame is fixed. The hose does not pay out, because a flexible hose needs skinning. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-hose-reel-27f87427","cdnUrl":"https://cdn.3dassets.dev/assets/34186/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-hose-reel-27f87427","thumbnailUrl":"https://cdn.3dassets.dev/assets/34186/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34186/v1/poster.webp","blurhash":"U68qNf.800D4~qxtDiM{00Md_NYP00R6%#pc","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":53856,"triangles":1520,"vertices":2361,"meshes":8,"materials":5,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.3300042641614177,5.9604645663569045e-9,-0.3100106791790074],"max":[0.3300042641614177,0.7200000202655792,0.2900106684501713]},"sizeMeters":[0.66,0.72,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:23.020Z","updatedAt":"2026-09-11T06:52:23.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34186/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 HoseReelPublicAquariumAndMarineCentre(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34186/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/34186/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34186/v1/model.glb\" alt=\"Hose Reel (Public Aquarium and Marine Centre)\" 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/34186/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/34186/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34187","slug":"public-aquarium-and-marine-centre-floor-drain-grate-e5ea2e95","title":"Floor Drain Grate (Public Aquarium and Marine Centre)","summary":"A 0.9 m floor drain: an open channel in a stainless kerb frame under a recessed slotted grate, with a dark sump and a silt bucket visible at one end.","description":"A 0.9 m floor drain: an open channel in a stainless kerb frame under a recessed slotted grate, with a dark sump and a silt bucket visible at one end. Overall 0.98 by 0.11 by 0.45 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static, and recessed: the grate sits 10 mm below the frame top so a floor tile meets it flush. Nothing lifts out. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-floor-drain-grate-e5ea2e95","cdnUrl":"https://cdn.3dassets.dev/assets/34187/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-floor-drain-grate-e5ea2e95","thumbnailUrl":"https://cdn.3dassets.dev/assets/34187/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34187/v1/poster.webp","blurhash":"U6ATl^xs00t7_4?bRhIA00tS_3IT0000t9-;","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"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":22472,"triangles":764,"vertices":939,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.49000000953674316,-0.00001457070189792714,-0.22001923094314713],"max":[0.49000000953674316,0.1079893198783935,0.23001388979030163]},"sizeMeters":[0.98,0.108,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:23.381Z","updatedAt":"2026-09-11T06:52:23.488Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34187/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FloorDrainGratePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34187/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34187/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34187/v1/model.glb\" alt=\"Floor Drain Grate (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34187/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34187/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34190","slug":"public-aquarium-and-marine-centre-spare-pump-crate-689322fe","title":"Spare Pump Crate (Public Aquarium and Marine Centre)","summary":"A spare pump crate: a timber shipping crate with a slatted lid, banding straps and a stencil panel, with a crated spare pump and its motor sitting on top of it.","description":"A spare pump crate: a timber shipping crate with a slatted lid, banding straps and a stencil panel, with a crated spare pump and its motor sitting on top of it. Overall 1.12 by 1.08 by 0.75 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The lid is nailed down in the geometry: a crate lid that lifts on a hinge would be wrong, because a real one is levered off. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-spare-pump-crate-689322fe","cdnUrl":"https://cdn.3dassets.dev/assets/34190/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-spare-pump-crate-689322fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/34190/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34190/v1/poster.webp","blurhash":"U9FYlS~V009a0Pxa^JJ600E2bYs%}ltQ9~IC","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":48420,"triangles":2020,"vertices":1986,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5600000023841858,0.00003473716060231613,-0.37051687562717056],"max":[0.5600000023841858,1.0800000429153442,0.38000948716534955]},"sizeMeters":[1.12,1.08,0.751],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:25.130Z","updatedAt":"2026-09-11T06:52:25.338Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34190/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SparePumpCratePublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34190/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34190/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34190/v1/model.glb\" alt=\"Spare Pump Crate (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34190/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34190/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34191","slug":"public-aquarium-and-marine-centre-dive-cylinder-rack-2c4abbb1","title":"Dive Cylinder Rack (Public Aquarium and Marine Centre)","summary":"A dive cylinder rack: a welded frame with six 12 litre cylinders standing in shaped seats under a retaining bar, with their valves, boots and a hung regulator set.","description":"A dive cylinder rack: a welded frame with six 12 litre cylinders standing in shaped seats under a retaining bar, with their valves, boots and a hung regulator set. Overall 1.70 by 1.43 by 0.47 m (X by Y by Z). Metre units, +Y up, the side a visitor uses toward +Z, resting on y=0. Static. The cylinder valves do not turn and the regulator hose is rigid geometry, because a hose needs skinning. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/public-aquarium-and-marine-centre-dive-cylinder-rack-2c4abbb1","cdnUrl":"https://cdn.3dassets.dev/assets/34191/v1/model.glb","downloadUrl":"https://3dassets.dev/download/public-aquarium-and-marine-centre-dive-cylinder-rack-2c4abbb1","thumbnailUrl":"https://cdn.3dassets.dev/assets/34191/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34191/v1/poster.webp","blurhash":"U59@Iy?G009I?Z%1IY9b00Io_4t9xUtRNMa1","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":117916,"triangles":6556,"vertices":5225,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,-0.000062594874109978,-0.22000336320697036],"max":[0.8500000238418579,1.430004709209038,0.25363121056627325]},"sizeMeters":[1.7,1.43,0.474],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:52:26.553Z","updatedAt":"2026-09-11T06:52:26.649Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34191/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DiveCylinderRackPublicAquariumAndMarineCentre(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34191/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34191/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34191/v1/model.glb\" alt=\"Dive Cylinder Rack (Public Aquarium and Marine Centre)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34191/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34191/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}