{"data":{"id":10,"slug":"tidal-observatory","title":"Tidal Observatory","summary":"A coastal astronomy settlement with limestone terraces, bronze instruments and blue maritime details.","description":"Create an original ancient coastal observatory centred on navigation and tidal study. Limestone architecture, blue ceramics and bronze instruments share one restrained palette. The modular quay and colonnade fit a 2 m grid. Includes a curated working courtyard and harbour scene.","url":"https://3dassets.dev/packs/tidal-observatory","coverUrl":"https://cdn.3dassets.dev/assets/275/v1/poster.webp","assetCount":25,"aiGenerated":true,"aiGeneratedAssetCount":25,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":917644,"totalTriangles":17248,"starterScene":{"id":"275","slug":"tidal-observatory-starter-scene","title":"Tidal Observatory starter scene","summary":"A composed tidal observatory scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Tidal Observatory kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-observatory-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/275/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-observatory-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/275/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/275/v1/poster.webp","blurhash":"UBD0ZDI=00o}9EjExbbb00xC_2V@~qXTX7r=","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":436264,"triangles":8636,"vertices":25908,"meshes":84,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-8.697346687316895,-0.19985241491942038,-7.790350325009274],"max":[7.5,5.199999809265137,7.43417680968945]},"sizeMeters":[16.197,5.4,15.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:26.940Z","updatedAt":"2026-09-06T03:41:44.436Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/275/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalObservatoryStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/275/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/275/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/275/v1/model.glb\" alt=\"Tidal Observatory starter scene\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/275/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/275/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"251","slug":"tidal-star-reading-hall","title":"Tidal star reading hall","summary":"Open coastal astronomy hall with six columns, a stepped plinth and a blue pitched roof.","description":"Open coastal astronomy hall with six columns, a stepped plinth and a blue pitched roof.\n\nPart of the Tidal Observatory collection. Dimensions: 4.2 m wide, 3.91 m high and 4.55 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-star-reading-hall","cdnUrl":"https://cdn.3dassets.dev/assets/251/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-star-reading-hall","thumbnailUrl":"https://cdn.3dassets.dev/assets/251/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/251/v1/poster.webp","blurhash":"UCFGB]%200bd0hMx=xx]00WAogR+}SWBIroz","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":34864,"triangles":656,"vertices":1968,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.100000023841858,0.000059949797633906954,-2.2750000953674316],"max":[2.100000023841858,3.9099145431770603,2.2750000953674316]},"sizeMeters":[4.2,3.91,4.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:28.411Z","updatedAt":"2026-09-06T03:41:44.631Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/251/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalStarReadingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/251/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/251/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/251/v1/model.glb\" alt=\"Tidal star reading hall\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/251/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/251/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"252","slug":"tidal-watch-tower","title":"Tidal watch tower","summary":"Octagonal coastal watch tower with viewing windows, a parapet and an exposed tide marker.","description":"Octagonal coastal watch tower with viewing windows, a parapet and an exposed tide marker.\n\nPart of the Tidal Observatory collection. Dimensions: 2 m wide, 5.2 m high and 2 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-watch-tower","cdnUrl":"https://cdn.3dassets.dev/assets/252/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-watch-tower","thumbnailUrl":"https://cdn.3dassets.dev/assets/252/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/252/v1/poster.webp","blurhash":"U3C?r=_20000_3WB9ZxuRWoJ%KW??ba{D$s;","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":20972,"triangles":352,"vertices":1056,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9998656818834496,0,-0.9998656818834496],"max":[0.9998656818834496,5.199999809265137,0.9998656818834496]},"sizeMeters":[2,5.2,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:31.370Z","updatedAt":"2026-09-06T03:41:44.622Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/252/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalWatchTower(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/252/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/252/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/252/v1/model.glb\" alt=\"Tidal watch tower\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/252/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/252/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"253","slug":"tidal-chart-archive-pavilion","title":"Tidal chart archive pavilion","summary":"Stone chart archive with a bronze double door, narrow windows and layered roof cornices.","description":"Stone chart archive with a bronze double door, narrow windows and layered roof cornices.\n\nPart of the Tidal Observatory collection. Dimensions: 4.2 m wide, 2.98 m high and 2.48 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-chart-archive-pavilion","cdnUrl":"https://cdn.3dassets.dev/assets/253/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-chart-archive-pavilion","thumbnailUrl":"https://cdn.3dassets.dev/assets/253/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/253/v1/poster.webp","blurhash":"U8I##{_200p0t-~qRQ9F00Iq9EMv=pk8SQ9H","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":19112,"triangles":312,"vertices":936,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2.0999999046325684,-0.0000661479603489834,-1.2401495062324799],"max":[2.0999999046325684,2.9800661670338355,1.2400998074469154]},"sizeMeters":[4.2,2.98,2.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:33.625Z","updatedAt":"2026-09-06T03:41:44.613Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/253/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalChartArchivePavilion(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/253/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/253/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/253/v1/model.glb\" alt=\"Tidal chart archive pavilion\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/253/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/253/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"254","slug":"tidal-lateen-survey-skiff","title":"Tidal lateen survey skiff","summary":"Shallow wooden survey boat with angular hull sides, bench seats and a triangular lateen sail.","description":"Shallow wooden survey boat with angular hull sides, bench seats and a triangular lateen sail.\n\nPart of the Tidal Observatory collection. Dimensions: 2.01 m wide, 2.87 m high and 3.04 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-lateen-survey-skiff","cdnUrl":"https://cdn.3dassets.dev/assets/254/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-lateen-survey-skiff","thumbnailUrl":"https://cdn.3dassets.dev/assets/254/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/254/v1/poster.webp","blurhash":"UBA,arRj00xu9wR*$gxa00xu~pIU-Qa#S$WB","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"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":11492,"triangles":184,"vertices":552,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.003840950444019,-0.00005493077985296857,-1.5224064588546753],"max":[1.0037919707273648,2.8730360022520207,1.5224064588546753]},"sizeMeters":[2.008,2.873,3.045],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:36.004Z","updatedAt":"2026-09-06T03:41:44.605Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/254/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalLateenSurveySkiff(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/254/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/254/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/254/v1/model.glb\" alt=\"Tidal lateen survey skiff\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/254/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/254/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"255","slug":"tidal-harbour-dolphin","title":"Tidal harbour dolphin","summary":"Faceted dolphin with a tapered snout, dorsal fin and broad tail flukes for coastal scenes.","description":"Faceted dolphin with a tapered snout, dorsal fin and broad tail flukes for coastal scenes.\n\nPart of the Tidal Observatory collection. Dimensions: 1 m wide, 0.95 m high and 1.87 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-harbour-dolphin","cdnUrl":"https://cdn.3dassets.dev/assets/255/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-harbour-dolphin","thumbnailUrl":"https://cdn.3dassets.dev/assets/255/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/255/v1/poster.webp","blurhash":"U76lACQ,8wyEMxR*j?sm00x^*0Vr.8%2afM|","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"historical","title":"Historical"},{"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":25608,"triangles":478,"vertices":1434,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5001557629607648,-0.000047376591005232616,-0.9338264465332031],"max":[0.5001557629607648,0.946253171402254,0.9338264465332031]},"sizeMeters":[1,0.946,1.868],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:38.326Z","updatedAt":"2026-09-06T03:41:44.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/255/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalHarbourDolphin(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/255/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/255/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/255/v1/model.glb\" alt=\"Tidal harbour dolphin\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/255/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/255/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"256","slug":"tidal-shore-gull","title":"Tidal shore gull","summary":"Standing shore gull with folded wings, yellow bill and separate planted feet.","description":"Standing shore gull with folded wings, yellow bill and separate planted feet.\n\nPart of the Tidal Observatory collection. Dimensions: 0.37 m wide, 0.74 m high and 0.74 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-shore-gull","cdnUrl":"https://cdn.3dassets.dev/assets/256/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-shore-gull","thumbnailUrl":"https://cdn.3dassets.dev/assets/256/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/256/v1/poster.webp","blurhash":"U9AwP7v|00I]tRs.RjM|00T0~qxCMyS$s:xW","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"historical","title":"Historical"},{"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":24496,"triangles":440,"vertices":1320,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.18280155272727414,0,-0.37127360701560974],"max":[0.18280155272727414,0.7400000095367432,0.3712896290555686]},"sizeMeters":[0.366,0.74,0.743],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:40.383Z","updatedAt":"2026-09-06T03:41:44.589Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/256/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalShoreGull(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/256/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/256/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/256/v1/model.glb\" alt=\"Tidal shore gull\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/256/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/256/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"257","slug":"tidal-navigator-character","title":"Tidal navigator character","summary":"Static coastal navigator in a blue robe, woven belt and hood, carrying a folded star chart.","description":"Static coastal navigator in a blue robe, woven belt and hood, carrying a folded star chart.\n\nPart of the Tidal Observatory collection. Dimensions: 0.83 m wide, 1.75 m high and 0.68 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-navigator-character","cdnUrl":"https://cdn.3dassets.dev/assets/257/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-navigator-character","thumbnailUrl":"https://cdn.3dassets.dev/assets/257/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/257/v1/poster.webp","blurhash":"UCAT[*V@00tR~qWB4ot6H=WXt,xFV[Rjaexu","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"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":14396,"triangles":240,"vertices":720,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4149662961127571,0,-0.33996689180220596],"max":[0.4149662961127571,1.75,0.3400120492171342]},"sizeMeters":[0.83,1.75,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:42.920Z","updatedAt":"2026-09-06T03:41:44.582Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/257/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalNavigatorCharacter(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/257/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/257/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/257/v1/model.glb\" alt=\"Tidal navigator character\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/257/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/257/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"258","slug":"tidal-wind-shaped-pine","title":"Tidal wind-shaped pine","summary":"Angular maritime pine with a leaning trunk and broad flattened canopy clusters.","description":"Angular maritime pine with a leaning trunk and broad flattened canopy clusters.\n\nPart of the Tidal Observatory collection. Dimensions: 2.39 m wide, 2.39 m high and 1.22 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-wind-shaped-pine","cdnUrl":"https://cdn.3dassets.dev/assets/258/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-wind-shaped-pine","thumbnailUrl":"https://cdn.3dassets.dev/assets/258/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/258/v1/poster.webp","blurhash":"U88XLGj=00S6?]WUIAxa9Gog-oV@8xt7yCM{","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"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":12816,"triangles":228,"vertices":684,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.1973469257354736,0,-0.6087040342082436],"max":[1.1973469257354736,2.3896997162852407,0.6087040342082436]},"sizeMeters":[2.395,2.39,1.217],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:44.862Z","updatedAt":"2026-09-06T03:41:44.573Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/258/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalWindShapedPine(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/258/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/258/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/258/v1/model.glb\" alt=\"Tidal wind-shaped pine\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/258/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/258/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"259","slug":"tidal-coastal-rock-pool","title":"Tidal coastal rock pool","summary":"Low rock pool edged with faceted limestone, shallow blue water and three reef fronds.","description":"Low rock pool edged with faceted limestone, shallow blue water and three reef fronds.\n\nPart of the Tidal Observatory collection. Dimensions: 2.14 m wide, 0.38 m high and 2.17 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-coastal-rock-pool","cdnUrl":"https://cdn.3dassets.dev/assets/259/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-coastal-rock-pool","thumbnailUrl":"https://cdn.3dassets.dev/assets/259/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/259/v1/poster.webp","blurhash":"UA9aW}tR00WAoKaybHoL00Rj?^f+R,kBn~WX","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"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":36080,"triangles":696,"vertices":2088,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0720557113204139,0.00002167000741318259,-1.085036277770996],"max":[1.0720557113204139,0.38423908304059395,1.085036277770996]},"sizeMeters":[2.144,0.384,2.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:47.099Z","updatedAt":"2026-09-06T03:41:44.565Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/259/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalCoastalRockPool(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/259/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/259/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/259/v1/model.glb\" alt=\"Tidal coastal rock pool\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/259/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/259/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"260","slug":"tidal-quay-platform-module","title":"Tidal quay platform module","summary":"Two-metre limestone quay platform with capped edge blocks and a bronze mooring ring.","description":"Two-metre limestone quay platform with capped edge blocks and a bronze mooring ring.\n\nPart of the Tidal Observatory collection. Dimensions: 2 m wide, 0.56 m high and 2 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-quay-platform-module","cdnUrl":"https://cdn.3dassets.dev/assets/260/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-quay-platform-module","thumbnailUrl":"https://cdn.3dassets.dev/assets/260/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/260/v1/poster.webp","blurhash":"U7FiMk_200WAxuRjNGt700D%~pM|D$xu%MNG","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"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":11888,"triangles":196,"vertices":588,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000038148136844995406,-1],"max":[1,0.5599929775392277,1]},"sizeMeters":[2,0.56,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:49.562Z","updatedAt":"2026-09-06T03:41:44.558Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/260/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalQuayPlatformModule(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/260/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/260/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/260/v1/model.glb\" alt=\"Tidal quay platform module\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/260/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/260/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"261","slug":"tidal-stone-stair-module","title":"Tidal stone stair module","summary":"Two-metre wide quay stairs with four even risers for connecting terraces and harbour paths.","description":"Two-metre wide quay stairs with four even risers for connecting terraces and harbour paths.\n\nPart of the Tidal Observatory collection. Dimensions: 2 m wide, 0.8 m high and 2 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-stone-stair-module","cdnUrl":"https://cdn.3dassets.dev/assets/261/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-stone-stair-module","thumbnailUrl":"https://cdn.3dassets.dev/assets/261/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/261/v1/poster.webp","blurhash":"U7G+R9%N00V[oz9FIUxu00IT?aM{%3~q%MWB","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"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":3352,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00003358228135252883,-0.999961851863155],"max":[1,0.7999450726434076,0.999961851863155]},"sizeMeters":[2,0.8,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:52.487Z","updatedAt":"2026-09-06T03:41:44.551Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/261/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalStoneStairModule(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/261/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/261/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/261/v1/model.glb\" alt=\"Tidal stone stair module\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/261/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/261/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"262","slug":"tidal-colonnade-module","title":"Tidal colonnade module","summary":"Two-metre stone colonnade span with octagonal columns and a blue lintel band.","description":"Two-metre stone colonnade span with octagonal columns and a blue lintel band.\n\nPart of the Tidal Observatory collection. Dimensions: 2.12 m wide, 2.98 m high and 0.58 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-colonnade-module","cdnUrl":"https://cdn.3dassets.dev/assets/262/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-colonnade-module","thumbnailUrl":"https://cdn.3dassets.dev/assets/262/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/262/v1/poster.webp","blurhash":"UADJS0-:00IU~qx]9FD%%Nt7M{M{%2-;WB4o","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"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":13432,"triangles":228,"vertices":684,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0599658260536968,0,-0.2899331663199644],"max":[1.0599658260536968,2.9800000190734863,0.2899331663199644]},"sizeMeters":[2.12,2.98,0.58],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:55.262Z","updatedAt":"2026-09-06T03:41:44.542Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/262/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalColonnadeModule(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/262/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/262/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/262/v1/model.glb\" alt=\"Tidal colonnade module\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/262/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/262/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"263","slug":"tidal-armillary-instrument","title":"Tidal armillary instrument","summary":"Bronze armillary sphere on a stone pedestal with three orbit rings and a central sun marker.","description":"Bronze armillary sphere on a stone pedestal with three orbit rings and a central sun marker.\n\nPart of the Tidal Observatory collection. Dimensions: 1 m wide, 2.2 m high and 1 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-armillary-instrument","cdnUrl":"https://cdn.3dassets.dev/assets/263/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-armillary-instrument","thumbnailUrl":"https://cdn.3dassets.dev/assets/263/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/263/v1/poster.webp","blurhash":"U5Bpd]-p004nVVRkyF%K00WB~os:5Fa#$vjX","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":33868,"triangles":652,"vertices":1956,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4999786391720132,0,-0.4999786391720132],"max":[0.4999786391720132,2.200000047683716,0.4999786391720132]},"sizeMeters":[1,2.2,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:22:58.679Z","updatedAt":"2026-09-06T03:41:44.534Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/263/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalArmillaryInstrument(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/263/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/263/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/263/v1/model.glb\" alt=\"Tidal armillary instrument\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/263/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/263/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"264","slug":"tidal-astronomical-sighting-frame","title":"Tidal astronomical sighting frame","summary":"Tripod-mounted sighting instrument with an open square frame and crossed alignment markers.","description":"Tripod-mounted sighting instrument with an open square frame and crossed alignment markers.\n\nPart of the Tidal Observatory collection. Dimensions: 0.91 m wide, 2.02 m high and 0.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-astronomical-sighting-frame","cdnUrl":"https://cdn.3dassets.dev/assets/264/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-astronomical-sighting-frame","thumbnailUrl":"https://cdn.3dassets.dev/assets/264/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/264/v1/poster.webp","blurhash":"U4A9_{^%0002?]x@8{DlIrt7-TM{Mxofx]Rj","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":7848,"triangles":108,"vertices":324,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4562265872955322,0,-0.44214535624295437],"max":[0.45624398869439947,2.0240637019217953,0.44214535624295437]},"sizeMeters":[0.912,2.024,0.884],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:01.291Z","updatedAt":"2026-09-06T03:41:44.526Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/264/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalAstronomicalSightingFrame(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/264/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/264/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/264/v1/model.glb\" alt=\"Tidal astronomical sighting frame\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/264/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/264/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"265","slug":"tidal-water-clock","title":"Tidal water clock","summary":"Tiered water clock with a receiving basin, measured central column and upper storage bowl.","description":"Tiered water clock with a receiving basin, measured central column and upper storage bowl.\n\nPart of the Tidal Observatory collection. Dimensions: 0.8 m wide, 1.45 m high and 0.8 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-water-clock","cdnUrl":"https://cdn.3dassets.dev/assets/265/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-water-clock","thumbnailUrl":"https://cdn.3dassets.dev/assets/265/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/265/v1/poster.webp","blurhash":"U4A,,r-:009HD4MxT#%g-Tt7NZIUGwW?;]xV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":21320,"triangles":360,"vertices":1080,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000011599268947871944,-0.4000000059604645],"max":[0.4000000059604645,1.4500000476837158,0.4000000059604645]},"sizeMeters":[0.8,1.45,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:04.417Z","updatedAt":"2026-09-06T03:41:44.519Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/265/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalWaterClock(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/265/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/265/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/265/v1/model.glb\" alt=\"Tidal water clock\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/265/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/265/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"266","slug":"tidal-chart-table","title":"Tidal chart table","summary":"Low stone study table with a bronze-rimmed star chart and three rolled scrolls.","description":"Low stone study table with a bronze-rimmed star chart and three rolled scrolls.\n\nPart of the Tidal Observatory collection. Dimensions: 1.7 m wide, 1 m high and 1.1 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-chart-table","cdnUrl":"https://cdn.3dassets.dev/assets/266/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-chart-table","thumbnailUrl":"https://cdn.3dassets.dev/assets/266/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/266/v1/poster.webp","blurhash":"UHFr^j%M9F-;_N-;RPIU00kCM|IT4TM|o}of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15356,"triangles":252,"vertices":756,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.00000871152979964318,-0.5499954376505347],"max":[0.8500000238418579,1.005024644889186,0.5499954376505347]},"sizeMeters":[1.7,1.005,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:07.360Z","updatedAt":"2026-09-06T03:41:44.511Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/266/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalChartTable(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/266/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/266/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/266/v1/model.glb\" alt=\"Tidal chart table\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/266/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/266/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"267","slug":"tidal-cargo-amphora","title":"Tidal cargo amphora","summary":"Blue ceramic transport amphora with a narrow neck, foot ring and two open bronze handles.","description":"Blue ceramic transport amphora with a narrow neck, foot ring and two open bronze handles.\n\nPart of the Tidal Observatory collection. Dimensions: 0.78 m wide, 0.79 m high and 0.53 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-cargo-amphora","cdnUrl":"https://cdn.3dassets.dev/assets/267/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-cargo-amphora","thumbnailUrl":"https://cdn.3dassets.dev/assets/267/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/267/v1/poster.webp","blurhash":"UA9*S-%g00Dh=qs,ElR+00Vs*0krK7WFn$a^","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":20596,"triangles":392,"vertices":1176,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.38999998569488525,0,-0.2663121433149205],"max":[0.38999998569488525,0.7850043521886212,0.2663121433149205]},"sizeMeters":[0.78,0.785,0.533],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:09.738Z","updatedAt":"2026-09-06T03:41:44.504Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/267/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalCargoAmphora(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/267/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/267/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/267/v1/model.glb\" alt=\"Tidal cargo amphora\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/267/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/267/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"268","slug":"tidal-harbour-signal-brazier","title":"Tidal harbour signal brazier","summary":"Raised bronze signal bowl with tripod legs, a pierced rim and a static angular flame.","description":"Raised bronze signal bowl with tripod legs, a pierced rim and a static angular flame.\n\nPart of the Tidal Observatory collection. Dimensions: 0.75 m wide, 1.34 m high and 0.72 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-harbour-signal-brazier","cdnUrl":"https://cdn.3dassets.dev/assets/268/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-harbour-signal-brazier","thumbnailUrl":"https://cdn.3dassets.dev/assets/268/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/268/v1/poster.webp","blurhash":"U8BMh~%L00IVM|RlR*fi02NG~TxtEMs.-oa#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":14236,"triangles":258,"vertices":774,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3745697685042856,0,-0.36003983951042046],"max":[0.3745697685042856,1.3383811712265015,0.36003983951042046]},"sizeMeters":[0.749,1.338,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:12.086Z","updatedAt":"2026-09-06T03:41:44.495Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/268/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalHarbourSignalBrazier(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/268/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/268/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/268/v1/model.glb\" alt=\"Tidal harbour signal brazier\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/268/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/268/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"269","slug":"tidal-fishing-net-drying-rack","title":"Tidal fishing net drying rack","summary":"Timber harbour rack carrying a visible open-grid fishing net and two buoy floats.","description":"Timber harbour rack carrying a visible open-grid fishing net and two buoy floats.\n\nPart of the Tidal Observatory collection. Dimensions: 1.7 m wide, 1.65 m high and 0.22 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-fishing-net-drying-rack","cdnUrl":"https://cdn.3dassets.dev/assets/269/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-fishing-net-drying-rack","thumbnailUrl":"https://cdn.3dassets.dev/assets/269/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/269/v1/poster.webp","blurhash":"UDDc5Ss;00bF~U%2D*E100oJ~qRjIAs+%MkX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":18532,"triangles":332,"vertices":996,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.00000683160326897525,-0.10781127680680687],"max":[0.8500000238418579,1.6499931445548732,0.1077878218278674]},"sizeMeters":[1.7,1.65,0.216],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:14.618Z","updatedAt":"2026-09-06T03:41:44.488Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/269/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalFishingNetDryingRack(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/269/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/269/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/269/v1/model.glb\" alt=\"Tidal fishing net drying rack\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/269/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/269/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"270","slug":"tidal-grilled-fish-platter","title":"Tidal grilled fish platter","summary":"Shallow terracotta serving dish with two stylised fish and sliced citrus garnish.","description":"Shallow terracotta serving dish with two stylised fish and sliced citrus garnish.\n\nPart of the Tidal Observatory collection. Dimensions: 0.86 m wide, 0.17 m high and 0.86 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-grilled-fish-platter","cdnUrl":"https://cdn.3dassets.dev/assets/270/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-grilled-fish-platter","thumbnailUrl":"https://cdn.3dassets.dev/assets/270/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/270/v1/poster.webp","blurhash":"UEByX0sm01S5SgWVsAoL00S3~Vo0wJs:SOR*","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"historical","title":"Historical"},{"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":27000,"triangles":476,"vertices":1428,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4300000071525574,0.000020829749410408716,-0.4300000071525574],"max":[0.4300000071525574,0.17228236288082321,0.4300000071525574]},"sizeMeters":[0.86,0.172,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:16.950Z","updatedAt":"2026-09-06T03:41:44.481Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/270/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalGrilledFishPlatter(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/270/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/270/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/270/v1/model.glb\" alt=\"Tidal grilled fish platter\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/270/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/270/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"271","slug":"tidal-olive-bread-basket","title":"Tidal olive bread basket","summary":"Woven provision basket with two scored bread loaves and a small bowl of olives.","description":"Woven provision basket with two scored bread loaves and a small bowl of olives.\n\nPart of the Tidal Observatory collection. Dimensions: 0.8 m wide, 0.34 m high and 0.54 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-olive-bread-basket","cdnUrl":"https://cdn.3dassets.dev/assets/271/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-olive-bread-basket","thumbnailUrl":"https://cdn.3dassets.dev/assets/271/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/271/v1/poster.webp","blurhash":"U7Fh|w?a00t8yZ-;xCNG00Iq%JMxD4D%IAIT","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"historical","title":"Historical"},{"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":24376,"triangles":420,"vertices":1260,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000011599268947871944,-0.267513050649056],"max":[0.4000000059604645,0.3379999084891737,0.267513050649056]},"sizeMeters":[0.8,0.338,0.535],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:18.772Z","updatedAt":"2026-09-06T03:41:44.472Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/271/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalOliveBreadBasket(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/271/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/271/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/271/v1/model.glb\" alt=\"Tidal olive bread basket\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/271/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/271/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"272","slug":"tidal-star-chart-quest-token","title":"Tidal star chart quest token","summary":"Bronze-rimmed navigation token with eight raised compass rays and a blue inset centre.","description":"Bronze-rimmed navigation token with eight raised compass rays and a blue inset centre.\n\nPart of the Tidal Observatory collection. Dimensions: 0.8 m wide, 0.8 m high and 0.19 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-star-chart-quest-token","cdnUrl":"https://cdn.3dassets.dev/assets/272/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-star-chart-quest-token","thumbnailUrl":"https://cdn.3dassets.dev/assets/272/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/272/v1/poster.webp","blurhash":"UCDS:iWF00jX_1xuE1IU00t6?wRkIVM{R-tR","category":{"slug":"icons","title":"3D Icons & UI"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16484,"triangles":288,"vertices":864,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0,-0.09590136560641527],"max":[0.4000000059604645,0.800000011920929,0.09590136560641527]},"sizeMeters":[0.8,0.8,0.192],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:20.457Z","updatedAt":"2026-09-06T03:41:44.463Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/272/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalStarChartQuestToken(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/272/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/272/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/272/v1/model.glb\" alt=\"Tidal star chart quest token\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/272/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/272/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"273","slug":"tidal-wave-crest-mesh","title":"Tidal wave crest mesh","summary":"Static stylised wave crest with three curling water ridges and separate foam fragments.","description":"Static stylised wave crest with three curling water ridges and separate foam fragments.\n\nPart of the Tidal Observatory collection. Dimensions: 1.78 m wide, 0.52 m high and 0.61 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-wave-crest-mesh","cdnUrl":"https://cdn.3dassets.dev/assets/273/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-wave-crest-mesh","thumbnailUrl":"https://cdn.3dassets.dev/assets/273/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/273/v1/poster.webp","blurhash":"U78hUfVE00WVo~%hZ~IA00tm_Nn$VrDNt-.8","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38744,"triangles":768,"vertices":2304,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8923803567886353,0.00005033057533537777,-0.306251478363634],"max":[0.8923803567886353,0.5199496503511782,0.30627450198649075]},"sizeMeters":[1.785,0.52,0.613],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:22.415Z","updatedAt":"2026-09-06T03:41:44.454Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/273/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalWaveCrestMesh(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/273/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/273/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/273/v1/model.glb\" alt=\"Tidal wave crest mesh\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/273/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/273/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"274","slug":"tidal-bronze-mooring-bollard","title":"Tidal bronze mooring bollard","summary":"Twin-headed bronze mooring bollard on a limestone footing for harbour edges and boat berths.","description":"Twin-headed bronze mooring bollard on a limestone footing for harbour edges and boat berths.\n\nPart of the Tidal Observatory collection. Dimensions: 0.8 m wide, 0.59 m high and 0.62 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-bronze-mooring-bollard","cdnUrl":"https://cdn.3dassets.dev/assets/274/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-bronze-mooring-bollard","thumbnailUrl":"https://cdn.3dassets.dev/assets/274/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/274/v1/poster.webp","blurhash":"UCH2Ds?a00Io4T%1SjE200RinMIp?wxu_2Rj","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"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":14512,"triangles":248,"vertices":744,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.0000022870255996509936,-0.3100000023841858],"max":[0.4000000059604645,0.5899957145153012,0.3100000023841858]},"sizeMeters":[0.8,0.59,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:24.031Z","updatedAt":"2026-09-06T03:41:44.444Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/274/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalBronzeMooringBollard(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/274/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/274/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/274/v1/model.glb\" alt=\"Tidal bronze mooring bollard\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/274/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/274/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"275","slug":"tidal-observatory-starter-scene","title":"Tidal Observatory starter scene","summary":"A composed tidal observatory scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Tidal Observatory kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Tidal Observatory](/packs/tidal-observatory).","status":"published","url":"https://3dassets.dev/assets/tidal-observatory-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/275/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tidal-observatory-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/275/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/275/v1/poster.webp","blurhash":"UBD0ZDI=00o}9EjExbbb00xC_2V@~qXTX7r=","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":436264,"triangles":8636,"vertices":25908,"meshes":84,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-8.697346687316895,-0.19985241491942038,-7.790350325009274],"max":[7.5,5.199999809265137,7.43417680968945]},"sizeMeters":[16.197,5.4,15.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:26.940Z","updatedAt":"2026-09-06T03:41:44.436Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/275/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TidalObservatoryStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/275/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/275/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/275/v1/model.glb\" alt=\"Tidal Observatory starter scene\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/275/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/275/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}