{"data":{"id":299,"slug":"ferry-terminal-and-harbour-crossing","title":"Ferry Terminal and Harbour Crossing","summary":"A working roll on roll off ferry terminal: a berthed ferry whose stern ramp lowers, a hinged linkspan on its towers, ported quay, lane and floor tiles, check in booths, barriers and queueing vehicles, and a glazed terminal with a walkway to the gangway tower.","description":"A complete modern vehicle ferry port in one coherent realistic family, built so a developer can assemble a terminal rather than dress one. The berth is the pack's centre: a quay of ported 4 m coping tiles with fender panels, bollards, a bunker point and lifebuoy posts, breasting dolphins standing in 8 m water tiles, a linkspan bridge section that tilts on its shore hinge under a pair of hydraulic towers, two shore ramp sections climbing to it, and the ferry itself, a berthed stern section modelled from the waterline up whose stern ramp lowers onto the bridge. The marshalling yard is ported lane tiles with plain and hatched markings, a three lane check in island, barrier arms, a lane number gantry, a cantilever signal, a weighbridge and a staff hut, with a car, a van, a tractor unit and a box semi trailer to fill them. The passenger terminal is built from ported 4 m facade bays and an entrance bay with sliding doors, roof cassettes, check in desks, ported seating banks, a sailings board, a kiosk, ticket gates, toilets, a lift and stair core, luggage trolleys and racks, wayfinding totems and a ported covered walkway out to the gangway tower. Animation is rigid node transforms only: the stern ramp, the barriers, the ticket gates, the entrance doors and the toilet doors open and close, the linkspan deck and the board flaps tilt, and every vehicle wheel and trolley castor rolls. Water, mooring ropes, fender rubber, hydraulic rams, cables and the gangway bellows are modelled solid and stay still, because none of them is reachable with a rigid node transform. No operator, shipping line, port authority or vehicle maker marks anywhere.","url":"https://3dassets.dev/packs/ferry-terminal-and-harbour-crossing","coverUrl":"https://cdn.3dassets.dev/assets/35663/v1/poster.webp","assetCount":44,"aiGenerated":true,"aiGeneratedAssetCount":44,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":2554508,"totalTriangles":34360,"starterScene":{"id":"35663","slug":"ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","title":"Ferry terminal at loading time (Ferry Terminal and Harbour Crossing)","summary":"A roll on roll off ferry terminal working a sailing: the ship lies astern of the linkspan with its stern ramp over the bridge deck, held off the quay by breasting dolphins and fender panels, and a car is already on the span. Behind it two shore ramps climb from the...","description":"A roll on roll off ferry terminal working a sailing: the ship lies astern of the linkspan with its stern ramp over the bridge deck, held off the quay by breasting dolphins and fender panels, and a car is already on the span. Behind it two shore ramps climb from the marshalling yard, where cars, a van and an articulated lorry queue in painted lanes between the check in booths, the barrier arms, the weighbridge and the lane number gantry. The passenger terminal alongside is built from glazed facade bays with its check in desks, seating, sailings board, kiosk and ticket gates inside, and the covered walkway runs from its entrance doors to the gangway tower on the quay. The roof is left off the front half of the concourse so it can be read from above.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35663/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35663/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35663/v1/poster.webp","blurhash":"U89%^*%g00IoDhIAb0x]00WB^+s9.T.8xsIn","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":722644,"triangles":14296,"vertices":32495,"meshes":320,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-16.220038447209948,-0.12006042798986698,-13.169999980926514],"max":[16,14.880073184689383,43]},"sizeMeters":[32.22,15,56.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:15.171Z","updatedAt":"2026-09-11T16:41:15.277Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35663/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FerryTerminalAtLoadingTimeFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35663/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35663/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35663/v1/model.glb\" alt=\"Ferry terminal at loading time (Ferry Terminal and Harbour Crossing)\" 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/35663/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/35663/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"35621","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-808200de","title":"Harbour water tile, 8 m (Ferry Terminal and Harbour Crossing)","summary":"Flat harbour basin tile 8 m square and 0.12 m thick, in dark green harbour water, for filling the berth around a ship. Laid at y=-0.12 its surface sits exactly on y=0, level with the quay the terminal stands on.","description":"Flat harbour basin tile 8 m square and 0.12 m thick, in dark green harbour water, for filling the berth around a ship. Laid at y=-0.12 its surface sits exactly on y=0, level with the quay the terminal stands on. Overall 8.00 by 0.12 by 8.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the tile's footprint; lay a grid of them at y=-0.12 so the water surface is the world's zero plane. Static surface: the water is a flat plate with no waves, ripple animation or transparency, because a rigid node transform cannot make a sea and a shader is not shipped with a GLB. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-808200de","cdnUrl":"https://cdn.3dassets.dev/assets/35621/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-808200de","thumbnailUrl":"https://cdn.3dassets.dev/assets/35621/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35621/v1/poster.webp","blurhash":"U47Lu]x]00r^x^jtV@j]00My?wRjI8W;t7WA","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":1808,"triangles":12,"vertices":28,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-4,-0.000060427989866981835,-4],"max":[4,0.12006042530765797,4]},"sizeMeters":[8,0.12,8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:45.761Z","updatedAt":"2026-09-11T16:40:45.857Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35621/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HarbourWaterTile8MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35621/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35621/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35621/v1/model.glb\" alt=\"Harbour water tile, 8 m (Ferry Terminal and Harbour Crossing)\" 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/35621/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/35621/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35622","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-7d63e83c","title":"Quay coping tile, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Quay edge slab 4 m along the quay and 3 m deep with a galvanised edge angle, a yellow safety line set back from the lip and two recessed tie down pockets. Ports at both ends so a quay runs to any length.","description":"Quay edge slab 4 m along the quay and 3 m deep with a galvanised edge angle, a yellow safety line set back from the lip and two recessed tie down pockets. Ports at both ends so a quay runs to any length. Overall 4.00 by 0.17 by 3.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the tile's footprint with the seaward lip toward +Z; lay tiles at y=-0.12 so the quay surface is y=0. Static modular piece. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-7d63e83c","cdnUrl":"https://cdn.3dassets.dev/assets/35622/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-7d63e83c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35622/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35622/v1/poster.webp","blurhash":"U7CsgZ%L00NGxu%LoeM{00RQ~qoJD%9ZRQxu","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":52544,"triangles":60,"vertices":140,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-1.49992370372631],"max":[2,0.1699031032853789,1.500100687239413]},"sizeMeters":[4,0.17,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:45.884Z","updatedAt":"2026-09-11T16:40:46.001Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35622/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuayCopingTile4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35622/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35622/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35622/v1/model.glb\" alt=\"Quay coping tile, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35622/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/35622/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35624","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-6763bc4d","title":"Marshalling lane tile, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Asphalt marshalling tile 4 m square with two white lane lines 3.2 m apart and a yellow stop bar, for laying out the queueing lanes of a vehicle ferry yard. Ports on all four edges so the yard tiles to any size.","description":"Asphalt marshalling tile 4 m square with two white lane lines 3.2 m apart and a yellow stop bar, for laying out the queueing lanes of a vehicle ferry yard. Ports on all four edges so the yard tiles to any size. Overall 4.00 by 0.13 by 4.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the tile's footprint, lane lines running along Z; lay tiles at y=-0.12 so the road surface is y=0. Static modular piece; the markings are painted geometry a few millimetres proud of the surfacing. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6763bc4d","cdnUrl":"https://cdn.3dassets.dev/assets/35624/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6763bc4d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35624/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35624/v1/poster.webp","blurhash":"U17KxU?Z00Ia-;WDRiod00D+~qxU9Et4WGRo","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":5120,"triangles":60,"vertices":140,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.1280711709967121,2]},"sizeMeters":[4,0.128,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:46.040Z","updatedAt":"2026-09-11T16:40:46.160Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35624/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarshallingLaneTile4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35624/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35624/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35624/v1/model.glb\" alt=\"Marshalling lane tile, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35624/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/35624/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35623","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-4bf8332f","title":"Marshalling lane tile with hatched chevrons (Ferry Terminal and Harbour Crossing)","summary":"The same 4 m asphalt marshalling tile marked as a keep clear area: yellow chevrons across the full width between the lane lines, for the no waiting square in front of a linkspan or a barrier.","description":"The same 4 m asphalt marshalling tile marked as a keep clear area: yellow chevrons across the full width between the lane lines, for the no waiting square in front of a linkspan or a barrier. Overall 4.00 by 0.13 by 5.98 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static modular piece; the markings are painted geometry a few millimetres proud of the surfacing. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-4bf8332f","cdnUrl":"https://cdn.3dassets.dev/assets/35623/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-4bf8332f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35623/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35623/v1/poster.webp","blurhash":"U67w.*of01axxtNING%I00Rk~os:IV%J%K9K","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":7584,"triangles":108,"vertices":240,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-3.041696786880493],"max":[2,0.12801729533931056,2.941696882247925]},"sizeMeters":[4,0.128,5.983],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:46.023Z","updatedAt":"2026-09-11T16:40:46.127Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35623/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarshallingLaneTileWithHatchedChevronsFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35623/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35623/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35623/v1/model.glb\" alt=\"Marshalling lane tile with hatched chevrons (Ferry Terminal and Harbour Crossing)\" 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/35623/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/35623/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35625","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-751a6e3f","title":"Terminal floor tile, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Polished concourse floor tile 4 m square with a blue inlay band and a charcoal movement joint, for the passenger terminal floor. Ports on all four edges so a concourse tiles to any size.","description":"Polished concourse floor tile 4 m square with a blue inlay band and a charcoal movement joint, for the passenger terminal floor. Ports on all four edges so a concourse tiles to any size. Overall 4.00 by 0.13 by 4.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the tile's footprint; lay tiles at y=-0.12 so the floor surface is y=0. Static modular piece. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-751a6e3f","cdnUrl":"https://cdn.3dassets.dev/assets/35625/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-751a6e3f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35625/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35625/v1/poster.webp","blurhash":"U6CZhUx^00n#-;WVRkof00M_~qNI4ns:s,M{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":50596,"triangles":36,"vertices":84,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.12790637091166002,2]},"sizeMeters":[4,0.128,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:48.668Z","updatedAt":"2026-09-11T16:40:48.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35625/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalFloorTile4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35625/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35625/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35625/v1/model.glb\" alt=\"Terminal floor tile, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35625/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/35625/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35626","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-6bc713b9","title":"Quay fender panel (Ferry Terminal and Harbour Crossing)","summary":"Berth fender 2.4 m wide and 2.6 m tall: a charcoal rubber face panel on two steel buckling cylinders and a bolted back frame, with yellow chain eyes top and bottom, for the quay face a ferry berths against.","description":"Berth fender 2.4 m wide and 2.6 m tall: a charcoal rubber face panel on two steel buckling cylinders and a bolted back frame, with yellow chain eyes top and bottom, for the quay face a ferry berths against. Overall 2.40 by 2.60 by 0.62 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the back frame's footprint, the rubber face toward +Z, so the panel stands against a quay wall. Static fitting: the rubber face is modelled solid and does not compress, and the retaining chains are modelled as fixed bars, because a rigid node transform cannot squash rubber. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6bc713b9","cdnUrl":"https://cdn.3dassets.dev/assets/35626/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6bc713b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/35626/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35626/v1/poster.webp","blurhash":"U897kcM|00t6_Nxt9FM|xtt8M{Ri%N%LM_D*","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":10320,"triangles":164,"vertices":362,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000213189401119,0,-0.16002272239625848],"max":[1.2000213189401119,2.5999999046325684,0.4599566698650978]},"sizeMeters":[2.4,2.6,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:48.744Z","updatedAt":"2026-09-11T16:40:48.925Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35626/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuayFenderPanelFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35626/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35626/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35626/v1/model.glb\" alt=\"Quay fender panel (Ferry Terminal and Harbour Crossing)\" 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/35626/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/35626/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35628","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-caf04004","title":"Dolphin mooring pile (Ferry Terminal and Harbour Crossing)","summary":"Breasting dolphin standing in the water: four raked steel tubes braced together under a 2.6 m deck with a charcoal fender face, a yellow handrail and a mooring hook, for holding a ferry off the quay at its berth.","description":"Breasting dolphin standing in the water: four raked steel tubes braced together under a 2.6 m deck with a charcoal fender face, a yellow handrail and a mooring hook, for holding a ferry off the quay at its berth. Overall 2.60 by 6.25 by 2.73 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the pile group at the waterline, which is y=0, so the dolphin drops straight into a harbour water tile. Static structure; the mooring hook and its lines are modelled solid and the pile does not flex. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-caf04004","cdnUrl":"https://cdn.3dassets.dev/assets/35628/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-caf04004","thumbnailUrl":"https://cdn.3dassets.dev/assets/35628/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35628/v1/poster.webp","blurhash":"UAATizRo00${~UWF4:xUxTWEN3xWROWBkEof","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":64904,"triangles":328,"vertices":743,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.2999999523162842,0,-1.2999999523162842],"max":[1.2999999523162842,6.24993504191695,1.4299570840089366]},"sizeMeters":[2.6,6.25,2.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:48.980Z","updatedAt":"2026-09-11T16:40:49.094Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35628/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DolphinMooringPileFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35628/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35628/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35628/v1/model.glb\" alt=\"Dolphin mooring pile (Ferry Terminal and Harbour Crossing)\" 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/35628/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/35628/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35627","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-60e65698","title":"Quay bollard with mooring rope (Ferry Terminal and Harbour Crossing)","summary":"Cast steel kidney bollard 0.9 m tall on a bolted base plate with a cream mooring rope dressed over it in a loose eye and run off toward the water, for the quay edge of a ferry berth.","description":"Cast steel kidney bollard 0.9 m tall on a bolted base plate with a cream mooring rope dressed over it in a loose eye and run off toward the water, for the quay edge of a ferry berth. Overall 0.79 by 0.90 by 2.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the base plate on the quay surface, the rope running off toward +Z. The rope is modelled solid in one dressed pose: rope is a soft body and there is no skinning in this library, so it never moves, slackens or pays out. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-60e65698","cdnUrl":"https://cdn.3dassets.dev/assets/35627/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-60e65698","thumbnailUrl":"https://cdn.3dassets.dev/assets/35627/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35627/v1/poster.webp","blurhash":"U79H2{RP00kDt89FRj-=00bH~qxtt7~qt700","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":17480,"triangles":336,"vertices":766,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3970809638551147,0,-0.3801887631416321],"max":[0.3970809638551147,0.8999999761581421,2.146984577178955]},"sizeMeters":[0.794,0.9,2.527],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:48.942Z","updatedAt":"2026-09-11T16:40:49.078Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35627/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuayBollardWithMooringRopeFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35627/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35627/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35627/v1/model.glb\" alt=\"Quay bollard with mooring rope (Ferry Terminal and Harbour Crossing)\" 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/35627/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/35627/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35630","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-2de6f919","title":"Quay fuel bunker point (Ferry Terminal and Harbour Crossing)","summary":"Bunkering station 2.2 m wide: a grey cabinet with a red isolator panel and a lit gauge, a coiled charcoal hose on a steel reel, two bollard guards and a yellow spill kerb, for fuelling a ferry alongside.","description":"Bunkering station 2.2 m wide: a grey cabinet with a red isolator panel and a lit gauge, a coiled charcoal hose on a steel reel, two bollard guards and a yellow spill kerb, for fuelling a ferry alongside. Overall 2.20 by 2.20 by 1.42 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the kerb's footprint with the hose reel facing +Z. The hose, the reel drum and the valve wheels are modelled solid and static: a coiling hose is a soft body and a rigid node transform cannot pay one out. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-2de6f919","cdnUrl":"https://cdn.3dassets.dev/assets/35630/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-2de6f919","thumbnailUrl":"https://cdn.3dassets.dev/assets/35630/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35630/v1/poster.webp","blurhash":"U8FO_X-h00OZ0ExaxQIn009#=$xAM]%I~pWG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":18572,"triangles":336,"vertices":727,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.100000023841858,-0.000036611374956918574,-0.6999420300028302],"max":[1.100000023841858,2.200000047683716,0.7199829274410876]},"sizeMeters":[2.2,2.2,1.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:51.755Z","updatedAt":"2026-09-11T16:40:51.851Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35630/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuayFuelBunkerPointFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35630/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35630/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35630/v1/model.glb\" alt=\"Quay fuel bunker point (Ferry Terminal and Harbour Crossing)\" 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/35630/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/35630/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35629","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-719cf382","title":"Lifebuoy post (Ferry Terminal and Harbour Crossing)","summary":"Quayside rescue post 1.4 m tall: a white post on a bolted plate carrying a red and white lifebuoy on its bracket, a coiled throwing line below and a blue instruction plate, for the edge of any quay or linkspan.","description":"Quayside rescue post 1.4 m tall: a white post on a bolted plate carrying a red and white lifebuoy on its bracket, a coiled throwing line below and a blue instruction plate, for the edge of any quay or linkspan. Overall 0.81 by 1.46 by 0.41 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the base plate, the lifebuoy facing +Z. Static prop: the buoy, its bracket and the throwing line are one solid piece, and nothing on it is rigged, because a thrown line is not a rigid node transform. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-719cf382","cdnUrl":"https://cdn.3dassets.dev/assets/35629/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-719cf382","thumbnailUrl":"https://cdn.3dassets.dev/assets/35629/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35629/v1/poster.webp","blurhash":"UDB{y4-p009a~B%29tE10eV@=|bb5RIUv~-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":17064,"triangles":332,"vertices":698,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4064679741859436,-0.00000686655513696538,-0.17003454668162865],"max":[0.4064679741859436,1.4564679861068726,0.2362345497095446]},"sizeMeters":[0.813,1.456,0.406],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:51.710Z","updatedAt":"2026-09-11T16:40:51.825Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35629/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LifebuoyPostFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35629/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35629/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35629/v1/model.glb\" alt=\"Lifebuoy post (Ferry Terminal and Harbour Crossing)\" 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/35629/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/35629/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35632","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-7943c505","title":"Vehicle deck ramp section, 6 m (Ferry Terminal and Harbour Crossing)","summary":"Steel vehicle ramp 6 m long and 4.6 m wide climbing 1.4 m at 13 degrees, with a chequered deck, charcoal grip bars, yellow kerbs, a braced trestle under the high end and a concrete abutment under the low one, for the approach to a linkspan or a ship's deck.","description":"Steel vehicle ramp 6 m long and 4.6 m wide climbing 1.4 m at 13 degrees, with a chequered deck, charcoal grip bars, yellow kerbs, a braced trestle under the high end and a concrete abutment under the low one, for the approach to a linkspan or a ship's deck. Overall 4.80 by 1.88 by 6.35 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the footprint at the low end's surface level, the climb toward +Z, so two sections stack end on end at 6 m and 1.4 m apart. Static structure; the trestle and the deck are one welded piece and nothing on it is rigged. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-7943c505","cdnUrl":"https://cdn.3dassets.dev/assets/35632/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-7943c505","thumbnailUrl":"https://cdn.3dassets.dev/assets/35632/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35632/v1/poster.webp","blurhash":"U49@IlVq00%4~U--IUV|00x]-=IU0105.7tJ","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":59496,"triangles":204,"vertices":454,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.4000000953674316,-0.00010845592912767099,-3.309970409362925],"max":[2.4000000953674316,1.8828745285280384,3.0386290550231934]},"sizeMeters":[4.8,1.883,6.349],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:52.156Z","updatedAt":"2026-09-11T16:40:52.265Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35632/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VehicleDeckRampSection6MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35632/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35632/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35632/v1/model.glb\" alt=\"Vehicle deck ramp section, 6 m (Ferry Terminal and Harbour Crossing)\" 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/35632/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/35632/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35631","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-edb91ab1","title":"Linkspan bridge section (Ferry Terminal and Harbour Crossing)","summary":"Hinged linkspan bridge 6 m long and 7 m wide carrying two vehicle lanes out to a ship: a chequered steel deck with yellow kerbs and handrails on a welded box girder, pinned to a pair of charcoal shore bearings it tilts on as the tide moves the ship.","description":"Hinged linkspan bridge 6 m long and 7 m wide carrying two vehicle lanes out to a ship: a chequered steel deck with yellow kerbs and handrails on a welded box girder, pinned to a pair of charcoal shore bearings it tilts on as the tide moves the ship. Overall 7.20 by 2.38 by 6.49 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, with a free origin on its fixing surface. The origin is the centre of the shore hinge line at deck bearing level, with the girder below it and the bridge cantilevering toward +Z, so the section is placed in the air at whatever height the ship's vehicle deck sits at. The shore bearings, the hinge pin and the girder are static, and the lifting cables and rams belong to the tower rather than the bridge: only the deck node tilts, because one rigid node cannot both tilt a deck and telescope a ram. Rigid node-transform clips: tilt. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-edb91ab1","cdnUrl":"https://cdn.3dassets.dev/assets/35631/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-edb91ab1","thumbnailUrl":"https://cdn.3dassets.dev/assets/35631/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35631/v1/poster.webp","blurhash":"U6Csmm?G00fSah%Mt7D%00E2_NM{W9D*RR-:","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":20884,"triangles":656,"vertices":1502,"meshes":34,"materials":4,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-3.5999999046325684,-0.20501143361908514,-0.44979400627780497],"max":[3.5999999046325684,2.174909230351728,6.040106870658987]},"sizeMeters":[7.2,2.38,6.49],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:51.833Z","updatedAt":"2026-09-11T16:40:52.033Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35631/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LinkspanBridgeSectionFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35631/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35631/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35631/v1/model.glb\" alt=\"Linkspan bridge section (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35631/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35631/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35634","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e1b70c5","title":"Linkspan hydraulic tower (Ferry Terminal and Harbour Crossing)","summary":"Lifting tower 11 m tall for the seaward end of a linkspan: four raked steel legs on a concrete plinth, cross bracing, a caged ladder, a grey machinery head with a yellow band, and two charcoal hydraulic rams reaching down over the bridge.","description":"Lifting tower 11 m tall for the seaward end of a linkspan: four raked steel legs on a concrete plinth, cross bracing, a caged ladder, a grey machinery head with a yellow band, and two charcoal hydraulic rams reaching down over the bridge. Overall 3.12 by 10.90 by 6.71 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the plinth on the quay surface, the rams reaching toward +Z over the bridge. The rams are modelled solid in one extended pose and the lifting cables are fixed bars: a ram is a telescope and a cable is a soft body, and neither is reachable with a rigid node transform. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e1b70c5","cdnUrl":"https://cdn.3dassets.dev/assets/35634/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e1b70c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/35634/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35634/v1/poster.webp","blurhash":"U89H9C9F00~q?bRiIT%3xbV@IVx]-;RiIU%M","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":75780,"triangles":592,"vertices":1326,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.5610745058046196,0.00004273622788772413,-1.5616604397469316],"max":[1.5610745058046196,10.900044277669178,5.146114894302347]},"sizeMeters":[3.122,10.9,6.708],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:54.735Z","updatedAt":"2026-09-11T16:40:54.854Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35634/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LinkspanHydraulicTowerFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35634/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35634/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35634/v1/model.glb\" alt=\"Linkspan hydraulic tower (Ferry Terminal and Harbour Crossing)\" 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/35634/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/35634/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35633","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-aabfced1","title":"Foot passenger gangway tower (Ferry Terminal and Harbour Crossing)","summary":"Boarding tower 8.4 m tall with a covered gangway arm: a braced steel frame clad in blue panels with a glazed stair well, a charcoal roofed walkway 8 m out toward the ship at 5.6 m, and a raking strut under its outer end.","description":"Boarding tower 8.4 m tall with a covered gangway arm: a braced steel frame clad in blue panels with a glazed stair well, a charcoal roofed walkway 8 m out toward the ship at 5.6 m, and a raking strut under its outer end. Overall 3.60 by 8.42 by 11.25 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the tower's footprint on the quay, the gangway arm reaching toward +Z. Static structure: the arm is fixed at one height and the bellows at its outer end is modelled solid, because a telescoping gangway is not one rigid node transform. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-aabfced1","cdnUrl":"https://cdn.3dassets.dev/assets/35633/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-aabfced1","thumbnailUrl":"https://cdn.3dassets.dev/assets/35633/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35633/v1/poster.webp","blurhash":"UDB42Y4U02_M~oIWE3%Gr9E8XA-h?99aRo?Z","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":69244,"triangles":380,"vertices":879,"meshes":7,"materials":7,"textures":1,"animations":[],"boundingBox":{"min":[-1.7999999523162842,-0.00009063401027809004,-1.7999999523162842],"max":[1.7999999523162842,8.419987314151307,9.449999809265137]},"sizeMeters":[3.6,8.42,11.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:54.720Z","updatedAt":"2026-09-11T16:40:54.837Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35633/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FootPassengerGangwayTowerFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35633/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35633/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35633/v1/model.glb\" alt=\"Foot passenger gangway tower (Ferry Terminal and Harbour Crossing)\" 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/35633/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/35633/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35635","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-e2675bfb","title":"Roll on roll off ferry, berthed stern section (Ferry Terminal and Harbour Crossing)","summary":"Berthed stern section of a roll on roll off vehicle ferry, 24 m of hull: grey topsides on a red boot topping, an open vehicle deck behind a stern ramp that lowers on its hinge, white accommodation, a bridge with wings, red funnels and lifeboats.","description":"Berthed stern section of a roll on roll off vehicle ferry, 24 m of hull: grey topsides on a red boot topping, an open vehicle deck behind a stern ramp that lowers on its hinge, white accommodation, a bridge with wings, red funnels and lifeboats. Overall 13.94 by 14.88 by 24.36 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the hull's footprint at the waterline, the bow toward +Z, so the section drops onto a harbour water tile at y=0 and its ramp falls toward a linkspan astern. This is a berth piece, not a whole vessel: the hull is cut forward of the accommodation to keep the model inside the standard tier. Only the stern ramp moves. The hull is modelled from the waterline up, so there is no underwater form, no propeller and no rudder; the mooring lines, the lifeboat falls, the bellows and the funnel uptakes are modelled solid, and nothing on the ship flexes, because a rigid node transform is the only rig in this library. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-e2675bfb","cdnUrl":"https://cdn.3dassets.dev/assets/35635/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-e2675bfb","thumbnailUrl":"https://cdn.3dassets.dev/assets/35635/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35635/v1/poster.webp","blurhash":"U8DvA%_N00H?009Zxaxu00rX_3OX?ctl-V%M","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":50896,"triangles":1036,"vertices":2391,"meshes":17,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-6.970320749534593,-0.00004358424343564593,-11.360099126258905],"max":[6.970320749534593,14.880073184689383,13]},"sizeMeters":[13.941,14.88,24.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:54.756Z","updatedAt":"2026-09-11T16:40:54.875Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35635/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RollOnRollOffFerryBerthedSternSectionFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35635/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35635/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35635/v1/model.glb\" alt=\"Roll on roll off ferry, berthed stern section (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35635/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35635/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35636","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-c0fcd3aa","title":"Roll on roll off ferry, blue livery (Ferry Terminal and Harbour Crossing)","summary":"Berthed stern section of a roll on roll off vehicle ferry, 24 m of hull: grey topsides on a deep blue boot topping, an open vehicle deck behind a stern ramp that lowers on its hinge, white accommodation, a bridge with wings, deep blue funnels and lifeboats.","description":"Berthed stern section of a roll on roll off vehicle ferry, 24 m of hull: grey topsides on a deep blue boot topping, an open vehicle deck behind a stern ramp that lowers on its hinge, white accommodation, a bridge with wings, deep blue funnels and lifeboats. Overall 13.94 by 14.88 by 24.36 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Only the stern ramp moves. The hull is modelled from the waterline up, so there is no underwater form, no propeller and no rudder; the mooring lines, the lifeboat falls, the bellows and the funnel uptakes are modelled solid, and nothing on the ship flexes, because a rigid node transform is the only rig in this library. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-c0fcd3aa","cdnUrl":"https://cdn.3dassets.dev/assets/35636/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-c0fcd3aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/35636/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35636/v1/poster.webp","blurhash":"U8CQAB~X00D%00D$t7xb00NI_3oH?c%Kx^x]","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":50964,"triangles":1036,"vertices":2391,"meshes":17,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-6.970320749534593,-0.00004358424343564593,-11.360099126258905],"max":[6.970320749534593,14.880073184689383,13]},"sizeMeters":[13.941,14.88,24.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:54.931Z","updatedAt":"2026-09-11T16:40:55.080Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35636/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RollOnRollOffFerryBlueLiveryFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35636/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35636/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35636/v1/model.glb\" alt=\"Roll on roll off ferry, blue livery (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35636/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35636/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35637","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-04de3c87","title":"Check in booth run, three lanes (Ferry Terminal and Harbour Crossing)","summary":"Ferry check in island 10 m long: three glazed booths on a raised kerb under a charcoal canopy on steel columns, each with a blue counter shelf, a lit sign box and a card reader on a post facing the driver's window.","description":"Ferry check in island 10 m long: three glazed booths on a raised kerb under a charcoal canopy on steel columns, each with a blue counter shelf, a lit sign box and a card reader on a post facing the driver's window. Overall 10.66 by 3.89 by 3.46 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the island's footprint, the driver's side of the booths toward +Z. Static building: the windows are fixed glazing and the barriers that go with it are separate models. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-04de3c87","cdnUrl":"https://cdn.3dassets.dev/assets/35637/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-04de3c87","thumbnailUrl":"https://cdn.3dassets.dev/assets/35637/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35637/v1/poster.webp","blurhash":"U6CQ0$.600xs9H_N-:D$009H%ht8~pDi9FWs","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":73992,"triangles":544,"vertices":1261,"meshes":8,"materials":8,"textures":1,"animations":[],"boundingBox":{"min":[-5.329999923706055,0.0002755857168469378,-1.7302532788616993],"max":[5.329999923706055,3.8897312417743253,1.7302532788616993]},"sizeMeters":[10.66,3.889,3.461],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:57.575Z","updatedAt":"2026-09-11T16:40:57.719Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35637/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheckInBoothRunThreeLanesFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35637/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35637/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35637/v1/model.glb\" alt=\"Check in booth run, three lanes (Ferry Terminal and Harbour Crossing)\" 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/35637/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/35637/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35638","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-dba29ac9","title":"Boarding barrier arm (Ferry Terminal and Harbour Crossing)","summary":"Lane barrier with a 3.4 m arm: a grey cabinet on a bolted plinth, a yellow and charcoal banded arm that lifts on its hinge, a red lamp on the head and a kerbside loop detector plate.","description":"Lane barrier with a 3.4 m arm: a grey cabinet on a bolted plinth, a yellow and charcoal banded arm that lifts on its hinge, a red lamp on the head and a kerbside loop detector plate. Overall 3.96 by 1.50 by 0.70 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the cabinet's footprint, the arm reaching toward +X across the lane at 0.95 m, which is where a car's bonnet meets it. The cabinet, the lamp and the detector plate are static; only the arm lifts. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-dba29ac9","cdnUrl":"https://cdn.3dassets.dev/assets/35638/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-dba29ac9","thumbnailUrl":"https://cdn.3dassets.dev/assets/35638/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35638/v1/poster.webp","blurhash":"UBAmh#~q-pxU?Fxat7t700IAM{NJ4rjdoJM|","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":58112,"triangles":156,"vertices":364,"meshes":12,"materials":7,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3499999940395355,-0.000008861485950584225,-0.3499999940395355],"max":[3.6099998569488525,1.4999997004028476,0.3499999940395355]},"sizeMeters":[3.96,1.5,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:57.590Z","updatedAt":"2026-09-11T16:40:57.795Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35638/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BoardingBarrierArmFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35638/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35638/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35638/v1/model.glb\" alt=\"Boarding barrier arm (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35638/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35638/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35640","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-47153d55","title":"Lane number gantry (Ferry Terminal and Harbour Crossing)","summary":"Overhead lane sign gantry 10.5 m wide and 5.4 m tall: a steel portal on concrete bases carrying three blue sign panels with lane numerals, a lit destination box between them and a maintenance walkway behind.","description":"Overhead lane sign gantry 10.5 m wide and 5.4 m tall: a steel portal on concrete bases carrying three blue sign panels with lane numerals, a lit destination box between them and a maintenance walkway behind. Overall 11.00 by 5.63 by 1.31 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the portal's footprint, the sign faces toward +Z. Static structure; the sign faces are abstract panels with lane numerals and carry no operator marks. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-47153d55","cdnUrl":"https://cdn.3dassets.dev/assets/35640/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-47153d55","thumbnailUrl":"https://cdn.3dassets.dev/assets/35640/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35640/v1/poster.webp","blurhash":"UDAm_4ogrp%2?w.9D$V?MIX9XUIADN-o%hR-","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":77792,"triangles":620,"vertices":1438,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-5.5,-0.0002372843914081324,-0.8100540000847215],"max":[5.5,5.6303881528319,0.500198370311594]},"sizeMeters":[11,5.631,1.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:57.906Z","updatedAt":"2026-09-11T16:40:58.001Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35640/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneNumberGantryFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35640/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35640/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35640/v1/model.glb\" alt=\"Lane number gantry (Ferry Terminal and Harbour Crossing)\" 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/35640/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/35640/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35639","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecec6cb2","title":"Lane traffic signal (Ferry Terminal and Harbour Crossing)","summary":"Cantilever traffic signal 5 m tall reaching 3.2 m over a lane: a grey column on a concrete base with a charcoal three aspect head over the lane, a second head at driver height and a blue lane plate.","description":"Cantilever traffic signal 5 m tall reaching 3.2 m over a lane: a grey column on a concrete base with a charcoal three aspect head over the lane, a second head at driver height and a blue lane plate. Overall 3.72 by 5.00 by 0.80 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the base, the signal heads facing +Z and the arm reaching toward +X. Static signal: the aspects are emissive faces, not lights, and nothing switches or moves. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecec6cb2","cdnUrl":"https://cdn.3dassets.dev/assets/35639/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecec6cb2","thumbnailUrl":"https://cdn.3dassets.dev/assets/35639/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35639/v1/poster.webp","blurhash":"U78||s~q0000_3Rj9FxuR7RjR*flo~-;jX4n","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":59776,"triangles":184,"vertices":427,"meshes":9,"materials":9,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.00001678145517161611,-0.4000000059604645],"max":[3.319999933242798,5,0.4000000059604645]},"sizeMeters":[3.72,5,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:40:57.838Z","updatedAt":"2026-09-11T16:40:57.942Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35639/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneTrafficSignalFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35639/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35639/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35639/v1/model.glb\" alt=\"Lane traffic signal (Ferry Terminal and Harbour Crossing)\" 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/35639/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/35639/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35642","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-b74868ad","title":"Weighbridge plate (Ferry Terminal and Harbour Crossing)","summary":"Flush mounted weighbridge 12 m by 3.4 m: a chequered steel deck in a concrete surround with yellow guide kerbs, four load cell covers and a grey readout cabinet with a lit display on the kerb.","description":"Flush mounted weighbridge 12 m by 3.4 m: a chequered steel deck in a concrete surround with yellow guide kerbs, four load cell covers and a grey readout cabinet with a lit display on the kerb. Overall 13.10 by 1.74 by 4.95 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the surround's footprint; the deck sits 0.06 m proud, which is what a vehicle drives up onto. Static installation: the deck does not deflect and the load cells are modelled solid. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-b74868ad","cdnUrl":"https://cdn.3dassets.dev/assets/35642/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-b74868ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/35642/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35642/v1/poster.webp","blurhash":"U8BDTfoh00oeIU?bt8D%00M_~pt7-=00M_?u","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":65728,"triangles":324,"vertices":756,"meshes":7,"materials":7,"textures":1,"animations":[],"boundingBox":{"min":[-6.5,-0.0003045760656749594,-2.1997283852656637],"max":[6.600051931136904,1.7399872138963925,2.7450128757917627]},"sizeMeters":[13.1,1.74,4.945],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:00.478Z","updatedAt":"2026-09-11T16:41:00.605Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35642/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeighbridgePlateFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35642/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35642/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35642/v1/model.glb\" alt=\"Weighbridge plate (Ferry Terminal and Harbour Crossing)\" 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/35642/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/35642/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35641","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-121cac7e","title":"Wheel chocks and lashing set (Ferry Terminal and Harbour Crossing)","summary":"Deck securing set on a steel stillage: four yellow wheel chocks, a stack of charcoal ratchet lashings with their hooks, a chain bundle and a red hazard plate, for lashing freight on a ship's vehicle deck.","description":"Deck securing set on a steel stillage: four yellow wheel chocks, a stack of charcoal ratchet lashings with their hooks, a chain bundle and a red hazard plate, for lashing freight on a ship's vehicle deck. Overall 1.50 by 0.99 by 0.93 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the stillage's footprint, the open face toward +Z. The webbing, the chains and the hooks are modelled solid in one coiled pose: they are soft bodies and there is no skinning in this library. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-121cac7e","cdnUrl":"https://cdn.3dassets.dev/assets/35641/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-121cac7e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35641/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35641/v1/poster.webp","blurhash":"UCF5]R~6005G?R-:N3D,019wV=-NDvIEs$x,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":16232,"triangles":300,"vertices":669,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,-0.00003365142506883689,-0.45004119998779263],"max":[0.75,0.9899636771841765,0.4749845812612721]},"sizeMeters":[1.5,0.99,0.925],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:00.464Z","updatedAt":"2026-09-11T16:41:00.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35641/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WheelChocksAndLashingSetFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35641/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35641/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35641/v1/model.glb\" alt=\"Wheel chocks and lashing set (Ferry Terminal and Harbour Crossing)\" 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/35641/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/35641/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35643","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-893f2862","title":"Marshalling staff hut (Ferry Terminal and Harbour Crossing)","summary":"Yard supervisor's cabin 2.6 m square: a grey clad box on a steel skid with a glazed front, a blue door with a step, a hi vis yellow band round the eaves, a small canopy and a radio aerial.","description":"Yard supervisor's cabin 2.6 m square: a grey clad box on a steel skid with a glazed front, a blue door with a step, a hi vis yellow band round the eaves, a small canopy and a radio aerial. Overall 2.88 by 3.93 by 3.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the skid's footprint, the glazed front toward +Z. Static building; the door is modelled shut because the cabin has no interior. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-893f2862","cdnUrl":"https://cdn.3dassets.dev/assets/35643/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-893f2862","thumbnailUrl":"https://cdn.3dassets.dev/assets/35643/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35643/v1/poster.webp","blurhash":"U8BWrYof00Mx00RQ.8%M00t6tRR,?wofi^ad","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":59468,"triangles":168,"vertices":393,"meshes":8,"materials":8,"textures":1,"animations":[],"boundingBox":{"min":[-1.380085236545914,-0.000019536018971866298,-1.4299999475479126],"max":[1.5000852413142856,3.930000066757202,2.0999999046325684]},"sizeMeters":[2.88,3.93,3.53],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:00.702Z","updatedAt":"2026-09-11T16:41:00.831Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35643/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarshallingStaffHutFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35643/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35643/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35643/v1/model.glb\" alt=\"Marshalling staff hut (Ferry Terminal and Harbour Crossing)\" 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/35643/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/35643/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35644","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-cd771a06","title":"Family car (Ferry Terminal and Harbour Crossing)","summary":"Five door family hatchback 4.3 m long in silver, for the marshalling lanes and the ship's vehicle deck: glazed cabin with charcoal pillars and mirrors, charcoal bumpers and sills, lamps front and rear, and four wheels that roll.","description":"Five door family hatchback 4.3 m long in silver, for the marshalling lanes and the ship's vehicle deck: glazed cabin with charcoal pillars and mirrors, charcoal bumpers and sills, lamps front and rear, and four wheels that roll. Overall 1.90 by 1.56 by 4.42 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the car's footprint, the front toward +Z. Only the wheels turn: the doors, bonnet, boot and steering are modelled solid, because each would need its own node and a car in a marshalling lane is read at a distance. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-cd771a06","cdnUrl":"https://cdn.3dassets.dev/assets/35644/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-cd771a06","thumbnailUrl":"https://cdn.3dassets.dev/assets/35644/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35644/v1/poster.webp","blurhash":"UCE3C+-;00IU~qIU9Ft7009F?bxu00?b?bRj","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":22772,"triangles":604,"vertices":1324,"meshes":12,"materials":6,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-0.9499756015900177,-4.291534422273813e-8,-2.2100000381469727],"max":[0.9499756015900177,1.5649503783188745,2.2100000381469727]},"sizeMeters":[1.9,1.565,4.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:00.718Z","updatedAt":"2026-09-11T16:41:00.932Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35644/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FamilyCarFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35644/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35644/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35644/v1/model.glb\" alt=\"Family car (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35644/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35644/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35645","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-cbe0437b","title":"Family car, blue (Ferry Terminal and Harbour Crossing)","summary":"The same 4.3 m family hatchback in deep blue, so a queue of cars in a marshalling lane is not all one colour. Identical body, glazing and rolling wheels.","description":"The same 4.3 m family hatchback in deep blue, so a queue of cars in a marshalling lane is not all one colour. Identical body, glazing and rolling wheels. Overall 1.90 by 1.56 by 4.42 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Only the wheels turn: the doors, bonnet, boot and steering are modelled solid, because each would need its own node and a car in a marshalling lane is read at a distance. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-cbe0437b","cdnUrl":"https://cdn.3dassets.dev/assets/35645/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-cbe0437b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35645/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35645/v1/poster.webp","blurhash":"UA8Y3k%hD4ROyZMxMctR00MctmkqHX%hyEaK","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":22912,"triangles":604,"vertices":1324,"meshes":13,"materials":7,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-0.9499756015900177,-4.291534422273813e-8,-2.2100000381469727],"max":[0.9499756015900177,1.5650156931057184,2.2100000381469727]},"sizeMeters":[1.9,1.565,4.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:03.318Z","updatedAt":"2026-09-11T16:41:03.437Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35645/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FamilyCarBlueFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35645/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35645/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35645/v1/model.glb\" alt=\"Family car, blue (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35645/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35645/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35646","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-637d23cb","title":"Panel van (Ferry Terminal and Harbour Crossing)","summary":"Medium panel van 5.4 m long and 2.5 m tall in white with a blue flank band: a glazed cab, a high sided body with a sliding side door line and twin rear doors, charcoal bumpers and four wheels that roll.","description":"Medium panel van 5.4 m long and 2.5 m tall in white with a blue flank band: a glazed cab, a high sided body with a sliding side door line and twin rear doors, charcoal bumpers and four wheels that roll. Overall 2.30 by 2.50 by 5.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the van's footprint, the front toward +Z. Only the wheels turn: the side and rear doors are modelled as panel lines in a solid body, because a van in a ferry queue is read from outside. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-637d23cb","cdnUrl":"https://cdn.3dassets.dev/assets/35646/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-637d23cb","thumbnailUrl":"https://cdn.3dassets.dev/assets/35646/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35646/v1/poster.webp","blurhash":"UPGIr^%MDioz~qIUIUxu009FWBxu9FtQt7of","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":25400,"triangles":560,"vertices":1240,"meshes":11,"materials":7,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-1.150065151067708,-5.483627318891848e-8,-2.7699999809265137],"max":[1.150065151067708,2.5001365905638693,2.759999990463257]},"sizeMeters":[2.3,2.5,5.53],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:03.336Z","updatedAt":"2026-09-11T16:41:03.451Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35646/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PanelVanFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35646/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35646/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35646/v1/model.glb\" alt=\"Panel van (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35646/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35646/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35648","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-943d578c","title":"Lorry tractor cab (Ferry Terminal and Harbour Crossing)","summary":"Sleeper tractor unit 6.2 m long and 3.6 m tall in red: a cab over engine with a deep windscreen, a roof deflector, a charcoal chassis with the fifth wheel plate, catwalk, tanks, exhaust stack and six wheels that roll.","description":"Sleeper tractor unit 6.2 m long and 3.6 m tall in red: a cab over engine with a deep windscreen, a roof deflector, a charcoal chassis with the fifth wheel plate, catwalk, tanks, exhaust stack and six wheels that roll. Overall 2.74 by 4.10 by 6.47 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the unit's footprint, the front toward +Z, the fifth wheel plate at 1.15 m over the rear axles. Only the wheels turn: the cab does not tilt, the doors are panel lines and the air lines behind the cab are modelled solid. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-943d578c","cdnUrl":"https://cdn.3dassets.dev/assets/35648/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-943d578c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35648/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35648/v1/poster.webp","blurhash":"UJCrf:}[9t9ut7kCRjRP0LAC-BwIM{aKxuxu","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":26988,"triangles":716,"vertices":1565,"meshes":15,"materials":6,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-1.3701353597186958,-1.0728836041806744e-8,-3.2200000405311586],"max":[1.3701353597186958,4.100012638278959,3.25]},"sizeMeters":[2.74,4.1,6.47],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:03.607Z","updatedAt":"2026-09-11T16:41:03.761Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35648/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LorryTractorCabFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35648/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35648/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35648/v1/model.glb\" alt=\"Lorry tractor cab (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35648/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35648/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35647","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-31435dc5","title":"Freight box trailer (Ferry Terminal and Harbour Crossing)","summary":"Box semi trailer 13.6 m long and 4.0 m tall: a white body on a charcoal chassis with a blue lower band, ribbed side panels, twin rear doors with their locking bars, landing legs, a kingpin plate and four wheels on the rear bogie.","description":"Box semi trailer 13.6 m long and 4.0 m tall: a white body on a charcoal chassis with a blue lower band, ribbed side panels, twin rear doors with their locking bars, landing legs, a kingpin plate and four wheels on the rear bogie. Overall 2.63 by 4.01 by 13.64 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the trailer's footprint, the kingpin end toward +Z at 1.15 m, so it couples to the tractor unit's fifth wheel. Only the bogie wheels turn: the rear doors, the landing legs and the suspension are modelled solid, because the doors of a loaded trailer in a ferry queue are shut. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-31435dc5","cdnUrl":"https://cdn.3dassets.dev/assets/35647/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-31435dc5","thumbnailUrl":"https://cdn.3dassets.dev/assets/35647/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35647/v1/poster.webp","blurhash":"UAATsD%MRjxu-;9ERjoz009FxuRjIV_N%MWB","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"},{"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":37452,"triangles":916,"vertices":2052,"meshes":13,"materials":6,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-1.3145884450319378,-0.0003371778018932403,-6.940000057220459],"max":[1.3145884450319378,4.009976442970471,6.699999809265137]},"sizeMeters":[2.629,4.01,13.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:03.610Z","updatedAt":"2026-09-11T16:41:03.743Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35647/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FreightBoxTrailerFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35647/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35647/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35647/v1/model.glb\" alt=\"Freight box trailer (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35647/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35647/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35649","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecb38e85","title":"Terminal facade bay, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Glazed terminal facade module 4 m wide and 3.6 m to the eaves: a concrete cill, full height glazing in charcoal mullions, a blue spandrel band under a grey head and a steel eaves flashing. Ports at both ends so a frontage repeats.","description":"Glazed terminal facade module 4 m wide and 3.6 m to the eaves: a concrete cill, full height glazing in charcoal mullions, a blue spandrel band under a grey head and a steel eaves flashing. Ports at both ends so a frontage repeats. Overall 4.12 by 3.74 by 0.44 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the bay's footprint with the wall plane on z=0 and the outside toward +Z, so bays lay out at 4 m centres and meet at the mullions. Static modular piece; the glazing is fixed and the opening bay is a separate variant. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecb38e85","cdnUrl":"https://cdn.3dassets.dev/assets/35649/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-ecb38e85","thumbnailUrl":"https://cdn.3dassets.dev/assets/35649/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35649/v1/poster.webp","blurhash":"UFFY=S%M00M{bw%NocD%00Rj~qxa-o%MNGM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":55972,"triangles":120,"vertices":280,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-2.059999942779541,-0.00006805389194569633,-0.22003844720994883],"max":[2.059999942779541,3.7399093151696454,0.22003844720994883]},"sizeMeters":[4.12,3.74,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:06.217Z","updatedAt":"2026-09-11T16:41:06.318Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35649/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalFacadeBay4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35649/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35649/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35649/v1/model.glb\" alt=\"Terminal facade bay, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35649/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/35649/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35650","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-0b61275b","title":"Terminal entrance bay with sliding doors (Ferry Terminal and Harbour Crossing)","summary":"The same 4 m facade module as an entrance: a 2.4 m opening with two glazed leaves that slide apart into the side glazing, a charcoal head box with the operator above them and a yellow threshold strip in the floor.","description":"The same 4 m facade module as an entrance: a 2.4 m opening with two glazed leaves that slide apart into the side glazing, a charcoal head box with the operator above them and a yellow threshold strip in the floor. Overall 4.12 by 3.74 by 0.44 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the bay's footprint with the wall plane on z=0 and the outside toward +Z. The frame, the head box and the side glazing are static; only the two leaves slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-0b61275b","cdnUrl":"https://cdn.3dassets.dev/assets/35650/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-0b61275b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35650/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35650/v1/poster.webp","blurhash":"UEF6IM%M00M{Nz%NxZD%00M|~q%2^*-;D*M{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":61428,"triangles":192,"vertices":448,"meshes":13,"materials":7,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-2.059999942779541,-0.00006805389194569633,-0.22003844720994883],"max":[2.059999942779541,3.7399093151696454,0.22003844720994883]},"sizeMeters":[4.12,3.74,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:06.330Z","updatedAt":"2026-09-11T16:41:06.459Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35650/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function TerminalEntranceBayWithSlidingDoorsFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35650/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35650/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35650/v1/model.glb\" alt=\"Terminal entrance bay with sliding doors (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35650/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35650/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35651","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-38994e26","title":"Terminal roof section, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Flat terminal roof cassette 4 m square and 0.42 m deep: a steel deck on charcoal ribs with a grey upstand, a blue fascia band and a rooflight, for roofing a concourse built from facade bays.","description":"Flat terminal roof cassette 4 m square and 0.42 m deep: a steel deck on charcoal ribs with a grey upstand, a blue fascia band and a rooflight, for roofing a concourse built from facade bays. Overall 4.14 by 0.60 by 4.04 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the cassette's underside, so a section is placed at the bay eaves height of 3.6 m and repeats at 4 m centres. Static modular piece; the rooflight is a fixed panel. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-38994e26","cdnUrl":"https://cdn.3dassets.dev/assets/35651/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-38994e26","thumbnailUrl":"https://cdn.3dassets.dev/assets/35651/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35651/v1/poster.webp","blurhash":"U7B:?N?G00I=?at8M|V@00IV~qjE01ROxaSi","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":11100,"triangles":156,"vertices":364,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2.069999933242798,-0.00010070959115467126,-2.0199666696810348],"max":[2.069999933242798,0.5999069364274916,2.0199666696810348]},"sizeMeters":[4.14,0.6,4.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:06.481Z","updatedAt":"2026-09-11T16:41:06.598Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35651/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalRoofSection4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35651/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35651/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35651/v1/model.glb\" alt=\"Terminal roof section, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35651/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/35651/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35652","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-f6740c7d","title":"Foot passenger check in desk run (Ferry Terminal and Harbour Crossing)","summary":"Three position check in counter 6 m long: a blue fronted desk with a pale worktop, screens and card readers on each position, a grey back gantry with lit position panels and a charcoal kick rail.","description":"Three position check in counter 6 m long: a blue fronted desk with a pale worktop, screens and card readers on each position, a grey back gantry with lit position panels and a charcoal kick rail. Overall 6.20 by 3.30 by 1.57 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the desk's footprint, the passenger side toward +Z. Static fitting: the drawers and the screens are modelled solid and nothing opens. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f6740c7d","cdnUrl":"https://cdn.3dassets.dev/assets/35652/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f6740c7d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35652/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35652/v1/poster.webp","blurhash":"U6Dc,fS%00Nx~7~qD+Dh00VWV=D*pMt.9EDh","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21308,"triangles":372,"vertices":863,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-3.0999999046325684,-0.0002075020225791313,-0.9798843417036202],"max":[3.0999999046325684,3.300141836462755,0.5898147440725302]},"sizeMeters":[6.2,3.3,1.57],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:06.472Z","updatedAt":"2026-09-11T16:41:06.582Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35652/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FootPassengerCheckInDeskRunFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35652/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35652/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35652/v1/model.glb\" alt=\"Foot passenger check in desk run (Ferry Terminal and Harbour Crossing)\" 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/35652/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/35652/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35653","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-f29e8c88","title":"Terminal seating bank, 2 m (Ferry Terminal and Harbour Crossing)","summary":"Four seat waiting bank 2 m long: blue moulded shells with charcoal arms on a steel beam and two feet, with a shared charcoal parcel shelf underneath. Ports at both ends so a row runs the length of a concourse.","description":"Four seat waiting bank 2 m long: blue moulded shells with charcoal arms on a steel beam and two feet, with a shared charcoal parcel shelf underneath. Ports at both ends so a row runs the length of a concourse. Overall 2.06 by 0.99 by 0.60 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the bank's footprint, the seats facing +Z. Static fitting; the seats are fixed shells, not tip up. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f29e8c88","cdnUrl":"https://cdn.3dassets.dev/assets/35653/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f29e8c88","thumbnailUrl":"https://cdn.3dassets.dev/assets/35653/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35653/v1/poster.webp","blurhash":"UF8=WwofMIxtu6x^R4R48wXUkXR4QkRio}j[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11736,"triangles":204,"vertices":468,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0299999713897705,0.0000024361163400432595,-0.2999664296395764],"max":[1.0299999713897705,0.9923707878134505,0.2999664296395764]},"sizeMeters":[2.06,0.992,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:09.071Z","updatedAt":"2026-09-11T16:41:09.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35653/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalSeatingBank2MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35653/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35653/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35653/v1/model.glb\" alt=\"Terminal seating bank, 2 m (Ferry Terminal and Harbour Crossing)\" 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/35653/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/35653/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35654","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-43678710","title":"Sailings departure board (Ferry Terminal and Harbour Crossing)","summary":"Freestanding sailings board 2.6 m wide and 2.8 m tall: a charcoal case on two steel legs with lit rows behind glass, a blue header band and a row of split flaps along the bottom that tilts as the board updates.","description":"Freestanding sailings board 2.6 m wide and 2.8 m tall: a charcoal case on two steel legs with lit rows behind glass, a blue header band and a row of split flaps along the bottom that tilts as the board updates. Overall 2.62 by 2.82 by 0.70 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the stand's footprint, the board face toward +Z. The case, the rows and the legs are static: only the bottom flap row tilts, because a real split flap display is hundreds of independent leaves and each would need its own node. Rigid node-transform clips: tilt. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-43678710","cdnUrl":"https://cdn.3dassets.dev/assets/35654/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-43678710","thumbnailUrl":"https://cdn.3dassets.dev/assets/35654/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35654/v1/poster.webp","blurhash":"U7BD]2?v008_CTx^+sI99HS%%zwHMcx^yDI9","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64900,"triangles":316,"vertices":734,"meshes":15,"materials":6,"textures":1,"animations":["tilt"],"boundingBox":{"min":[-1.309999942779541,0.00004730335205031799,-0.3499710150014151],"max":[1.309999942779541,2.8199169492904916,0.3499710150014151]},"sizeMeters":[2.62,2.82,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:09.364Z","updatedAt":"2026-09-11T16:41:09.457Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35654/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SailingsDepartureBoardFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35654/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35654/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35654/v1/model.glb\" alt=\"Sailings departure board (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35654/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35654/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35656","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e7835e9","title":"Terminal kiosk and cafe counter (Ferry Terminal and Harbour Crossing)","summary":"Concourse kiosk 3.2 m wide: a red fronted counter with a pale top, a coffee machine and a display case, a grey back unit with shelves of stock, a lit menu board and a charcoal canopy on two posts.","description":"Concourse kiosk 3.2 m wide: a red fronted counter with a pale top, a coffee machine and a display case, a grey back unit with shelves of stock, a lit menu board and a charcoal canopy on two posts. Overall 3.40 by 2.75 by 2.02 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the kiosk's footprint, the serving side toward +Z. Static fitting: the machine, the case and the stock are modelled solid and nothing opens. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e7835e9","cdnUrl":"https://cdn.3dassets.dev/assets/35656/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-3e7835e9","thumbnailUrl":"https://cdn.3dassets.dev/assets/35656/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35656/v1/poster.webp","blurhash":"UFEVNiRO0KX85;%M+]Io00T0xu$g}@rrEgJ,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19856,"triangles":340,"vertices":790,"meshes":9,"materials":9,"textures":0,"animations":[],"boundingBox":{"min":[-1.7000000476837158,-0.000008129500912112952,-0.8750083907275858],"max":[1.7000000476837158,2.7499620410063086,1.1499496591838057]},"sizeMeters":[3.4,2.75,2.025],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:09.402Z","updatedAt":"2026-09-11T16:41:09.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35656/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalKioskAndCafeCounterFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35656/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35656/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35656/v1/model.glb\" alt=\"Terminal kiosk and cafe counter (Ferry Terminal and Harbour Crossing)\" 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/35656/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/35656/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35655","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-15731e59","title":"Passenger luggage trolley (Ferry Terminal and Harbour Crossing)","summary":"Nesting luggage trolley 1.1 m long: a steel basket on a charcoal frame with a red handle bar and a blue information plate, on four castors that roll.","description":"Nesting luggage trolley 1.1 m long: a steel basket on a charcoal frame with a red handle bar and a blue information plate, on four castors that roll. Overall 0.77 by 0.98 by 1.04 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the trolley's footprint, the handle toward -Z. Only the castors turn: the basket, the frame and the handle are one welded piece. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-15731e59","cdnUrl":"https://cdn.3dassets.dev/assets/35655/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-15731e59","thumbnailUrl":"https://cdn.3dassets.dev/assets/35655/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35655/v1/poster.webp","blurhash":"UDBf@RNa4m%M~DELIU-p4TE1o}xaZ$ShS#r?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19448,"triangles":520,"vertices":1128,"meshes":12,"materials":5,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-0.385009764592692,-3.5762786898541066e-9,-0.46499069505822077],"max":[0.385009764592692,0.980013140463853,0.574999988079071]},"sizeMeters":[0.77,0.98,1.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:09.390Z","updatedAt":"2026-09-11T16:41:09.510Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35655/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PassengerLuggageTrolleyFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35655/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35655/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35655/v1/model.glb\" alt=\"Passenger luggage trolley (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35655/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35655/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35657","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-14f419ff","title":"Luggage rack with cases (Ferry Terminal and Harbour Crossing)","summary":"Two tier luggage rack 2 m long: a steel frame with charcoal slatted shelves holding four hard cases in blue, red and grey, for the foot passenger lounge or the ship's stair lobby.","description":"Two tier luggage rack 2 m long: a steel frame with charcoal slatted shelves holding four hard cases in blue, red and grey, for the foot passenger lounge or the ship's stair lobby. Overall 2.00 by 1.53 by 0.67 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the rack's footprint, the open face toward +Z. Static prop; the cases are part of the model and the handles do not extend. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-14f419ff","cdnUrl":"https://cdn.3dassets.dev/assets/35657/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-14f419ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/35657/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35657/v1/poster.webp","blurhash":"UAATi;kD00x@_4%MITMx9EoJwzRkxYs.IoW=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15288,"triangles":264,"vertices":616,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000007491339936382957,-0.3350016785180212],"max":[1,1.530007462729707,0.3350016785180212]},"sizeMeters":[2,1.53,0.67],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:11.967Z","updatedAt":"2026-09-11T16:41:12.072Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35657/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LuggageRackWithCasesFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35657/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35657/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35657/v1/model.glb\" alt=\"Luggage rack with cases (Ferry Terminal and Harbour Crossing)\" 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/35657/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/35657/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35658","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-e735476e","title":"Boarding ticket gate (Ferry Terminal and Harbour Crossing)","summary":"Single width boarding gate 1.4 m across: two grey pedestals with charcoal tops, blue scanner plates and green pass lamps, and a pair of glazed leaves that slide back into the pedestals.","description":"Single width boarding gate 1.4 m across: two grey pedestals with charcoal tops, blue scanner plates and green pass lamps, and a pair of glazed leaves that slide back into the pedestals. Overall 1.90 by 1.09 by 1.60 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the gate's footprint, passengers passing toward +Z. The pedestals, the scanners and the lamps are static; only the two glass leaves slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-e735476e","cdnUrl":"https://cdn.3dassets.dev/assets/35658/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-e735476e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35658/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35658/v1/poster.webp","blurhash":"U8D9;q-;00Mx01t7%2RP00M{Rjad~pa#j]WX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":59756,"triangles":180,"vertices":420,"meshes":9,"materials":6,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.949999988079071,0.000018297081576856833,-0.8000503455013266],"max":[0.949999988079071,1.095039564609222,0.8000503455013266]},"sizeMeters":[1.9,1.095,1.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:12.188Z","updatedAt":"2026-09-11T16:41:12.308Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35658/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BoardingTicketGateFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35658/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35658/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35658/v1/model.glb\" alt=\"Boarding ticket gate (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35658/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35658/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35659","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-6ff47c6b","title":"Terminal toilets door module (Ferry Terminal and Harbour Crossing)","summary":"Washroom entrance module 2.6 m wide and 3 m tall: a grey lined wall with two charcoal doors that swing, blue pictogram plates over them, a lit sign box above and a yellow cleaning in progress board beside.","description":"Washroom entrance module 2.6 m wide and 3 m tall: a grey lined wall with two charcoal doors that swing, blue pictogram plates over them, a lit sign box above and a yellow cleaning in progress board beside. Overall 2.74 by 3.00 by 0.75 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the module's footprint with the wall plane on z=0 and the concourse side toward +Z. The wall, the signs and the frames are static; only the two doors swing. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6ff47c6b","cdnUrl":"https://cdn.3dassets.dev/assets/35659/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-6ff47c6b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35659/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35659/v1/poster.webp","blurhash":"U7BDf?IV00?YyG^*Mb02DgkEo$ab8{t6-;IV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14004,"triangles":192,"vertices":450,"meshes":10,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.3399473502361134,0,-0.15002794078312684],"max":[1.3999752442451925,3.001199960708618,0.5999786492959986]},"sizeMeters":[2.74,3.001,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:12.203Z","updatedAt":"2026-09-11T16:41:12.329Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35659/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function TerminalToiletsDoorModuleFerryTerminalAndHarbourCrossing(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35659/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35659/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35659/v1/model.glb\" alt=\"Terminal toilets door module (Ferry Terminal and Harbour Crossing)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35659/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/35659/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35660","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-f4e1921c","title":"Terminal lift and stair core (Ferry Terminal and Harbour Crossing)","summary":"Two storey circulation core 3.4 m square and 5.2 m tall: a glazed lift shaft with a charcoal car and blue call panels, a steel dogleg stair with a landing and handrails, and a grey machine housing on top.","description":"Two storey circulation core 3.4 m square and 5.2 m tall: a glazed lift shaft with a charcoal car and blue call panels, a steel dogleg stair with a landing and handrails, and a grey machine housing on top. Overall 3.40 by 5.40 by 3.60 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the core's footprint, the lift doors and the stair foot toward +Z. Static building: the lift car is modelled solid in the lower position and its doors are fixed, because a shaft, a car and two door leaves are four nodes for a piece read from outside. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f4e1921c","cdnUrl":"https://cdn.3dassets.dev/assets/35660/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-f4e1921c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35660/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35660/v1/poster.webp","blurhash":"U5D,Dy?b00Di?cxv8_D%4T%Mtl0J4nt7_NMx","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":72804,"triangles":504,"vertices":1181,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.7001312674885922,0,-1.7000000476837158],"max":[1.7000774427551255,5.400000095367432,1.8998656041778528]},"sizeMeters":[3.4,5.4,3.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:12.232Z","updatedAt":"2026-09-11T16:41:12.347Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35660/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalLiftAndStairCoreFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35660/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35660/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35660/v1/model.glb\" alt=\"Terminal lift and stair core (Ferry Terminal and Harbour Crossing)\" 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/35660/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/35660/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35661","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-dda4c631","title":"Covered foot passenger walkway, 4 m (Ferry Terminal and Harbour Crossing)","summary":"Covered walkway section 4 m long and 2.6 m wide: a steel deck 0.24 m up with a yellow edge strip, handrails on both sides, four posts and a charcoal canopy with a blue fascia. Ports at both ends so a run reaches from a terminal to a gangway tower.","description":"Covered walkway section 4 m long and 2.6 m wide: a steel deck 0.24 m up with a yellow edge strip, handrails on both sides, four posts and a charcoal canopy with a blue fascia. Ports at both ends so a run reaches from a terminal to a gangway tower. Overall 3.02 by 3.28 by 4.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the section's footprint, the run along Z, so sections lay out at 4 m centres. Static modular piece. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-dda4c631","cdnUrl":"https://cdn.3dassets.dev/assets/35661/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-dda4c631","thumbnailUrl":"https://cdn.3dassets.dev/assets/35661/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35661/v1/poster.webp","blurhash":"UBCZqw%200aeD,R5%Mxa8_ogNGM_~pR*D$x[","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"},{"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":18464,"triangles":360,"vertices":830,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.509994811853389,-0.000055186050064159886,-2],"max":[1.509994811853389,3.280070535903862,2]},"sizeMeters":[3.02,3.28,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:14.746Z","updatedAt":"2026-09-11T16:41:14.849Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35661/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoveredFootPassengerWalkway4MFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35661/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35661/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35661/v1/model.glb\" alt=\"Covered foot passenger walkway, 4 m (Ferry Terminal and Harbour Crossing)\" 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/35661/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/35661/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35662","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-4f8d77f5","title":"Wayfinding totem (Ferry Terminal and Harbour Crossing)","summary":"Double sided wayfinding totem 2.6 m tall: a blue panel on a charcoal plinth with cream direction bands and abstract arrow blocks, a lit strip at the head and a steel edge frame, for the concourse and the marshalling yard.","description":"Double sided wayfinding totem 2.6 m tall: a blue panel on a charcoal plinth with cream direction bands and abstract arrow blocks, a lit strip at the head and a steel edge frame, for the concourse and the marshalling yard. Overall 0.90 by 2.56 by 0.44 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin is the centre of the plinth, the main face toward +Z. Static sign; the faces are abstract bands and arrows with no operator or destination marks. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no operator, shipping line, port authority or maker marks anywhere, and every livery and sign face is invented.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-4f8d77f5","cdnUrl":"https://cdn.3dassets.dev/assets/35662/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-4f8d77f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/35662/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35662/v1/poster.webp","blurhash":"U67xqGx|009D_Noh4nRNz,W7PDtU-;kBITV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"exterior","title":"Exterior"},{"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":11336,"triangles":192,"vertices":424,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.00001709069599073465,-0.21996672899754266],"max":[0.44999998807907104,2.5599987608514687,0.21996672899754266]},"sizeMeters":[0.9,2.56,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:15.132Z","updatedAt":"2026-09-11T16:41:15.239Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35662/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WayfindingTotemFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35662/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35662/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35662/v1/model.glb\" alt=\"Wayfinding totem (Ferry Terminal and Harbour Crossing)\" 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/35662/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/35662/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35663","slug":"ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","title":"Ferry terminal at loading time (Ferry Terminal and Harbour Crossing)","summary":"A roll on roll off ferry terminal working a sailing: the ship lies astern of the linkspan with its stern ramp over the bridge deck, held off the quay by breasting dolphins and fender panels, and a car is already on the span. Behind it two shore ramps climb from the...","description":"A roll on roll off ferry terminal working a sailing: the ship lies astern of the linkspan with its stern ramp over the bridge deck, held off the quay by breasting dolphins and fender panels, and a car is already on the span. Behind it two shore ramps climb from the marshalling yard, where cars, a van and an articulated lorry queue in painted lanes between the check in booths, the barrier arms, the weighbridge and the lane number gantry. The passenger terminal alongside is built from glazed facade bays with its check in desks, seating, sailings board, kiosk and ticket gates inside, and the covered walkway runs from its entrance doors to the gangway tower on the quay. The roof is left off the front half of the concourse so it can be read from above.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35663/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferr-05f91843-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35663/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35663/v1/poster.webp","blurhash":"U89%^*%g00IoDhIAb0x]00WB^+s9.T.8xsIn","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":722644,"triangles":14296,"vertices":32495,"meshes":320,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-16.220038447209948,-0.12006042798986698,-13.169999980926514],"max":[16,14.880073184689383,43]},"sizeMeters":[32.22,15,56.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:15.171Z","updatedAt":"2026-09-11T16:41:15.277Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35663/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FerryTerminalAtLoadingTimeFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35663/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35663/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35663/v1/model.glb\" alt=\"Ferry terminal at loading time (Ferry Terminal and Harbour Crossing)\" 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/35663/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/35663/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35664","slug":"ferry-terminal-and-harbour-crossing-ferry-terminal-and-1dd08896","title":"Check in and marshalling lanes (Ferry Terminal and Harbour Crossing)","summary":"The land side of the same terminal, closer in: three lanes of painted tiles running up to the check in booths, the barrier arms down and the lane numbers overhead, with two cars, a van and a tractor unit waiting their turn and the supervisor's hut on the kerb.","description":"The land side of the same terminal, closer in: three lanes of painted tiles running up to the check in booths, the barrier arms down and the lane numbers overhead, with two cars, a van and a tractor unit waiting their turn and the supervisor's hut on the kerb.","status":"published","url":"https://3dassets.dev/assets/ferry-terminal-and-harbour-crossing-ferry-terminal-and-1dd08896","cdnUrl":"https://cdn.3dassets.dev/assets/35664/v1/model.glb","downloadUrl":"https://3dassets.dev/download/ferry-terminal-and-harbour-crossing-ferry-terminal-and-1dd08896","thumbnailUrl":"https://cdn.3dassets.dev/assets/35664/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35664/v1/poster.webp","blurhash":"U6B3]AE000^kNKM_t6tS00w}_NJ.?Gx^IUnM","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":254584,"triangles":4780,"vertices":10725,"meshes":109,"materials":11,"textures":1,"animations":[],"boundingBox":{"min":[-4.15,-0.12006042798986698,-8],"max":[8.380085236545915,5.6303881528319,4.941696882247925]},"sizeMeters":[12.53,5.75,12.942],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T16:41:15.654Z","updatedAt":"2026-09-11T16:41:15.746Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35664/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheckInAndMarshallingLanesFerryTerminalAndHarbourCrossing(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35664/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35664/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35664/v1/model.glb\" alt=\"Check in and marshalling lanes (Ferry Terminal and Harbour Crossing)\" 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/35664/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/35664/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"ferry-terminal-and-harbour-crossing","title":"Ferry Terminal and Harbour Crossing","url":"https://3dassets.dev/demos/ferry-terminal-and-harbour-crossing"}}}