{"data":{"id":320,"slug":"sunken-city-and-underwater-ruins","title":"Sunken City and Underwater Ruins","summary":"A drowned stone city on the seabed: modular silt, paving, mosaic, terrace and platform on one 4 m grid, walls, arches, columns standing and fallen, statuary, amphorae, a broken ship, and the kelp, coral and shells that have taken all of it.","description":"A whole sunken city from one low poly kit. Six ground modules share a 4 m grid and a full width silt bed, so silted seabed, cracked paving, sand drift, mosaic, stepped terrace and temple platform lay into one continuous floor with no gaps and one deck height. The masonry runs on the same grid: coursed wall runs intact and collapsed, a doorway bay whose single leaf swings, a standing arch on nine cut voussoirs and its half fallen twin, columns standing, stacked as loose drums, gone over in three broken lengths, and a capital lying on its own. Dressing them are an obelisk, a stepped plinth, a statue base with the feet still on it, a fallen torso, a carved panel, a sundial, an octagonal fountain, a well head, a brazier of glowing coals and heaps of rubble. The ship that struck the ruin gives a hull section, a set of frames, a mast stump, a rudder, a stocked anchor, a chain run, crates, amphorae upright, toppled and in a spilled pile, a spill of blank coins and a bound chest whose lid lifts. The growth is kelp, a sea fan, three corals, anemones, a barrel sponge, a barnacle crust, sea grass, an urchin, a starfish and a clam, and there is a bubble column, a shaft of daylight, a shoal plate and a crystal cluster that turns on its plinth. Two assembled scenes ship with it: a drowned temple precinct and a wreck on open sand flats. Rigid node transform clips only, no skinning: the doorway leaf, the chest lid and the crystal are the only moving parts, which is what a ruin honestly has. Kelp, sea fans, sea grass, bubbles, light shafts and the water itself are modelled solid and never move, because flexible material, fluid and light each need a joint per element or a shader and none of that is reachable with one rigid node transform. This is geometry for an underwater scene, not an underwater simulation. There are no creatures in the pack: the urchin, starfish and clam are static props and the fish shoal is a flat decorative plate, so nothing here is rigged, skinned or animated as an animal. No city is named, no real site is reproduced, and every relief, mosaic and carved band is an invented abstract shape rather than a real script. Original AI assisted CC0 geometry.","url":"https://3dassets.dev/packs/sunken-city-and-underwater-ruins","coverUrl":"https://cdn.3dassets.dev/assets/37000/v1/poster.webp","assetCount":56,"aiGenerated":true,"aiGeneratedAssetCount":56,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":3354744,"totalTriangles":73626,"starterScene":{"id":"37000","slug":"sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","title":"Drowned Temple Precinct (Sunken City and Underwater Ruins)","summary":"A 36 by 36 m drowned precinct on a silted seabed: a raised temple platform with its colonnade, statue base and braziers, reached by a stepped terrace from a cracked paved plaza with a mosaic, a fountain, a sundial and a well. A precinct wall with one standing doorway closes...","description":"A 36 by 36 m drowned precinct on a silted seabed: a raised temple platform with its colonnade, statue base and braziers, reached by a stepped terrace from a cracked paved plaza with a mosaic, a fountain, a sundial and a well. A precinct wall with one standing doorway closes the south and west, two arches lead out to the east, and the wreck that struck the ruin lies broken across the north east corner. Kelp, coral, sea fans, grass and barnacles have taken the lot. Every model is static except the doorway leaf, the chest lid and the crystal cluster.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37000/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/37000/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37000/v1/poster.webp","blurhash":"U7Cj2@x@00W.9ZWCt7kC00RR_NV[~Vt6kCjE","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1190980,"triangles":27874,"vertices":53412,"meshes":138,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-18.307048339214123,-0.00007813453681593252,-18],"max":[18.954493576174958,6.0499997901916505,18]},"sizeMeters":[37.262,6.05,36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:20.913Z","updatedAt":"2026-09-12T04:43:21.011Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37000/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrownedTemplePrecinctSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37000/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37000/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37000/v1/model.glb\" alt=\"Drowned Temple Precinct (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37000/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37000/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"36946","slug":"sunken-city-and-underwater-ruins-silted-floor-module-51b7b580","title":"Silted Floor Module (Sunken City and Underwater Ruins)","summary":"Four metre silted seabed module with soft drifts and scattered pebbles, bed surface at Y 0.18 m.","description":"Four metre silted seabed module with soft drifts and scattered pebbles, bed surface at Y 0.18 m. Dimensions 4.00 by 0.27 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Tiles edge to edge with every other ground module in the pack on a 4 m grid; the full width silt slab means a mixed floor never shows background between two pieces. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-silted-floor-module-51b7b580","cdnUrl":"https://cdn.3dassets.dev/assets/36946/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-silted-floor-module-51b7b580","thumbnailUrl":"https://cdn.3dassets.dev/assets/36946/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36946/v1/poster.webp","blurhash":"U8D+}B-;00V[xuWBo0oy00IB~qWBD%tPS4Rj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15580,"triangles":288,"vertices":864,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.000029176346284409682,-2],"max":[2,0.27347502125121925,2]},"sizeMeters":[4,0.273,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:53.664Z","updatedAt":"2026-09-12T04:42:53.769Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36946/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SiltedFloorModuleSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36946/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36946/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36946/v1/model.glb\" alt=\"Silted Floor Module (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36946/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36946/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36948","slug":"sunken-city-and-underwater-ruins-cracked-paving-module-b07aa399","title":"Cracked Paving Module (Sunken City and Underwater Ruins)","summary":"Four metre paving module of sixteen worn slabs on a 1 m pitch, two lifted out and two tipped, with silt and weed in the open joints.","description":"Four metre paving module of sixteen worn slabs on a 1 m pitch, two lifted out and two tipped, with silt and weed in the open joints. Dimensions 4.05 by 0.33 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Paved surface at Y 0.28 m over the shared silt bed; place against the silt modules for the edge of a drowned plaza. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-cracked-paving-module-b07aa399","cdnUrl":"https://cdn.3dassets.dev/assets/36948/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-cracked-paving-module-b07aa399","thumbnailUrl":"https://cdn.3dassets.dev/assets/36948/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36948/v1/poster.webp","blurhash":"U8DS?z%200spx^RjNFs:00M{_NNGI8xuxuNG","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22336,"triangles":396,"vertices":1188,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.045825481414795,0.00013209607041844706,-1.9999468439349388],"max":[2,0.3341413182382814,1.9999468439349388]},"sizeMeters":[4.046,0.334,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:53.801Z","updatedAt":"2026-09-12T04:42:53.911Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36948/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CrackedPavingModuleSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36948/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36948/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36948/v1/model.glb\" alt=\"Cracked Paving Module (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36948/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36948/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36949","slug":"sunken-city-and-underwater-ruins-sand-drift-module-69506ac0","title":"Sand Drift Module (Sunken City and Underwater Ruins)","summary":"Four metre seabed module with a long diagonal sand drift about 0.3 m proud of the bed, for burying the foot of a wall or a wreck.","description":"Four metre seabed module with a long diagonal sand drift about 0.3 m proud of the bed, for burying the foot of a wall or a wreck. Dimensions 4.00 by 0.64 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-sand-drift-module-69506ac0","cdnUrl":"https://cdn.3dassets.dev/assets/36949/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-sand-drift-module-69506ac0","thumbnailUrl":"https://cdn.3dassets.dev/assets/36949/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36949/v1/poster.webp","blurhash":"U9DvZd%M00Rk%LbFWBof00M{~pay9GjbbHRj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28528,"triangles":558,"vertices":1674,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.00007813453681593252,-2],"max":[2,0.6400781202317012,2]},"sizeMeters":[4,0.64,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:53.833Z","updatedAt":"2026-09-12T04:42:53.947Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36949/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SandDriftModuleSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36949/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36949/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36949/v1/model.glb\" alt=\"Sand Drift Module (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36949/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36949/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36947","slug":"sunken-city-and-underwater-ruins-mosaic-floor-plate-f5fe523d","title":"Mosaic Floor Plate (Sunken City and Underwater Ruins)","summary":"Four metre mosaic module: a 3.3 m field of tesserae in concentric abstract bands with tiles missing, laid over the shared silt bed.","description":"Four metre mosaic module: a 3.3 m field of tesserae in concentric abstract bands with tiles missing, laid over the shared silt bed. Dimensions 4.06 by 0.29 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). The pattern is invented ornament in bands and blocks; it is not a figure, an emblem or a script. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-mosaic-floor-plate-f5fe523d","cdnUrl":"https://cdn.3dassets.dev/assets/36947/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-mosaic-floor-plate-f5fe523d","thumbnailUrl":"https://cdn.3dassets.dev/assets/36947/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36947/v1/poster.webp","blurhash":"U7DSwJ-;00M|t8WBj@of00IU~XoIITxtWCRj","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71252,"triangles":1416,"vertices":4248,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.0573081970214844,0.00009802718863888282,-1.999927162822123],"max":[2,0.29255040924027836,1.999927162822123]},"sizeMeters":[4.057,0.292,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:53.783Z","updatedAt":"2026-09-12T04:42:53.913Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36947/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MosaicFloorPlateSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36947/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36947/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36947/v1/model.glb\" alt=\"Mosaic Floor Plate (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36947/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36947/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36950","slug":"sunken-city-and-underwater-ruins-stone-step-module-66c6df94","title":"Stone Step Module (Sunken City and Underwater Ruins)","summary":"Four metre stepped terrace module: three 0.3 m steps climbing one bay to a landing at Y 1.16 m, on the shared silt bed.","description":"Four metre stepped terrace module: three 0.3 m steps climbing one bay to a landing at Y 1.16 m, on the shared silt bed. Dimensions 4.00 by 1.16 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Put the platform modules on the high side and the floor modules on the low side; the ports sit on the seabed datum so it drops into the same 4 m grid. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-stone-step-module-66c6df94","cdnUrl":"https://cdn.3dassets.dev/assets/36950/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-stone-step-module-66c6df94","thumbnailUrl":"https://cdn.3dassets.dev/assets/36950/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36950/v1/poster.webp","blurhash":"U8EV?1~p00RjE3oMxat7009F?cRQ$xR%oyRP","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10940,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.0000277351197258,0.000021062665151255766,-2.0005438327789307],"max":[2.0000277351197258,1.160071795254379,2]},"sizeMeters":[4,1.16,4.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:55.760Z","updatedAt":"2026-09-12T04:42:55.891Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36950/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneStepModuleSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36950/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36950/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36950/v1/model.glb\" alt=\"Stone Step Module (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36950/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36950/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36951","slug":"sunken-city-and-underwater-ruins-temple-platform-modul-60af0b49","title":"Temple Platform Module (Sunken City and Underwater Ruins)","summary":"Four metre temple platform module in two coursed courses with a slab deck at Y 1.16 m, matching the stepped terrace so a raised precinct can be any size.","description":"Four metre temple platform module in two coursed courses with a slab deck at Y 1.16 m, matching the stepped terrace so a raised precinct can be any size. Dimensions 4.01 by 1.16 by 4.01 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: north (seabed-4m) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (seabed-4m) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (seabed-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (seabed-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-temple-platform-modul-60af0b49","cdnUrl":"https://cdn.3dassets.dev/assets/36951/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-temple-platform-modul-60af0b49","thumbnailUrl":"https://cdn.3dassets.dev/assets/36951/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36951/v1/poster.webp","blurhash":"U5FPNh~q00Io_4RjMxxu009F?cNG4TxuozIU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23800,"triangles":444,"vertices":1332,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.004883338244,-0.00003027928096716037,-2.005340814590454],"max":[2.0069292080712704,1.1599175623796076,2.007941484451294]},"sizeMeters":[4.012,1.16,4.013],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:55.777Z","updatedAt":"2026-09-12T04:42:55.911Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36951/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TemplePlatformModuleSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36951/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36951/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36951/v1/model.glb\" alt=\"Temple Platform Module (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36951/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36951/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36952","slug":"sunken-city-and-underwater-ruins-wall-run-intact-20b4bacc","title":"Wall Run Intact (Sunken City and Underwater Ruins)","summary":"Four metre coursed wall run 2.44 m tall and 0.62 m thick with a weathered capping course, for the precincts of the city.","description":"Four metre coursed wall run 2.44 m tall and 0.62 m thick with a weathered capping course, for the precincts of the city. Dimensions 4.00 by 2.44 by 0.72 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: east (wall-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (wall-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Runs end to end on the 4 m grid; the origin is the centre of the run at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-wall-run-intact-20b4bacc","cdnUrl":"https://cdn.3dassets.dev/assets/36952/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-wall-run-intact-20b4bacc","thumbnailUrl":"https://cdn.3dassets.dev/assets/36952/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36952/v1/poster.webp","blurhash":"UEG+j$-;00xuX8~qxuD%00Io%goLxuS2NGM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12672,"triangles":228,"vertices":684,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.000026419317223691507,-0.3598742637409589],"max":[2,2.440060421880391,0.3598742637409589]},"sizeMeters":[4,2.44,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:55.758Z","updatedAt":"2026-09-12T04:42:55.893Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36952/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallRunIntactSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36952/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36952/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36952/v1/model.glb\" alt=\"Wall Run Intact (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36952/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36952/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36953","slug":"sunken-city-and-underwater-ruins-wall-run-collapsed-22d84ec1","title":"Wall Run Collapsed (Sunken City and Underwater Ruins)","summary":"Four metre wall run brought down to two courses with a 2.4 m stub at one end and its fallen blocks spread on the seabed either side.","description":"Four metre wall run brought down to two courses with a 2.4 m stub at one end and its fallen blocks spread on the seabed either side. Dimensions 4.09 by 2.52 by 3.61 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Connectors: east (wall-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (wall-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-wall-run-collapsed-22d84ec1","cdnUrl":"https://cdn.3dassets.dev/assets/36953/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-wall-run-collapsed-22d84ec1","thumbnailUrl":"https://cdn.3dassets.dev/assets/36953/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36953/v1/poster.webp","blurhash":"U9Csp#~q0000Rj-;V@4n00D%~qx]_3D%Rj?v","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17968,"triangles":336,"vertices":1008,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.9900000095367432,-0.00011278686042626163,-1.7762452787692808],"max":[2.0971992015838623,2.521715894312819,1.8356907331934782]},"sizeMeters":[4.087,2.522,3.612],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:55.850Z","updatedAt":"2026-09-12T04:42:55.950Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36953/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallRunCollapsedSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36953/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36953/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36953/v1/model.glb\" alt=\"Wall Run Collapsed (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36953/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36953/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36955","slug":"sunken-city-and-underwater-ruins-doorway-frame-1292bfb7","title":"Doorway Frame (Sunken City and Underwater Ruins)","summary":"Four metre wall bay with a 1.72 by 2.3 m doorway, a carved lintel band and one timber and bronze leaf that swings on its jamb.","description":"Four metre wall bay with a 1.72 by 2.3 m doorway, a carved lintel band and one timber and bronze leaf that swings on its jamb. Dimensions 3.98 by 3.02 by 0.87 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Animated pivot nodes: leaf-door at (-0.86, 0.00, 0.31) m. Connectors: east (wall-4m) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (wall-4m) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). The leaf is the only moving part; the wall, jambs, lintel and carved band are solid. The carved band is invented ornament and not a script. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-doorway-frame-1292bfb7","cdnUrl":"https://cdn.3dassets.dev/assets/36955/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-doorway-frame-1292bfb7","thumbnailUrl":"https://cdn.3dassets.dev/assets/36955/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36955/v1/poster.webp","blurhash":"U8Eff]8_00My%#_NDh9F00x]Z~%1V@M{tRMx","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":32884,"triangles":600,"vertices":1800,"meshes":4,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.9900000095367432,-0.00007175863340314059,-0.40999999741055315],"max":[1.9900000095367432,3.0199999809265137,0.4606427251364204]},"sizeMeters":[3.98,3.02,0.871],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:58.554Z","updatedAt":"2026-09-12T04:42:58.665Z","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/36955/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 DoorwayFrameSunkenCityAndUnderwaterRuins(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36955/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/36955/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36955/v1/model.glb\" alt=\"Doorway Frame (Sunken City and Underwater Ruins)\" 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/36955/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/36955/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36957","slug":"sunken-city-and-underwater-ruins-arch-section-intact-72b72cbc","title":"Arch Section Intact (Sunken City and Underwater Ruins)","summary":"Standing arch 4.6 m wide and 4.6 m tall on two piers, with nine cut voussoirs on a true semicircle and weathered impost blocks.","description":"Standing arch 4.6 m wide and 4.6 m tall on two piers, with nine cut voussoirs on a true semicircle and weathered impost blocks. Dimensions 4.74 by 4.57 by 0.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-arch-section-intact-72b72cbc","cdnUrl":"https://cdn.3dassets.dev/assets/36957/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-arch-section-intact-72b72cbc","thumbnailUrl":"https://cdn.3dassets.dev/assets/36957/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36957/v1/poster.webp","blurhash":"U5D9;n%M00_4.8_44T00009FWBRkITxb-;E0","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11164,"triangles":180,"vertices":540,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.369999885559082,0.0000885526636325018,-0.429922767411212],"max":[2.369999885559082,4.570180874612001,0.550009810629299]},"sizeMeters":[4.74,4.57,0.98],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:57.558Z","updatedAt":"2026-09-12T04:42:57.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36957/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchSectionIntactSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36957/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36957/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36957/v1/model.glb\" alt=\"Arch Section Intact (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36957/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36957/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36956","slug":"sunken-city-and-underwater-ruins-arch-section-broken-3f9f35b5","title":"Arch Section Broken (Sunken City and Underwater Ruins)","summary":"Half fallen arch: one pier standing with four voussoirs still springing from it, the other snapped at 1.35 m, the rest heaped on the seabed.","description":"Half fallen arch: one pier standing with four voussoirs still springing from it, the other snapped at 1.35 m, the rest heaped on the seabed. Dimensions 4.80 by 4.70 by 2.23 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-arch-section-broken-3f9f35b5","cdnUrl":"https://cdn.3dassets.dev/assets/36956/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-arch-section-broken-3f9f35b5","thumbnailUrl":"https://cdn.3dassets.dev/assets/36956/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36956/v1/poster.webp","blurhash":"U8Bpwu0000_Ni_t8NGj[00oz-=%gD%of%MM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11656,"triangles":204,"vertices":612,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.369999885559082,-0.00010690358530074384,-0.4301383390089968],"max":[2.425370693206787,4.69764747425846,1.802853156532953]},"sizeMeters":[4.795,4.698,2.233],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:57.545Z","updatedAt":"2026-09-12T04:42:57.669Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36956/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchSectionBrokenSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36956/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36956/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36956/v1/model.glb\" alt=\"Arch Section Broken (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36956/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36956/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36954","slug":"sunken-city-and-underwater-ruins-standing-column-96caec95","title":"Standing Column (Sunken City and Underwater Ruins)","summary":"Standing column 3.9 m tall on a 0.84 m base, a tapered shaft under a block capital and abacus, with coral and weed taken hold of one side.","description":"Standing column 3.9 m tall on a 0.84 m base, a tapered shaft under a block capital and abacus, with coral and weed taken hold of one side. Dimensions 1.11 by 3.90 by 1.02 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-standing-column-96caec95","cdnUrl":"https://cdn.3dassets.dev/assets/36954/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-standing-column-96caec95","thumbnailUrl":"https://cdn.3dassets.dev/assets/36954/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36954/v1/poster.webp","blurhash":"U3AK8Z_30000?^RjMJ%3IoR*-:xu.7odIBRl","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11476,"triangles":172,"vertices":516,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5099999904632568,0,-0.5099999904632568],"max":[0.599807620048523,3.8999777630948786,0.5099999904632568]},"sizeMeters":[1.11,3.9,1.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:57.474Z","updatedAt":"2026-09-12T04:42:57.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36954/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandingColumnSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36954/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36954/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36954/v1/model.glb\" alt=\"Standing Column (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36954/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36954/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36958","slug":"sunken-city-and-underwater-ruins-toppled-column-88139822","title":"Toppled Column (Sunken City and Underwater Ruins)","summary":"Column gone over and broken into three lengths of shaft with its capital thrown clear, about 4.7 m end to end on the seabed.","description":"Column gone over and broken into three lengths of shaft with its capital thrown clear, about 4.7 m end to end on the seabed. Dimensions 5.33 by 0.85 by 1.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-toppled-column-88139822","cdnUrl":"https://cdn.3dassets.dev/assets/36958/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-toppled-column-88139822","thumbnailUrl":"https://cdn.3dassets.dev/assets/36958/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36958/v1/poster.webp","blurhash":"U6ATs8_34mWB~q_3RjIA00M{?cM{0000xu.8","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11612,"triangles":204,"vertices":612,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.8227773904800415,-0.00004408689556906209,-0.26426224985033764],"max":[3.509066581726074,0.8459865467956387,1.7171438840857198]},"sizeMeters":[5.332,0.846,1.981],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:00.293Z","updatedAt":"2026-09-12T04:43:00.485Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36958/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ToppledColumnSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36958/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36958/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36958/v1/model.glb\" alt=\"Toppled Column (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36958/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36958/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36959","slug":"sunken-city-and-underwater-ruins-column-drum-stack-7b54892a","title":"Column Drum Stack (Sunken City and Underwater Ruins)","summary":"Stack of four column drums standing 1.75 m and settled out of true, the joints open and coral started on one face.","description":"Stack of four column drums standing 1.75 m and settled out of true, the joints open and coral started on one face. Dimensions 0.97 by 1.72 by 0.83 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-column-drum-stack-7b54892a","cdnUrl":"https://cdn.3dassets.dev/assets/36959/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-column-drum-stack-7b54892a","thumbnailUrl":"https://cdn.3dassets.dev/assets/36959/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36959/v1/poster.webp","blurhash":"U5C6=P~q0000?^IU8x-;00RP.8tl~Wt74.Io","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11424,"triangles":184,"vertices":552,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.36955222514053176,0,-0.36403855176452504],"max":[0.6051666140556335,1.7200000286102295,0.4649907012136414]},"sizeMeters":[0.975,1.72,0.829],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:42:59.447Z","updatedAt":"2026-09-12T04:42:59.552Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36959/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ColumnDrumStackSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36959/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36959/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36959/v1/model.glb\" alt=\"Column Drum Stack (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36959/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36959/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36960","slug":"sunken-city-and-underwater-ruins-broken-column-capital-5b8e1dc4","title":"Broken Column Capital (Sunken City and Underwater Ruins)","summary":"Column capital and abacus tipped on the seabed with a short length of shaft still attached, 1.6 m across.","description":"Column capital and abacus tipped on the seabed with a short length of shaft still attached, 1.6 m across. Dimensions 2.07 by 0.94 by 1.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-broken-column-capital-5b8e1dc4","cdnUrl":"https://cdn.3dassets.dev/assets/36960/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-broken-column-capital-5b8e1dc4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36960/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36960/v1/poster.webp","blurhash":"UBA13CWA00RQMyoft7f500of~qt7-;RPNGoz","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":7252,"triangles":112,"vertices":336,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6382465958595276,0.000045340510382685384,-0.6691991616560373],"max":[1.4309263229370117,0.9363354901319396,1.3094085302250167]},"sizeMeters":[2.069,0.936,1.979],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:00.497Z","updatedAt":"2026-09-12T04:43:00.621Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36960/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrokenColumnCapitalSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36960/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36960/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36960/v1/model.glb\" alt=\"Broken Column Capital (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36960/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36960/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36961","slug":"sunken-city-and-underwater-ruins-broken-pediment-db0a6ed7","title":"Broken Pediment (Sunken City and Underwater Ruins)","summary":"Broken pediment fragment 3.7 m wide leaning on the seabed, one raking cornice left and an abstract carved band along the tympanum.","description":"Broken pediment fragment 3.7 m wide leaning on the seabed, one raking cornice left and an abstract carved band along the tympanum. Dimensions 4.14 by 1.32 by 0.73 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The carved band is invented ornament rather than a figure scene or an inscription. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-broken-pediment-db0a6ed7","cdnUrl":"https://cdn.3dassets.dev/assets/36961/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-broken-pediment-db0a6ed7","thumbnailUrl":"https://cdn.3dassets.dev/assets/36961/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36961/v1/poster.webp","blurhash":"U9BN7wD%00%MIo_Nj[9F00tR_NNG%200bH?v","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24108,"triangles":464,"vertices":1392,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.777009129524231,9.670352013602113e-7,-0.2662033358508151],"max":[2.3607096672058105,1.3211606072347934,0.46620332392988617]},"sizeMeters":[4.138,1.321,0.732],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:00.246Z","updatedAt":"2026-09-12T04:43:00.440Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36961/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrokenPedimentSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36961/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36961/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36961/v1/model.glb\" alt=\"Broken Pediment (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36961/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36961/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36962","slug":"sunken-city-and-underwater-ruins-stepped-plinth-33094b3c","title":"Stepped Plinth (Sunken City and Underwater Ruins)","summary":"Three tier stepped plinth 2.2 m square and 0.9 m tall in coursed blocks, for standing a statue, an obelisk or a brazier on.","description":"Three tier stepped plinth 2.2 m square and 0.9 m tall in coursed blocks, for standing a statue, an obelisk or a brazier on. Dimensions 2.18 by 0.90 by 2.21 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-stepped-plinth-33094b3c","cdnUrl":"https://cdn.3dassets.dev/assets/36962/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-stepped-plinth-33094b3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/36962/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36962/v1/poster.webp","blurhash":"U6Dcp_~q00Io9FM{M{js00Di_3ae-;%M~qt7","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6984,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0900320880933376,0.00003593475391450163,-1.1020121574401855],"max":[1.0900320880933376,0.9030079314036172,1.107177972793579]},"sizeMeters":[2.18,0.903,2.209],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:02.089Z","updatedAt":"2026-09-12T04:43:02.200Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36962/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteppedPlinthSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36962/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36962/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36962/v1/model.glb\" alt=\"Stepped Plinth (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36962/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36962/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36963","slug":"sunken-city-and-underwater-ruins-rubble-pile-2bfa3df8","title":"Rubble Pile (Sunken City and Underwater Ruins)","summary":"Heap of broken masonry about 2.4 m across and 0.8 m high in two stones with a patch of weed, for the foot of any collapse.","description":"Heap of broken masonry about 2.4 m across and 0.8 m high in two stones with a patch of weed, for the foot of any collapse. Dimensions 2.71 by 0.75 by 2.32 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-rubble-pile-2bfa3df8","cdnUrl":"https://cdn.3dassets.dev/assets/36963/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-rubble-pile-2bfa3df8","thumbnailUrl":"https://cdn.3dassets.dev/assets/36963/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36963/v1/poster.webp","blurhash":"UA9aT@WB00xv%Mj[Rjt700s:~qM{8{WBxuM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16944,"triangles":300,"vertices":900,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.3272035121917725,0.0000024603664826039484,-1.1765121107424577],"max":[1.3847259283065796,0.7541419697940399,1.139172005777804]},"sizeMeters":[2.712,0.754,2.316],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:02.020Z","updatedAt":"2026-09-12T04:43:02.127Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36963/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RubblePileSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36963/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36963/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36963/v1/model.glb\" alt=\"Rubble Pile (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36963/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36963/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36964","slug":"sunken-city-and-underwater-ruins-obelisk-1abd1d32","title":"Obelisk (Sunken City and Underwater Ruins)","summary":"Square obelisk 4.97 m tall on its own base, tapering from 0.72 to 0.46 m under a pyramidion, with abstract carved bands on all four faces.","description":"Square obelisk 4.97 m tall on its own base, tapering from 0.72 to 0.46 m under a pyramidion, with abstract carved bands on all four faces. Dimensions 1.10 by 4.97 by 1.10 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The bands are invented ornament, not a script, and name nothing. A strong vertical for the skyline of a ruin field. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-obelisk-1abd1d32","cdnUrl":"https://cdn.3dassets.dev/assets/36964/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-obelisk-1abd1d32","thumbnailUrl":"https://cdn.3dassets.dev/assets/36964/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36964/v1/poster.webp","blurhash":"U49@eb?b0000D%ayx]kC00V@~qxuMxWBtRt7","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":68524,"triangles":1392,"vertices":4176,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.549980750121614,0,-0.549980750121614],"max":[0.549980750121614,4.96999979019165,0.549980750121614]},"sizeMeters":[1.1,4.97,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:02.069Z","updatedAt":"2026-09-12T04:43:02.162Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36964/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ObeliskSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36964/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36964/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36964/v1/model.glb\" alt=\"Obelisk (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36964/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36964/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36965","slug":"sunken-city-and-underwater-ruins-fallen-statue-torso-d1acb431","title":"Fallen Statue Torso (Sunken City and Underwater Ruins)","summary":"Draped statue torso 2.1 m long fallen on its side and broken at the neck, arms and waist, with weed growing over one shoulder.","description":"Draped statue torso 2.1 m long fallen on its side and broken at the neck, arms and waist, with weed growing over one shoulder. Dimensions 1.55 by 1.17 by 1.14 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Abstract carved drapery; the figure has no head or face and depicts no real person, deity or story. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-fallen-statue-torso-d1acb431","cdnUrl":"https://cdn.3dassets.dev/assets/36965/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-fallen-statue-torso-d1acb431","thumbnailUrl":"https://cdn.3dassets.dev/assets/36965/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36965/v1/poster.webp","blurhash":"UAD]xX_300IA-;xuWBRj00Rk~qNGD%jbofM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18836,"triangles":338,"vertices":1014,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5505315065383911,-0.000012234335841854183,-0.20017840931638908],"max":[0,1.16949935305685,0.9425974286578579]},"sizeMeters":[1.551,1.17,1.143],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:03.239Z","updatedAt":"2026-09-12T04:43:03.338Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36965/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FallenStatueTorsoSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36965/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36965/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36965/v1/model.glb\" alt=\"Fallen Statue Torso (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36965/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36965/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36966","slug":"sunken-city-and-underwater-ruins-statue-base-8c3948c9","title":"Statue Base (Sunken City and Underwater Ruins)","summary":"Moulded statue base 1.7 m square and 1.2 m tall with an abstract carved panel and the broken feet of the figure still on the top.","description":"Moulded statue base 1.7 m square and 1.2 m tall with an abstract carved panel and the broken feet of the figure still on the top. Dimensions 1.70 by 1.40 by 1.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-statue-base-8c3948c9","cdnUrl":"https://cdn.3dassets.dev/assets/36966/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-statue-base-8c3948c9","thumbnailUrl":"https://cdn.3dassets.dev/assets/36966/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36966/v1/poster.webp","blurhash":"U6EMj_~q00IUDOM{XSxv00IUjZM{VYkV%zoe","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17872,"triangles":336,"vertices":1008,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.000043322961280289896,-0.8500000238418579],"max":[0.8500000238418579,1.398677464281823,0.8500000238418579]},"sizeMeters":[1.7,1.399,1.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:04.665Z","updatedAt":"2026-09-12T04:43:04.779Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36966/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StatueBaseSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36966/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36966/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36966/v1/model.glb\" alt=\"Statue Base (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36966/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36966/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36968","slug":"sunken-city-and-underwater-ruins-weathered-relief-pane-563dd17d","title":"Weathered Relief Panel (Sunken City and Underwater Ruins)","summary":"Carved wall panel 2.5 m wide and 2 m tall standing on its own footing, the face worn and one top corner gone, with coral at its foot.","description":"Carved wall panel 2.5 m wide and 2 m tall standing on its own footing, the face worn and one top corner gone, with coral at its foot. Dimensions 2.50 by 2.15 by 1.02 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The carving is invented abstract ornament laid out from a seeded sequence. It is not a script, a portrait or an emblem of anything real. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-weathered-relief-pane-563dd17d","cdnUrl":"https://cdn.3dassets.dev/assets/36968/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-weathered-relief-pane-563dd17d","thumbnailUrl":"https://cdn.3dassets.dev/assets/36968/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36968/v1/poster.webp","blurhash":"U5E{wut900M_?G?cD%4T00Rj_NM{E2?aoz9Z","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44736,"triangles":864,"vertices":2592,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.25,-0.00004517139104831536,-0.4500335703604236],"max":[1.25,2.150495811306852,0.5699886840029995]},"sizeMeters":[2.5,2.151,1.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:03.808Z","updatedAt":"2026-09-12T04:43:03.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36968/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeatheredReliefPanelSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36968/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36968/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36968/v1/model.glb\" alt=\"Weathered Relief Panel (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36968/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36968/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36967","slug":"sunken-city-and-underwater-ruins-sundial-plinth-4652e28b","title":"Sundial Plinth (Sunken City and Underwater Ruins)","summary":"Turned stone sundial plinth 1.46 m tall with a dished dial, twelve cut hour marks and a fixed bronze gnomon.","description":"Turned stone sundial plinth 1.46 m tall with a dished dial, twelve cut hour marks and a fixed bronze gnomon. Dimensions 1.24 by 1.46 by 1.24 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The gnomon is a solid cut plate and deliberately does not move: a sundial has no mechanism. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-sundial-plinth-4652e28b","cdnUrl":"https://cdn.3dassets.dev/assets/36967/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-sundial-plinth-4652e28b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36967/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36967/v1/poster.webp","blurhash":"U8Css,-;009G00M{_4t800jF_3kW%Nt7jERi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17840,"triangles":320,"vertices":960,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6200000047683716,-0.000028395673144276934,-0.6200000047683716],"max":[0.6200000047683716,1.4599871970896179,0.6200000047683716]},"sizeMeters":[1.24,1.46,1.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:04.796Z","updatedAt":"2026-09-12T04:43:04.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36967/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SundialPlinthSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36967/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36967/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36967/v1/model.glb\" alt=\"Sundial Plinth (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36967/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36967/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36969","slug":"sunken-city-and-underwater-ruins-fountain-basin-0149d19f","title":"Fountain Basin (Sunken City and Underwater Ruins)","summary":"Octagonal fountain basin 3.2 m across with a silted floor, a moulded rim and a turned centre pedestal, weed taken root in the bowl.","description":"Octagonal fountain basin 3.2 m across with a silted floor, a moulded rim and a turned centre pedestal, weed taken root in the bowl. Dimensions 3.12 by 1.08 by 3.12 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. There is no water surface: fill the basin with your own volume or leave it silted as modelled. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-fountain-basin-0149d19f","cdnUrl":"https://cdn.3dassets.dev/assets/36969/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-fountain-basin-0149d19f","thumbnailUrl":"https://cdn.3dassets.dev/assets/36969/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36969/v1/poster.webp","blurhash":"UBBgJEx]00RjIUV@xtt700RP~qjs-;tRRjRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19872,"triangles":348,"vertices":1044,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.559999942779541,-0.00006651585308803387,-1.559999942779541],"max":[1.559999942779541,1.0800665587684324,1.559999942779541]},"sizeMeters":[3.12,1.08,3.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:04.854Z","updatedAt":"2026-09-12T04:43:04.945Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36969/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FountainBasinSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36969/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36969/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36969/v1/model.glb\" alt=\"Fountain Basin (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36969/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36969/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36970","slug":"sunken-city-and-underwater-ruins-well-mouth-8e8bcd97","title":"Well Mouth (Sunken City and Underwater Ruins)","summary":"Round well head 1.72 m across and 1 m tall, the kerb worn into hollows and the shaft below it dark and open.","description":"Round well head 1.72 m across and 1 m tall, the kerb worn into hollows and the shaft below it dark and open. Dimensions 1.72 by 1.10 by 1.72 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-well-mouth-8e8bcd97","cdnUrl":"https://cdn.3dassets.dev/assets/36970/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-well-mouth-8e8bcd97","thumbnailUrl":"https://cdn.3dassets.dev/assets/36970/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36970/v1/poster.webp","blurhash":"U7DvvH?b00D%4oM{-;xu00M{_Nt7^+xuD%IU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13876,"triangles":252,"vertices":756,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8600000143051147,-0.00001129046253944832,-0.8600000143051147],"max":[0.8600000143051147,1.1021914352564322,0.8600000143051147]},"sizeMeters":[1.72,1.102,1.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:05.430Z","updatedAt":"2026-09-12T04:43:05.559Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36970/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WellMouthSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36970/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36970/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36970/v1/model.glb\" alt=\"Well Mouth (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36970/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36970/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36973","slug":"sunken-city-and-underwater-ruins-stone-brazier-bad5f410","title":"Stone Brazier (Sunken City and Underwater Ruins)","summary":"Three legged stone brazier 1.1 m tall, the bowl full of coals still glowing under the water in the pack emissive blue.","description":"Three legged stone brazier 1.1 m tall, the bowl full of coals still glowing under the water in the pack emissive blue. Dimensions 1.00 by 1.16 by 1.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The glow is an emissive material on the coals, not a light source: add your own point light if you want it to cast. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-stone-brazier-bad5f410","cdnUrl":"https://cdn.3dassets.dev/assets/36973/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-stone-brazier-bad5f410","thumbnailUrl":"https://cdn.3dassets.dev/assets/36973/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36973/v1/poster.webp","blurhash":"UGBNA+t700Ri~qof9FaeMxkBtRayD%V@xuof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14308,"triangles":246,"vertices":738,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0,-0.5],"max":[0.5,1.1564411032953672,0.5]},"sizeMeters":[1,1.156,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:06.571Z","updatedAt":"2026-09-12T04:43:06.747Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36973/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneBrazierSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36973/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36973/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36973/v1/model.glb\" alt=\"Stone Brazier (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36973/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36973/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36971","slug":"sunken-city-and-underwater-ruins-buried-treasure-chest-2d37c485","title":"Buried Treasure Chest (Sunken City and Underwater Ruins)","summary":"Bound timber chest 1.2 m long sunk to a third of its depth in the silt, with a coopered lid that lifts on its hinge and coins spilled at the front.","description":"Bound timber chest 1.2 m long sunk to a third of its depth in the silt, with a coopered lid that lifts on its hinge and coins spilled at the front. Dimensions 1.90 by 1.07 by 1.44 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Animated pivot nodes: lid-chest at (0.00, 0.88, -0.34) m. The lid is the only moving part; the silt mound is modelled with the chest so it always sits buried. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-buried-treasure-chest-2d37c485","cdnUrl":"https://cdn.3dassets.dev/assets/36971/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-buried-treasure-chest-2d37c485","thumbnailUrl":"https://cdn.3dassets.dev/assets/36971/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36971/v1/poster.webp","blurhash":"U7BM#z-;00E19Fxu%MIV00IB~p%L~pRjIUtQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17892,"triangles":270,"vertices":810,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1,-0.00005106299285190241,-0.7019202890720491],"max":[0.9009688496589661,1.065762797798115,0.73952508737944]},"sizeMeters":[1.901,1.066,1.441],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:06.384Z","updatedAt":"2026-09-12T04:43:06.482Z","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/36971/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 BuriedTreasureChestSunkenCityAndUnderwaterRuins(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36971/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/36971/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36971/v1/model.glb\" alt=\"Buried Treasure Chest (Sunken City and Underwater Ruins)\" 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/36971/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/36971/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36972","slug":"sunken-city-and-underwater-ruins-scattered-coins-71d33cdd","title":"Scattered Coins (Sunken City and Underwater Ruins)","summary":"Spill of about fifty struck coins over a low silt patch 1.4 m across, a few of them stacked, faces left blank.","description":"Spill of about fifty struck coins over a low silt patch 1.4 m across, a few of them stacked, faces left blank. Dimensions 1.24 by 0.17 by 1.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The coins are plain blanks: no head, mark, date or inscription of any real currency. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-scattered-coins-71d33cdd","cdnUrl":"https://cdn.3dassets.dev/assets/36972/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-scattered-coins-71d33cdd","thumbnailUrl":"https://cdn.3dassets.dev/assets/36972/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36972/v1/poster.webp","blurhash":"UEAw9lt700WBxaj[Rkj[00WB~pj]IVayxtay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71692,"triangles":1456,"vertices":4368,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6509158289144753,0.000024410641876984607,-0.6548848748207092],"max":[0.5860551273535012,0.16999916824445874,0.641926109790802]},"sizeMeters":[1.237,0.17,1.297],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:07.548Z","updatedAt":"2026-09-12T04:43:08.002Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36972/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScatteredCoinsSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36972/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36972/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36972/v1/model.glb\" alt=\"Scattered Coins (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36972/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36972/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36974","slug":"sunken-city-and-underwater-ruins-amphora-upright-b7c16a7b","title":"Amphora Upright (Sunken City and Underwater Ruins)","summary":"Storage amphora 1 m tall standing in a silt cushion, two handles at the shoulder and a spot of coral on the belly.","description":"Storage amphora 1 m tall standing in a silt cushion, two handles at the shoulder and a spot of coral on the belly. Dimensions 0.48 by 1.03 by 0.48 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-amphora-upright-b7c16a7b","cdnUrl":"https://cdn.3dassets.dev/assets/36974/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-amphora-upright-b7c16a7b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36974/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36974/v1/poster.webp","blurhash":"U7CZU=-:004o~pt69GM|00IV~p-;4oRj-;tQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16592,"triangles":308,"vertices":924,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.24062177538871765,0,-0.23998336074633636],"max":[0.23800488679811654,1.0299999713897705,0.23998336074633636]},"sizeMeters":[0.479,1.03,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:08.148Z","updatedAt":"2026-09-12T04:43:08.353Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36974/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmphoraUprightSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36974/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36974/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36974/v1/model.glb\" alt=\"Amphora Upright (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36974/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36974/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36975","slug":"sunken-city-and-underwater-ruins-amphora-toppled-55982199","title":"Amphora Toppled (Sunken City and Underwater Ruins)","summary":"Storage amphora gone over on its side in the silt with a shard broken off the neck, 1.1 m end to end.","description":"Storage amphora gone over on its side in the silt with a shard broken off the neck, 1.1 m end to end. Dimensions 1.31 by 0.52 by 0.89 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-amphora-toppled-55982199","cdnUrl":"https://cdn.3dassets.dev/assets/36975/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-amphora-toppled-55982199","thumbnailUrl":"https://cdn.3dassets.dev/assets/36975/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36975/v1/poster.webp","blurhash":"UACP-J%M00j@xu?HayIU00M|~pWBD*01kC?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15480,"triangles":300,"vertices":900,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.8424084186553955,0.000042609679206717654,-0.3208712413927516],"max":[0.46815717220306396,0.5179573969965134,0.568251140417715]},"sizeMeters":[1.311,0.518,0.889],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:08.003Z","updatedAt":"2026-09-12T04:43:08.113Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36975/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmphoraToppledSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36975/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36975/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36975/v1/model.glb\" alt=\"Amphora Toppled (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36975/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36975/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36976","slug":"sunken-city-and-underwater-ruins-amphora-pile-8443ecca","title":"Amphora Pile (Sunken City and Underwater Ruins)","summary":"Cargo of five storage amphorae spilled into a heap 2.2 m across, four on their sides and one still upright on top.","description":"Cargo of five storage amphorae spilled into a heap 2.2 m across, four on their sides and one still upright on top. Dimensions 2.79 by 1.34 by 2.08 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-amphora-pile-8443ecca","cdnUrl":"https://cdn.3dassets.dev/assets/36976/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-amphora-pile-8443ecca","thumbnailUrl":"https://cdn.3dassets.dev/assets/36976/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36976/v1/poster.webp","blurhash":"UDA^H}NG00t7ofWUWBt700t6~pkCa|jufjR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64816,"triangles":1328,"vertices":3984,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.370711326599121,0.000030746424889760426,-0.738715024550455],"max":[1.4203002452850342,1.335699329411292,1.336720259745615]},"sizeMeters":[2.791,1.336,2.075],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:08.334Z","updatedAt":"2026-09-12T04:43:08.429Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36976/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmphoraPileSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36976/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36976/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36976/v1/model.glb\" alt=\"Amphora Pile (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36976/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36976/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36977","slug":"sunken-city-and-underwater-ruins-chain-run-990878da","title":"Chain Run (Sunken City and Underwater Ruins)","summary":"Run of eighteen heavy chain links lying interlocked in a slack curve about 2.9 m long, half sanded over.","description":"Run of eighteen heavy chain links lying interlocked in a slack curve about 2.9 m long, half sanded over. Dimensions 3.20 by 0.28 by 1.96 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Modelled solid in one piece: a chain needs a joint per link, which a single rigid node transform cannot give, so it does not move. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-chain-run-990878da","cdnUrl":"https://cdn.3dassets.dev/assets/36977/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-chain-run-990878da","thumbnailUrl":"https://cdn.3dassets.dev/assets/36977/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36977/v1/poster.webp","blurhash":"U7AAQ~-;00ads*%LozIU00IB~oR.N#9GMw?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61688,"triangles":1248,"vertices":3744,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.6343369483947754,0.00004780499109011127,-1.1180151650060717],"max":[1.565690279006958,0.27995219620100276,0.8408525960599096]},"sizeMeters":[3.2,0.28,1.959],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:09.515Z","updatedAt":"2026-09-12T04:43:09.616Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36977/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChainRunSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36977/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36977/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36977/v1/model.glb\" alt=\"Chain Run (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36977/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36977/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36978","slug":"sunken-city-and-underwater-ruins-ships-anchor-b15ac3ba","title":"Ships Anchor (Sunken City and Underwater Ruins)","summary":"Stocked iron anchor about 2.3 m long fallen on its side in the silt, one fluke buried and coral started on the shank.","description":"Stocked iron anchor about 2.3 m long fallen on its side in the silt, one fluke buried and coral started on the shank. Dimensions 1.95 by 2.52 by 1.12 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-ships-anchor-b15ac3ba","cdnUrl":"https://cdn.3dassets.dev/assets/36978/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-ships-anchor-b15ac3ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/36978/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36978/v1/poster.webp","blurhash":"U5AJ$R-;000KR3MxtT-;02xt~TIVXVtQROD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17124,"triangles":304,"vertices":912,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5920882906571359,0.000021541741326375208,-0.5893906868309139],"max":[1.3627075638428658,2.5198557376861572,0.5265833056778072]},"sizeMeters":[1.955,2.52,1.116],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:09.684Z","updatedAt":"2026-09-12T04:43:09.865Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36978/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShipsAnchorSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36978/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36978/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36978/v1/model.glb\" alt=\"Ships Anchor (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36978/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36978/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36979","slug":"sunken-city-and-underwater-ruins-cargo-crate-waterlogg-8761132f","title":"Cargo Crate Waterlogged (Sunken City and Underwater Ruins)","summary":"Waterlogged cargo crate 1 m square with sprung boards, an iron banded frame, the lid slipped off and weed on the corner.","description":"Waterlogged cargo crate 1 m square with sprung boards, an iron banded frame, the lid slipped off and weed on the corner. Dimensions 1.14 by 1.04 by 0.91 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-cargo-crate-waterlogg-8761132f","cdnUrl":"https://cdn.3dassets.dev/assets/36979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-cargo-crate-waterlogg-8761132f","thumbnailUrl":"https://cdn.3dassets.dev/assets/36979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36979/v1/poster.webp","blurhash":"U7CPt-~V00IpV@ayX6xt009Zk9WrEMog$*Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12440,"triangles":204,"vertices":612,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5209381099151736,0,-0.4200011999984829],"max":[0.6232050657272339,1.0391820669174194,0.4849981619011884]},"sizeMeters":[1.144,1.039,0.905],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:09.915Z","updatedAt":"2026-09-12T04:43:10.017Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36979/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CargoCrateWaterloggedSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36979/v1/model.glb\" alt=\"Cargo Crate Waterlogged (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36979/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36980","slug":"sunken-city-and-underwater-ruins-shipwreck-hull-sectio-bdebf831","title":"Shipwreck Hull Section (Sunken City and Underwater Ruins)","summary":"Section of a wooden hull about 8.6 m long lying over on the seabed, keel and nine frames intact, one side still planked and the other stripped.","description":"Section of a wooden hull about 8.6 m long lying over on the seabed, keel and nine frames intact, one side still planked and the other stripped. Dimensions 8.59 by 3.12 by 3.89 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Modelled solid and static: a hull that flexes or a plank that springs needs a joint per piece, which a single rigid node transform cannot give. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-shipwreck-hull-sectio-bdebf831","cdnUrl":"https://cdn.3dassets.dev/assets/36980/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-shipwreck-hull-sectio-bdebf831","thumbnailUrl":"https://cdn.3dassets.dev/assets/36980/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36980/v1/poster.webp","blurhash":"U3A0wE4;00^+IB_2%M9G00xV~pNGpI018{?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49060,"triangles":952,"vertices":2856,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-4.325040817260742,0.00007533555694119731,-1.6882928217370892],"max":[4.269016742706299,3.1153332058458663,2.2008200491388226]},"sizeMeters":[8.594,3.115,3.889],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:10.980Z","updatedAt":"2026-09-12T04:43:11.077Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36980/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShipwreckHullSectionSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36980/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36980/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36980/v1/model.glb\" alt=\"Shipwreck Hull Section (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36980/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36980/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36981","slug":"sunken-city-and-underwater-ruins-wreck-rib-set-183a6b5e","title":"Wreck Rib Set (Sunken City and Underwater Ruins)","summary":"Five broken hull frames standing out of a silt mound 4 m across, leaning apart as the ship settled, with coral on the low ends.","description":"Five broken hull frames standing out of a silt mound 4 m across, leaning apart as the ship settled, with coral on the low ends. Dimensions 4.48 by 1.78 by 2.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-wreck-rib-set-183a6b5e","cdnUrl":"https://cdn.3dassets.dev/assets/36981/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-wreck-rib-set-183a6b5e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36981/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36981/v1/poster.webp","blurhash":"UBAc}B-;00IU9Foe%MRk00IU?b%M~pWV9Zt6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17480,"triangles":312,"vertices":936,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2.0999999046325684,0.00004273797417087,-0.999850413897296],"max":[2.3825809955596924,1.7789233559724664,0.999850413897296]},"sizeMeters":[4.483,1.779,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:11.106Z","updatedAt":"2026-09-12T04:43:11.210Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36981/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WreckRibSetSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36981/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36981/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36981/v1/model.glb\" alt=\"Wreck Rib Set (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36981/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36981/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36982","slug":"sunken-city-and-underwater-ruins-mast-stump-b036976b","title":"Mast Stump (Sunken City and Underwater Ruins)","summary":"Broken lower mast 3.1 m tall in its silt mound, an iron band round the heel, a cross spar still shipped and the head splintered.","description":"Broken lower mast 3.1 m tall in its silt mound, an iron band round the heel, a cross spar still shipped and the head splintered. Dimensions 1.48 by 3.23 by 1.35 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-mast-stump-b036976b","cdnUrl":"https://cdn.3dassets.dev/assets/36982/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-mast-stump-b036976b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36982/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36982/v1/poster.webp","blurhash":"U597b5xu00E000V@~ptQs?WUX3xI-oofNGV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16596,"triangles":280,"vertices":840,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7794228792190552,0.00001866583017665069,-0.6754440717187883],"max":[0.702235758304596,3.2345731258392334,0.6754440717187883]},"sizeMeters":[1.482,3.235,1.351],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:11.459Z","updatedAt":"2026-09-12T04:43:11.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36982/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MastStumpSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36982/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36982/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36982/v1/model.glb\" alt=\"Mast Stump (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36982/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36982/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36983","slug":"sunken-city-and-underwater-ruins-ships-rudder-9ea0b220","title":"Ships Rudder (Sunken City and Underwater Ruins)","summary":"Ship rudder 2.5 m tall leaning where it fell, its three pintles and gudgeon straps still on the leading edge.","description":"Ship rudder 2.5 m tall leaning where it fell, its three pintles and gudgeon straps still on the leading edge. Dimensions 1.58 by 2.63 by 1.01 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-ships-rudder-9ea0b220","cdnUrl":"https://cdn.3dassets.dev/assets/36983/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-ships-rudder-9ea0b220","thumbnailUrl":"https://cdn.3dassets.dev/assets/36983/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36983/v1/poster.webp","blurhash":"U3Ac@^tO00IX00?b_M01IYog--RixuIVRj-:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19716,"triangles":328,"vertices":984,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.030241806875349,0.000008279709910269384,-0.5065648089552593],"max":[0.5461833477020264,2.633000373840332,0.5065648089552593]},"sizeMeters":[1.576,2.633,1.013],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:11.527Z","updatedAt":"2026-09-12T04:43:11.692Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36983/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShipsRudderSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36983/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36983/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36983/v1/model.glb\" alt=\"Ships Rudder (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36983/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36983/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36984","slug":"sunken-city-and-underwater-ruins-kelp-frond-cluster-03fbdaa1","title":"Kelp Frond Cluster (Sunken City and Underwater Ruins)","summary":"Cluster of six kelp stipes 2.4 to 3.4 m tall on one holdfast, each carrying four bladed fronds, modelled standing as if in a slow current.","description":"Cluster of six kelp stipes 2.4 to 3.4 m tall on one holdfast, each carrying four bladed fronds, modelled standing as if in a slow current. Dimensions 2.20 by 3.22 by 2.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Solid and static. Kelp bends along its whole length, which needs a joint per segment or a vertex shader; one rigid node transform cannot do it, so the pose is modelled instead. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-kelp-frond-cluster-03fbdaa1","cdnUrl":"https://cdn.3dassets.dev/assets/36984/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-kelp-frond-cluster-03fbdaa1","thumbnailUrl":"https://cdn.3dassets.dev/assets/36984/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36984/v1/poster.webp","blurhash":"U569B$tR00RO.kV[MLx[D5RQ%}x[HZaxt+WV","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55072,"triangles":1124,"vertices":3372,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.023725961865397,0,-1.2591102301344996],"max":[1.1809653989686686,3.219588279724121,1.140130060838235]},"sizeMeters":[2.205,3.22,2.399],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:12.667Z","updatedAt":"2026-09-12T04:43:12.764Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36984/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KelpFrondClusterSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36984/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36984/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36984/v1/model.glb\" alt=\"Kelp Frond Cluster (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36984/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36984/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36985","slug":"sunken-city-and-underwater-ruins-sea-fan-babde4e3","title":"Sea Fan (Sunken City and Underwater Ruins)","summary":"Branching sea fan about 1.5 m tall and 1.4 m across in one plane, on a small rock foot; five orders of branches, no leaves.","description":"Branching sea fan about 1.5 m tall and 1.4 m across in one plane, on a small rock foot; five orders of branches, no leaves. Dimensions 1.59 by 1.59 by 0.52 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Static: a fan flexes across its whole web, which no single rigid node transform can reproduce. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-sea-fan-babde4e3","cdnUrl":"https://cdn.3dassets.dev/assets/36985/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-sea-fan-babde4e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/36985/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36985/v1/poster.webp","blurhash":"UDBfLwt700R*}]xaEfNa0e$*-WIo0xR*$*R*","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26724,"triangles":520,"vertices":1560,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7901192307472229,0.000004910392149587439,-0.2610018254313248],"max":[0.8041907548904419,1.5940715235243845,0.2563570440802353]},"sizeMeters":[1.594,1.594,0.517],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:12.715Z","updatedAt":"2026-09-12T04:43:12.812Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36985/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SeaFanSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36985/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36985/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36985/v1/model.glb\" alt=\"Sea Fan (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36985/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36985/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36986","slug":"sunken-city-and-underwater-ruins-coral-head-domed-a01b3911","title":"Coral Head Domed (Sunken City and Underwater Ruins)","summary":"Domed brain coral head 1.7 m across and 1.1 m tall, the surface broken into fourteen lobes with two darker patches.","description":"Domed brain coral head 1.7 m across and 1.1 m tall, the surface broken into fourteen lobes with two darker patches. Dimensions 1.67 by 1.30 by 1.52 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-coral-head-domed-a01b3911","cdnUrl":"https://cdn.3dassets.dev/assets/36986/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-coral-head-domed-a01b3911","thumbnailUrl":"https://cdn.3dassets.dev/assets/36986/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36986/v1/poster.webp","blurhash":"UED[qs-W00NG-ps:NFS100Io~Cbv9ZR*xuj[","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21032,"triangles":400,"vertices":1200,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8083980679512024,-0.00004541618901787725,-0.7608770198223482],"max":[0.8604434132575989,1.2982771867637717,0.7608770198223482]},"sizeMeters":[1.669,1.298,1.522],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:13.200Z","updatedAt":"2026-09-12T04:43:13.313Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36986/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoralHeadDomedSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36986/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36986/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36986/v1/model.glb\" alt=\"Coral Head Domed (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36986/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36986/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36987","slug":"sunken-city-and-underwater-ruins-coral-head-branching-dce9a23a","title":"Coral Head Branching (Sunken City and Underwater Ruins)","summary":"Branching staghorn coral 1.6 m tall on a dark rock foot, three main stems dividing four times to rounded tips.","description":"Branching staghorn coral 1.6 m tall on a dark rock foot, three main stems dividing four times to rounded tips. Dimensions 1.36 by 1.32 by 1.41 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-coral-head-branching-dce9a23a","cdnUrl":"https://cdn.3dassets.dev/assets/36987/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-coral-head-branching-dce9a23a","thumbnailUrl":"https://cdn.3dassets.dev/assets/36987/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36987/v1/poster.webp","blurhash":"UKDbmNbG00Io}[ayJ7NG9ZoL-WNGEes:a1Rj","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":69444,"triangles":1408,"vertices":4224,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7696098558195205,0.000014371818213648746,-0.7446821928024292],"max":[0.5871982447393508,1.3238441798857936,0.6603214740753174]},"sizeMeters":[1.357,1.324,1.405],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:13.213Z","updatedAt":"2026-09-12T04:43:13.332Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36987/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoralHeadBranchingSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36987/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36987/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36987/v1/model.glb\" alt=\"Coral Head Branching (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36987/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36987/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36988","slug":"sunken-city-and-underwater-ruins-coral-head-plate-013ebc7d","title":"Coral Head Plate (Sunken City and Underwater Ruins)","summary":"Plate coral 1.9 m across: four thin shelves stepping up a rock core, each tilted its own way to catch the light.","description":"Plate coral 1.9 m across: four thin shelves stepping up a rock core, each tilted its own way to catch the light. Dimensions 1.82 by 1.30 by 1.77 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-coral-head-plate-013ebc7d","cdnUrl":"https://cdn.3dassets.dev/assets/36988/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-coral-head-plate-013ebc7d","thumbnailUrl":"https://cdn.3dassets.dev/assets/36988/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36988/v1/poster.webp","blurhash":"UDEn@uxu00NGsCoeNGR*00Rj~Cs:t7WV$*s:","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14220,"triangles":258,"vertices":774,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8938366770744324,-0.00003305032258577034,-0.8420817740876619],"max":[0.9306374788284302,1.3022429559327633,0.9249303825814669]},"sizeMeters":[1.824,1.302,1.767],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:14.363Z","updatedAt":"2026-09-12T04:43:14.452Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36988/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoralHeadPlateSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36988/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36988/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36988/v1/model.glb\" alt=\"Coral Head Plate (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36988/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36988/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36989","slug":"sunken-city-and-underwater-ruins-anemone-cluster-55408610","title":"Anemone Cluster (Sunken City and Underwater Ruins)","summary":"Four anemones on one rock, 1.5 m across, each a short column under a crown of nine blunt tentacles, modelled open.","description":"Four anemones on one rock, 1.5 m across, each a short column under a crown of nine blunt tentacles, modelled open. Dimensions 1.10 by 0.89 by 1.11 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Static: every tentacle would need its own joint, so the open pose is modelled rather than animated. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-anemone-cluster-55408610","cdnUrl":"https://cdn.3dassets.dev/assets/36989/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-anemone-cluster-55408610","thumbnailUrl":"https://cdn.3dassets.dev/assets/36989/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36989/v1/poster.webp","blurhash":"UCEB]f%200I:}us:I:WX00n%}]jZ1Hs:$jWB","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":40040,"triangles":796,"vertices":2388,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5522610604659345,-0.000026548964192824043,-0.5361976623535156],"max":[0.5507053792372968,0.893561668777468,0.5777838230133057]},"sizeMeters":[1.103,0.894,1.114],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:15.408Z","updatedAt":"2026-09-12T04:43:15.513Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36989/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AnemoneClusterSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36989/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36989/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36989/v1/model.glb\" alt=\"Anemone Cluster (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36989/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36989/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36990","slug":"sunken-city-and-underwater-ruins-barrel-sponge-da03ecfa","title":"Barrel Sponge (Sunken City and Underwater Ruins)","summary":"Barrel sponge 1.1 m across and 1.56 m tall, the wall ribbed down its length and the mouth open and dark.","description":"Barrel sponge 1.1 m across and 1.56 m tall, the wall ribbed down its length and the mouth open and dark. Dimensions 1.09 by 1.56 by 1.08 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-barrel-sponge-da03ecfa","cdnUrl":"https://cdn.3dassets.dev/assets/36990/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-barrel-sponge-da03ecfa","thumbnailUrl":"https://cdn.3dassets.dev/assets/36990/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36990/v1/poster.webp","blurhash":"UBDurk%200E1~WoLD%kC9FWB-pt7jFjZNGS2","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15524,"triangles":286,"vertices":858,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5444337129592896,0,-0.5328095647931248],"max":[0.5444337129592896,1.559999942779541,0.545025298321262]},"sizeMeters":[1.089,1.56,1.078],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:14.820Z","updatedAt":"2026-09-12T04:43:14.921Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36990/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarrelSpongeSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36990/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36990/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36990/v1/model.glb\" alt=\"Barrel Sponge (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36990/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36990/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36991","slug":"sunken-city-and-underwater-ruins-barnacle-crust-plate-b0d05df1","title":"Barnacle Crust Plate (Sunken City and Underwater Ruins)","summary":"Barnacle crust plate 1.8 by 1.4 m and 0.13 m thick, forty four shells of mixed size on a dark rock skin, to lay over stone or a wreck.","description":"Barnacle crust plate 1.8 by 1.4 m and 0.13 m thick, forty four shells of mixed size on a dark rock skin, to lay over stone or a wreck. Dimensions 1.68 by 0.20 by 1.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sits flat: drop it on a wall top, a hull or a column drum and it reads as growth on the surface. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-barnacle-crust-plate-b0d05df1","cdnUrl":"https://cdn.3dassets.dev/assets/36991/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-barnacle-crust-plate-b0d05df1","thumbnailUrl":"https://cdn.3dassets.dev/assets/36991/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36991/v1/poster.webp","blurhash":"U99tS{x]00xax[t7M|Rj00Mx~qRkD%M{%Lxu","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":54036,"triangles":1088,"vertices":3264,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7794228792190552,-0.000028411104329703618,-0.7042448731560468],"max":[0.898853600025177,0.1971919730855478,0.6062547966751933]},"sizeMeters":[1.678,0.197,1.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:15.960Z","updatedAt":"2026-09-12T04:43:16.183Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36991/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarnacleCrustPlateSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36991/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36991/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36991/v1/model.glb\" alt=\"Barnacle Crust Plate (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36991/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36991/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36992","slug":"sunken-city-and-underwater-ruins-sea-grass-patch-9bc635f4","title":"Sea Grass Patch (Sunken City and Underwater Ruins)","summary":"Patch of sea grass about 2 m across and 0.9 m tall, forty blades leaning at their own angles out of a low silt bed.","description":"Patch of sea grass about 2 m across and 0.9 m tall, forty blades leaning at their own angles out of a low silt bed. Dimensions 2.00 by 0.99 by 1.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Static: grass sways along its whole blade, which needs a joint per segment or a shader rather than one rigid node transform. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-sea-grass-patch-9bc635f4","cdnUrl":"https://cdn.3dassets.dev/assets/36992/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-sea-grass-patch-9bc635f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36992/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36992/v1/poster.webp","blurhash":"U87.gRRi00sESwWBt7jc00og?]bI$+ogIoa_","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49224,"triangles":988,"vertices":2964,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9810097813606262,0.000026433063859659933,-0.8050340592504643],"max":[1.017164707183838,0.9923661831416997,0.9945852934957646]},"sizeMeters":[1.998,0.992,1.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:15.986Z","updatedAt":"2026-09-12T04:43:16.199Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36992/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SeaGrassPatchSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36992/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36992/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36992/v1/model.glb\" alt=\"Sea Grass Patch (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36992/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36992/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36993","slug":"sunken-city-and-underwater-ruins-sea-urchin-85a50d8b","title":"Sea Urchin (Sunken City and Underwater Ruins)","summary":"Sea urchin 0.55 m across including spines, a small dark test under twenty six straight spines, static with no rig.","description":"Sea urchin 0.55 m across including spines, a small dark test under twenty six straight spines, static with no rig. Dimensions 1.06 by 0.61 by 1.06 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-sea-urchin-85a50d8b","cdnUrl":"https://cdn.3dassets.dev/assets/36993/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-sea-urchin-85a50d8b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36993/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36993/v1/poster.webp","blurhash":"U67x8oW=00ae_3bHIUax00jZ_Nof00ni%Mof","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23360,"triangles":464,"vertices":1392,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5370693206787109,-0.00002485630924581317,-0.5010309926059302],"max":[0.5241711139678955,0.6077585232060658,0.5565820446994361]},"sizeMeters":[1.061,0.608,1.058],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:17.527Z","updatedAt":"2026-09-12T04:43:17.618Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36993/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SeaUrchinSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36993/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36993/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36993/v1/model.glb\" alt=\"Sea Urchin (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36993/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36993/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36994","slug":"sunken-city-and-underwater-ruins-starfish-619fba49","title":"Starfish (Sunken City and Underwater Ruins)","summary":"Five armed starfish 1.1 m across and 0.12 m thick, arms tapering and curling a little at the tips, static with no rig.","description":"Five armed starfish 1.1 m across and 0.12 m thick, arms tapering and curling a little at the tips, static with no rig. Dimensions 1.17 by 0.14 by 1.11 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-starfish-619fba49","cdnUrl":"https://cdn.3dassets.dev/assets/36994/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-starfish-619fba49","thumbnailUrl":"https://cdn.3dassets.dev/assets/36994/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36994/v1/poster.webp","blurhash":"UDB2}%oz0Jo0xuj]R*ax00aK~CbIE1aet7og","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11036,"triangles":208,"vertices":624,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.584703266620636,-0.000020923748101711603,-0.5103703115654882],"max":[0.584703266620636,0.14002092434414815,0.6017917965126928]},"sizeMeters":[1.169,0.14,1.112],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:18.081Z","updatedAt":"2026-09-12T04:43:18.270Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36994/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StarfishSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36994/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36994/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36994/v1/model.glb\" alt=\"Starfish (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36994/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36994/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36995","slug":"sunken-city-and-underwater-ruins-giant-clam-38307b3a","title":"Giant Clam (Sunken City and Underwater Ruins)","summary":"Giant clam 0.95 m across with both ribbed valves held ajar and a soft mantle between them, resting in its own silt hollow.","description":"Giant clam 0.95 m across with both ribbed valves held ajar and a soft mantle between them, resting in its own silt hollow. Dimensions 0.97 by 0.71 by 0.97 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The valves are modelled ajar and do not move: it is a prop, not a creature, and carries no rig or clip. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-giant-clam-38307b3a","cdnUrl":"https://cdn.3dassets.dev/assets/36995/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-giant-clam-38307b3a","thumbnailUrl":"https://cdn.3dassets.dev/assets/36995/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36995/v1/poster.webp","blurhash":"UCBzLPxu00M{kDt7oeM{00aL_NX5MwRPj^xu","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26008,"triangles":490,"vertices":1470,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4927493631839752,0.000008979010577253588,-0.4699628431478804],"max":[0.4795176684856415,0.7051465613091901,0.4958950061479872]},"sizeMeters":[0.972,0.705,0.966],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:17.748Z","updatedAt":"2026-09-12T04:43:17.841Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36995/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GiantClamSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36995/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36995/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36995/v1/model.glb\" alt=\"Giant Clam (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36995/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36995/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36996","slug":"sunken-city-and-underwater-ruins-bubble-column-557e5240","title":"Bubble Column (Sunken City and Underwater Ruins)","summary":"Rising column of thirty bubbles 3.2 m tall, widening as it goes, over a small dark vent in the seabed.","description":"Rising column of thirty bubbles 3.2 m tall, widening as it goes, over a small dark vent in the seabed. Dimensions 0.81 by 3.32 by 0.66 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Modelled as solid bubbles in the pack translucent emissive material rather than as a flat card, so it reads from any angle. Static: rising bubbles are a particle system, not a rigid node transform. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-bubble-column-557e5240","cdnUrl":"https://cdn.3dassets.dev/assets/36996/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-bubble-column-557e5240","thumbnailUrl":"https://cdn.3dassets.dev/assets/36996/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36996/v1/poster.webp","blurhash":"U38EMK%M004n?vW;8_nj4TRP?^%#E1Rj-p%M","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":37768,"triangles":748,"vertices":2244,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.2944486439228058,0.000006747978249746489,-0.27016607521063574],"max":[0.5111232596920317,3.318169116973877,0.39112314338323656]},"sizeMeters":[0.806,3.318,0.661],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:17.800Z","updatedAt":"2026-09-12T04:43:17.890Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36996/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BubbleColumnSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36996/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36996/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36996/v1/model.glb\" alt=\"Bubble Column (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36996/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36996/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36997","slug":"sunken-city-and-underwater-ruins-light-shaft-plate-ac1ae3e2","title":"Light Shaft Plate (Sunken City and Underwater Ruins)","summary":"Shaft of daylight 5.7 m tall leaning about twelve degrees, three crossed translucent blades with a pool of light where it lands.","description":"Shaft of daylight 5.7 m tall leaning about twelve degrees, three crossed translucent blades with a pool of light where it lands. Dimensions 2.72 by 5.67 by 1.93 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. The blades use the pack translucent emissive material and cast nothing: add a real directional light if you want shadows. Static, because a moving caustic needs a shader. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-light-shaft-plate-ac1ae3e2","cdnUrl":"https://cdn.3dassets.dev/assets/36997/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-light-shaft-plate-ac1ae3e2","thumbnailUrl":"https://cdn.3dassets.dev/assets/36997/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36997/v1/poster.webp","blurhash":"U8Am}4%M009F%M-;M{4T00WB_Nt7M_IUoz?b","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":4428,"triangles":68,"vertices":204,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5148741815089233,0,-0.606053491431036],"max":[1.2062368009089477,5.665796756744385,1.321738739805975]},"sizeMeters":[2.721,5.666,1.928],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:20.149Z","updatedAt":"2026-09-12T04:43:20.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36997/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LightShaftPlateSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36997/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36997/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36997/v1/model.glb\" alt=\"Light Shaft Plate (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36997/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36997/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36999","slug":"sunken-city-and-underwater-ruins-glowing-crystal-clust-897febc9","title":"Glowing Crystal Cluster (Sunken City and Underwater Ruins)","summary":"Cluster of nine lit crystal spires up to 1.1 m tall on a turned stone plinth, the cluster turning slowly on its mount.","description":"Cluster of nine lit crystal spires up to 1.1 m tall on a turned stone plinth, the cluster turning slowly on its mount. Dimensions 1.18 by 1.71 by 1.24 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Animated pivot nodes: crystal-spire at (0.00, 0.60, 0.00) m. The crystals are one node and turn as one; the plinth is fixed. The glow is an emissive material, not a light source. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-glowing-crystal-clust-897febc9","cdnUrl":"https://cdn.3dassets.dev/assets/36999/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-glowing-crystal-clust-897febc9","thumbnailUrl":"https://cdn.3dassets.dev/assets/36999/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36999/v1/poster.webp","blurhash":"UCCZqsxu00IU00Rj?bxu00WB_Nof-;ofWVWB","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22736,"triangles":424,"vertices":1272,"meshes":2,"materials":2,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.589649957231262,-0.000037852565693663465,-0.6200000047683716],"max":[0.589649957231262,1.7097567081451417,0.6200000047683716]},"sizeMeters":[1.179,1.71,1.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:19.526Z","updatedAt":"2026-09-12T04:43:19.847Z","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/36999/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 GlowingCrystalClusterSunkenCityAndUnderwaterRuins(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36999/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/36999/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36999/v1/model.glb\" alt=\"Glowing Crystal Cluster (Sunken City and Underwater Ruins)\" 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/36999/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/36999/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36998","slug":"sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c","title":"Fish Shoal Plate (Sunken City and Underwater Ruins)","summary":"Decorative shoal plate: twenty six flat fish forms on two crossed cards, about 3.2 m wide and 1.9 m tall, for hanging over a ruin.","description":"Decorative shoal plate: twenty six flat fish forms on two crossed cards, about 3.2 m wide and 1.9 m tall, for hanging over a ruin. Dimensions 3.51 by 1.73 by 2.89 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Flat decoration rather than creatures: the forms are solid, unrigged and unanimated, and the pack contains no animals of any kind. The origin is at the foot of the cards; place it a metre or two above the seabed. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c","cdnUrl":"https://cdn.3dassets.dev/assets/36998/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c","thumbnailUrl":"https://cdn.3dassets.dev/assets/36998/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36998/v1/poster.webp","blurhash":"U9Aw9p%2009Z?axaD%R*00M|~p-p4oIV_2t7","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26048,"triangles":520,"vertices":1560,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.8189936876296997,0.0000057720132432548255,-1.1776936102434425],"max":[1.68869948387146,1.731318423848573,1.7142504501863747]},"sizeMeters":[3.508,1.731,2.892],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:19.367Z","updatedAt":"2026-09-12T04:43:19.458Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36998/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FishShoalPlateSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36998/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36998/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36998/v1/model.glb\" alt=\"Fish Shoal Plate (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36998/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36998/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37000","slug":"sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","title":"Drowned Temple Precinct (Sunken City and Underwater Ruins)","summary":"A 36 by 36 m drowned precinct on a silted seabed: a raised temple platform with its colonnade, statue base and braziers, reached by a stepped terrace from a cracked paved plaza with a mosaic, a fountain, a sundial and a well. A precinct wall with one standing doorway closes...","description":"A 36 by 36 m drowned precinct on a silted seabed: a raised temple platform with its colonnade, statue base and braziers, reached by a stepped terrace from a cracked paved plaza with a mosaic, a fountain, a sundial and a well. A precinct wall with one standing doorway closes the south and west, two arches lead out to the east, and the wreck that struck the ruin lies broken across the north east corner. Kelp, coral, sea fans, grass and barnacles have taken the lot. Every model is static except the doorway leaf, the chest lid and the crystal cluster.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37000/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-drowned-d2ac3298-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/37000/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37000/v1/poster.webp","blurhash":"U7Cj2@x@00W.9ZWCt7kC00RR_NV[~Vt6kCjE","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1190980,"triangles":27874,"vertices":53412,"meshes":138,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-18.307048339214123,-0.00007813453681593252,-18],"max":[18.954493576174958,6.0499997901916505,18]},"sizeMeters":[37.262,6.05,36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:20.913Z","updatedAt":"2026-09-12T04:43:21.011Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37000/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrownedTemplePrecinctSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37000/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37000/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37000/v1/model.glb\" alt=\"Drowned Temple Precinct (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37000/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37000/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37001","slug":"sunken-city-and-underwater-ruins-wreck-on-the-sand-fla-18c59e73","title":"Wreck on the Sand Flats (Sunken City and Underwater Ruins)","summary":"A 28 by 28 m stretch of open seabed with the broken hull, frames, mast, rudder and anchor of one ship, its cargo of amphorae and crates spilled around it, and a treasure chest sunk in the sand. Kelp, coral and grass have started on the wreck. A second place for the pack, at...","description":"A 28 by 28 m stretch of open seabed with the broken hull, frames, mast, rudder and anchor of one ship, its cargo of amphorae and crates spilled around it, and a treasure chest sunk in the sand. Kelp, coral and grass have started on the wreck. A second place for the pack, at the same scale and on the same 4 m module grid as the precinct.","status":"published","url":"https://3dassets.dev/assets/sunken-city-and-underwater-ruins-wreck-on-the-sand-fla-18c59e73","cdnUrl":"https://cdn.3dassets.dev/assets/37001/v1/model.glb","downloadUrl":"https://3dassets.dev/download/sunken-city-and-underwater-ruins-wreck-on-the-sand-fla-18c59e73","thumbnailUrl":"https://cdn.3dassets.dev/assets/37001/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37001/v1/poster.webp","blurhash":"U9DS,dx[00xY9GWCt7jZ00RQ_3NG~podj;bb","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"fantasy","title":"Fantasy"},{"slug":"low-poly","title":"Low Poly"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":722044,"triangles":18190,"vertices":33659,"meshes":74,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-14,-0.00007813453681593252,-14],"max":[14,5.8457967567443845,14]},"sizeMeters":[28,5.846,28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T04:43:22.171Z","updatedAt":"2026-09-12T04:43:22.287Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37001/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WreckOnTheSandFlatsSunkenCityAndUnderwaterRuins(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37001/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37001/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37001/v1/model.glb\" alt=\"Wreck on the Sand Flats (Sunken City and Underwater Ruins)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37001/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37001/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"sunken-city-and-underwater-ruins","title":"Sunken City and Underwater Ruins","url":"https://3dassets.dev/demos/sunken-city-and-underwater-ruins"}}}