{"data":{"id":"37971","slug":"shipyard-and-dry-dock-shipyard-and-dry-d-68bbd49e-starter-scene","title":"Graving dock with a hull in three sections (Shipyard and Dry Dock)","summary":"A working shipyard seen from its dock side: a 16 m graving dock pumped dry, its stepped altar walls running back to the head and its steel gate caisson closed against the basin. A hull sits on the blocks in it, made up of a stern module with its rudder and propeller drawn and...","description":"A working shipyard seen from its dock side: a 16 m graving dock pumped dry, its stepped altar walls running back to the head and its steel gate caisson closed against the basin. A hull sits on the blocks in it, made up of a stern module with its rudder and propeller drawn and stood beside it, a parallel midbody and a bulbous bow, with shores wedged to the dock sides, staging towers and scaffold runs along the plating and an access stair down to the bottom. A portal gantry strides the dock on rails, a pillar jib crane works the quay and a crawler crane stands on the east apron beside the fabrication shed, which is roofed at its ends and holds the plate roller, press brake, cutting table, welding bay, grinder and benches under its own travelling crane. Plate stacks, racks, gas, air, power and blasting plant fill the apron between them, the yard cabins and the store stand on the west side, and a work boat waits on its cradle by the slipway while a tug lies off the gate.","status":"published","url":"https://3dassets.dev/assets/shipyard-and-dry-dock-shipyard-and-dry-d-68bbd49e-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37971/v1/model.glb","downloadUrl":"https://3dassets.dev/download/shipyard-and-dry-dock-shipyard-and-dry-d-68bbd49e-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/37971/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37971/v1/poster.webp","blurhash":"U5A^Uax]00ITV@RPIUW=00sm~paf-;%h%goH","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":1207584,"triangles":23630,"vertices":53610,"meshes":377,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-19,-6.200100709591155,-26],"max":[22.001199960708618,16.999935940936243,30.30015256971182]},"sizeMeters":[41.001,23.2,56.3],"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-12T06:06:14.113Z","updatedAt":"2026-09-12T06:06:14.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37971/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GravingDockWithAHullInThreeSectionsShipyardAndDryDock(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37971/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37971/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37971/v1/model.glb\" alt=\"Graving dock with a hull in three sections (Shipyard and Dry Dock)\" 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/37971/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/37971/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}}