{"data":{"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."}}}