{"data":{"id":282,"slug":"parcel-depot-and-sorting-hall","title":"Parcel Depot and Sorting Hall","summary":"A working parcel courier depot: ported belt, roller and incline conveyors, scanner, weigh and diverter stations, chutes, cages and parcels, delivery vans and a trailer at the dock, a forklift, and the hall, mezzanine office and staff kit around them.","description":"A complete modern parcel hub in one coherent realistic family, built so a developer can assemble a sorting depot rather than dress one. The conveyor system is modular on a 2 m grid with its belt top at 0.76 m: straights, a long straight, a 90 degree curve, a cleated incline, a gravity roller bed, a scanner arch, a weigh and dimension station and diverter units whose side port lands a sorting chute and bag frame exactly under the discharge, all proven by assembly in the starter scene. The hall is a 4 m grid of floor tiles, marked walkway tiles, ribbed wall modules, roller shutter door bays and mezzanine deck sections with a stair. Vehicles and dock kit carry the yard: two invented van liveries with sliding kerb side doors and twin rear doors, a box trailer, levellers, bumpers, a shelter, bay signs, a pallet truck, a sack truck, roll cages and a counterbalance forklift with raising forks. Animation is rigid node transforms only: conveyor drums and free rollers turn, the diverter arm sweeps, the labeller tamps, shutters and doors open, forks raise and wheels roll. Belts, straps, cables, chains and the parcels riding a belt are modelled solid and stay still, because a rigid node cannot carry them. No maker, courier or brand marks anywhere.","url":"https://3dassets.dev/packs/parcel-depot-and-sorting-hall","coverUrl":"https://cdn.3dassets.dev/assets/34833/v1/poster.webp","assetCount":53,"aiGenerated":true,"aiGeneratedAssetCount":53,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":2621876,"totalTriangles":48976,"starterScene":{"id":"34833","slug":"parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","title":"Parcel depot sorting hall and loading dock (Parcel Depot and Sorting Hall)","summary":"A working parcel depot at shift change: an incline conveyor feeds a sorting line through a scanner arch and a weigh station to two diverters dropping into bag frames, a curve takes the line out to a roller spur at the dock, and cages, pallets and parcel stacks fill the floor...","description":"A working parcel depot at shift change: an incline conveyor feeds a sorting line through a scanner arch and a weigh station to two diverters dropping into bag frames, a curve takes the line out to a roller spur at the dock, and cages, pallets and parcel stacks fill the floor either side of a marked walkway. Two vans are backed onto the dock bays with a trailer parked on the apron beyond, a forklift works the hall, and the mezzanine office, the driver check in, the lockers and the canteen run down the far wall. The roof steel is left off so the hall can be read from above, with the high bay lights hanging where the trusses would be.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34833/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34833/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34833/v1/poster.webp","blurhash":"U5B|Nh%300D%WB%M-;M|00S1_NxuMx9FD%t6","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":797164,"triangles":17464,"vertices":39626,"meshes":372,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-16,-0.12006042798986698,-12.119876705221717],"max":[8.119876705221717,4.60003812062561,8]},"sizeMeters":[24.12,4.72,20.12],"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-11T10:16:36.389Z","updatedAt":"2026-09-11T10:16:36.503Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34833/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelDepotSortingHallAndLoadingDockParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34833/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34833/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34833/v1/model.glb\" alt=\"Parcel depot sorting hall and loading dock (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34833/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/34833/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"34784","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-97c2fdc9","title":"Powered belt conveyor, 2 m straight (Parcel Depot and Sorting Hall)","summary":"Straight powered parcel conveyor module 2 m long and 0.9 m wide with its belt top at 0.76 m: a grey frame on charcoal legs with levelling feet, galvanised side guides and a turning drum at each end. Ports at both ends so a line repeats.","description":"Straight powered parcel conveyor module 2 m long and 0.9 m wide with its belt top at 0.76 m: a grey frame on charcoal legs with levelling feet, galvanised side guides and a turning drum at each end. Ports at both ends so a line repeats. Overall 1.19 by 0.82 by 2.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 module's footprint on the floor, so a run of modules lays out at 2 m centres. The belt face, the frame, the legs and the side guides are modelled solid; only the two end drums turn, because a rigid node transform cannot run a belt. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-97c2fdc9","cdnUrl":"https://cdn.3dassets.dev/assets/34784/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-97c2fdc9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34784/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34784/v1/poster.webp","blurhash":"UA7eF.%hVrWE%%RjMxog8^ITM{V@H;oIt7n$","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":15116,"triangles":264,"vertices":592,"meshes":7,"materials":5,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.44950712607196264,0.0000021363369988418313,-1],"max":[0.7400000095367432,0.8199983152556882,1]},"sizeMeters":[1.19,0.82,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:08.366Z","updatedAt":"2026-09-11T10:16:08.575Z","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/34784/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 PoweredBeltConveyor2MStraightParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34784/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/34784/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34784/v1/model.glb\" alt=\"Powered belt conveyor, 2 m straight (Parcel Depot and Sorting Hall)\" 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/34784/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/34784/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34783","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-87ae9888","title":"Powered belt conveyor, 4 m straight (Parcel Depot and Sorting Hall)","summary":"The same powered conveyor at 4 m, for a long run down a sorting hall with fewer joints. Identical width, belt height, legs and end drums, ported on its own half length.","description":"The same powered conveyor at 4 m, for a long run down a sorting hall with fewer joints. Identical width, belt height, legs and end drums, ported on its own half length. Overall 1.19 by 0.82 by 4.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The belt face, the frame, the legs and the side guides are modelled solid; only the two end drums turn, because a rigid node transform cannot run a belt. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-87ae9888","cdnUrl":"https://cdn.3dassets.dev/assets/34783/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-87ae9888","thumbnailUrl":"https://cdn.3dassets.dev/assets/34783/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34783/v1/poster.webp","blurhash":"U668px%$nM%M%%ITI9o#4TH=RQkDHq%N.9t7","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":15168,"triangles":264,"vertices":592,"meshes":7,"materials":5,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.44947660756248664,0.000026551004876989096,-2],"max":[0.7400000095367432,0.8201007098891779,2]},"sizeMeters":[1.189,0.82,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:08.352Z","updatedAt":"2026-09-11T10:16:08.571Z","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/34783/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 PoweredBeltConveyor4MStraightParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34783/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/34783/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34783/v1/model.glb\" alt=\"Powered belt conveyor, 4 m straight (Parcel Depot and Sorting Hall)\" 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/34783/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/34783/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34785","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-a062e5ac","title":"Powered belt conveyor, 90 degree curve (Parcel Depot and Sorting Hall)","summary":"Quarter turn belt module on a 1 m centre line radius, turning a sorting line 90 degrees to the left. It enters running toward -Z and leaves running toward -X, on the same 0.76 m belt height and the same end ports as the straights.","description":"Quarter turn belt module on a 1 m centre line radius, turning a sorting line 90 degrees to the left. It enters running toward -Z and leaves running toward -X, on the same 0.76 m belt height and the same end ports as the straights. Overall 1.61 by 0.82 by 1.61 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The origin sits on the entry port's floor position rather than inside the deck, so the curve drops straight onto the end of a straight run. Static module: the curved belt and its tapered pulleys are modelled solid, because a rigid node transform cannot run a belt round a bend. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-a062e5ac","cdnUrl":"https://cdn.3dassets.dev/assets/34785/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-a062e5ac","thumbnailUrl":"https://cdn.3dassets.dev/assets/34785/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34785/v1/poster.webp","blurhash":"U96+39xvi]xH.AofMwn%8wNFRQR*8wRjtRWV","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":21880,"triangles":480,"vertices":1120,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.1017084121704102,-0.000016344813448920803,-1.099352845447626],"max":[0.5100852251052856,0.8199531428535694,0.5098829357796573]},"sizeMeters":[1.612,0.82,1.609],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:07.585Z","updatedAt":"2026-09-11T10:16:07.683Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34785/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoweredBeltConveyor90DegreeCurveParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34785/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34785/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34785/v1/model.glb\" alt=\"Powered belt conveyor, 90 degree curve (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34785/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/34785/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34782","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-170c30c8","title":"Incline belt conveyor, 1.5 m rise (Parcel Depot and Sorting Hall)","summary":"Cleated incline conveyor climbing 1.5 m over a 3 m run at 26.6 degrees, feeding a sorting line from a lower infeed. Grey frame, charcoal cleats across the belt, adjustable legs and a turning drum at each end.","description":"Cleated incline conveyor climbing 1.5 m over a 3 m run at 26.6 degrees, feeding a sorting line from a lower infeed. Grey frame, charcoal cleats across the belt, adjustable legs and a turning drum at each end. Overall 1.19 by 2.41 by 3.15 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The low end is toward +Z at the standard 0.76 m belt height, so the incline drops onto the head of a straight run; the high infeed sits at 2.26 m. The belt face, the frame, the legs and the side guides are modelled solid; only the two end drums turn, because a rigid node transform cannot run a belt. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-170c30c8","cdnUrl":"https://cdn.3dassets.dev/assets/34782/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-170c30c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/34782/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34782/v1/poster.webp","blurhash":"U66ueayE8wog%%DhH;.9DNHqsl%$tRt8%OyE","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":20984,"triangles":396,"vertices":900,"meshes":7,"materials":5,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.44957673895998257,-0.000005006470293453594,-1.5760263204574585],"max":[0.7400000095367432,2.412135936286403,1.5760263204574585]},"sizeMeters":[1.19,2.412,3.152],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:08.338Z","updatedAt":"2026-09-11T10:16:08.447Z","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/34782/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 InclineBeltConveyor15MRiseParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34782/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/34782/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34782/v1/model.glb\" alt=\"Incline belt conveyor, 1.5 m rise (Parcel Depot and Sorting Hall)\" 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/34782/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/34782/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34786","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f1f23aa3","title":"Gravity roller conveyor, 2 m section (Parcel Depot and Sorting Hall)","summary":"Unpowered roller bed 2 m long on the same frame, legs and ports as the powered modules: seven galvanised rollers at 0.28 m centres, each turning on its own axis, for a hand fed spur off a sorting line.","description":"Unpowered roller bed 2 m long on the same frame, legs and ports as the powered modules: seven galvanised rollers at 0.28 m centres, each turning on its own axis, for a hand fed spur off a sorting line. Overall 1.23 by 0.82 by 2.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The frame, the legs and the side guides are static; the seven rollers each turn about their own axle. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f1f23aa3","cdnUrl":"https://cdn.3dassets.dev/assets/34786/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f1f23aa3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34786/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34786/v1/poster.webp","blurhash":"UG9Q{y%ND$ax?wWBITog4mIToIt78^aK%MoL","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":16016,"triangles":436,"vertices":952,"meshes":11,"materials":4,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.44950712607196264,0.0000021363369988418313,-1],"max":[0.7799999713897705,0.819978635851274,1]},"sizeMeters":[1.23,0.82,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:09.416Z","updatedAt":"2026-09-11T10:16:09.515Z","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/34786/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 GravityRollerConveyor2MSectionParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34786/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/34786/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34786/v1/model.glb\" alt=\"Gravity roller conveyor, 2 m section (Parcel Depot and Sorting Hall)\" 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/34786/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/34786/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34787","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5bf8f9bc","title":"Conveyor leg and support frame (Parcel Depot and Sorting Hall)","summary":"Standalone galvanised support trestle 0.9 m wide and 0.7 m tall with a bolted top channel, a diagonal brace each side and levelling feet, for carrying a conveyor module across a gap or picking up a joint between two runs.","description":"Standalone galvanised support trestle 0.9 m wide and 0.7 m tall with a bolted top channel, a diagonal brace each side and levelling feet, for carrying a conveyor module across a gap or picking up a joint between two runs. Overall 0.94 by 0.75 by 0.68 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static assembly; the levelling feet are modelled solid rather than threaded. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5bf8f9bc","cdnUrl":"https://cdn.3dassets.dev/assets/34787/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5bf8f9bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/34787/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34787/v1/poster.webp","blurhash":"UODS]=ogD%t6~qofMxofM|oJaxbID%ofofWD","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":11300,"triangles":168,"vertices":392,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4699999988079071,-0.00001920324425913611,-0.3399743635897401],"max":[0.4699999988079071,0.7499818544857931,0.3399743635897401]},"sizeMeters":[0.94,0.75,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:11.215Z","updatedAt":"2026-09-11T10:16:11.309Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34787/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConveyorLegAndSupportFrameParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34787/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34787/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34787/v1/model.glb\" alt=\"Conveyor leg and support frame (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34787/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/34787/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34788","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2cb1e59","title":"Diverter arm conveyor unit (Parcel Depot and Sorting Hall)","summary":"Powered 2 m belt module with a pivoting diverter arm over it: a grey drive head on the side guide, a yellow banded paddle that sweeps parcels across the belt, and a side port at 0.76 m so a sorting chute lands under the discharge.","description":"Powered 2 m belt module with a pivoting diverter arm over it: a grey drive head on the side guide, a yellow banded paddle that sweeps parcels across the belt, and a side port at 0.76 m so a sorting chute lands under the discharge. Overall 1.34 by 1.28 by 2.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The belt, the drive head and its guard are static; only the arm swings, and the parcels a real unit is pushing are not modelled riding the belt, because a parcel on a moving belt cannot be carried by a rigid node. Rigid node-transform clips: roller-spin and divert. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2cb1e59","cdnUrl":"https://cdn.3dassets.dev/assets/34788/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2cb1e59","thumbnailUrl":"https://cdn.3dassets.dev/assets/34788/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34788/v1/poster.webp","blurhash":"U68;rm.T00V;~oE102xV4TVXIuM{8^-o.8Nf","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":21960,"triangles":376,"vertices":851,"meshes":12,"materials":6,"textures":0,"animations":["roller-spin","divert"],"boundingBox":{"min":[-0.600000931269231,0.0000021363369988418313,-1],"max":[0.7400000095367432,1.2800028885302555,1]},"sizeMeters":[1.34,1.28,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:10.235Z","updatedAt":"2026-09-11T10:16:10.337Z","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/34788/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 DiverterArmConveyorUnitParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34788/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/34788/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34788/v1/model.glb\" alt=\"Diverter arm conveyor unit (Parcel Depot and Sorting Hall)\" 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/34788/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/34788/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34789","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5a8683a9","title":"Parcel scanner arch over a belt (Parcel Depot and Sorting Hall)","summary":"Reading tunnel over a powered 2 m belt module: a blue portal 2.1 m tall carrying a six sided camera head, lit reading strips down both jambs, a cable tray along the top and a status screen on a bracket, ported as a standard line module.","description":"Reading tunnel over a powered 2 m belt module: a blue portal 2.1 m tall carrying a six sided camera head, lit reading strips down both jambs, a cable tray along the top and a status screen on a bracket, ported as a standard line module. Overall 1.51 by 2.44 by 2.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Nothing on the arch moves: the cameras, the light strips and the encoder wheel are modelled solid, because a scanner has no moving part a node transform could carry. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5a8683a9","cdnUrl":"https://cdn.3dassets.dev/assets/34789/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5a8683a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34789/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34789/v1/poster.webp","blurhash":"U57LJ:?^004Tk?R+H=Vr8wr?yZNG-6xut-OY","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":20924,"triangles":408,"vertices":928,"meshes":8,"materials":6,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.7200023101700539,0,-1],"max":[0.7900023030174965,2.440000057220459,1]},"sizeMeters":[1.51,2.44,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:11.318Z","updatedAt":"2026-09-11T10:16:11.444Z","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/34789/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 ParcelScannerArchOverABeltParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34789/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/34789/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34789/v1/model.glb\" alt=\"Parcel scanner arch over a belt (Parcel Depot and Sorting Hall)\" 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/34789/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/34789/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34790","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-28ea51cb","title":"Weigh and dimension station (Parcel Depot and Sorting Hall)","summary":"In line weighing and cubing station on a 2 m belt module: a recessed weigh deck on four load cells, a slim light curtain gantry reading the parcel's height and width, and a pedestal display facing the operator.","description":"In line weighing and cubing station on a 2 m belt module: a recessed weigh deck on four load cells, a slim light curtain gantry reading the parcel's height and width, and a pedestal display facing the operator. Overall 1.51 by 2.02 by 2.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The weigh deck, the load cells and the light curtain are modelled solid; only the module's end drums turn. Rigid node-transform clips: roller-spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-28ea51cb","cdnUrl":"https://cdn.3dassets.dev/assets/34790/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-28ea51cb","thumbnailUrl":"https://cdn.3dassets.dev/assets/34790/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34790/v1/poster.webp","blurhash":"U8AKHy~q0001^%xYIVIW00Ri.9oM02Ro-:%L","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":29052,"triangles":584,"vertices":1325,"meshes":9,"materials":7,"textures":0,"animations":["roller-spin"],"boundingBox":{"min":[-0.6099641820925812,0.000013192340394652113,-1],"max":[0.8999641439456085,2.0199723763050703,1]},"sizeMeters":[1.51,2.02,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:11.238Z","updatedAt":"2026-09-11T10:16:11.345Z","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/34790/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 WeighAndDimensionStationParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34790/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/34790/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34790/v1/model.glb\" alt=\"Weigh and dimension station (Parcel Depot and Sorting Hall)\" 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/34790/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/34790/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34791","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-949db989","title":"Label printer and applicator (Parcel Depot and Sorting Hall)","summary":"Print and apply labeller on its own legs beside a line: a grey cabinet with a cream printer head, an exposed label roll, a touch screen, and a tamp arm that tilts down to apply a label to the parcel below it.","description":"Print and apply labeller on its own legs beside a line: a grey cabinet with a cream printer head, an exposed label roll, a touch screen, and a tamp arm that tilts down to apply a label to the parcel below it. Overall 0.82 by 1.50 by 0.82 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The cabinet, the label roll and the printer head are static; only the tamp arm tilts, and the ribbon and label web are modelled solid because neither is reachable with a rigid node. Rigid node-transform clips: tilt. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-949db989","cdnUrl":"https://cdn.3dassets.dev/assets/34791/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-949db989","thumbnailUrl":"https://cdn.3dassets.dev/assets/34791/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34791/v1/poster.webp","blurhash":"UAA,:;jr00Rj~qj?9FRj4mV[-;tR00a#_3oz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":18992,"triangles":296,"vertices":672,"meshes":10,"materials":6,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.4600000159442422,-0.00001922713406025782,-0.35500564409471225],"max":[0.3612000048160553,1.5,0.4699999988079071]},"sizeMeters":[0.821,1.5,0.825],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:13.003Z","updatedAt":"2026-09-11T10:16:13.099Z","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/34791/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 LabelPrinterAndApplicatorParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34791/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/34791/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34791/v1/model.glb\" alt=\"Label printer and applicator (Parcel Depot and Sorting Hall)\" 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/34791/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/34791/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34792","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-89e61450","title":"Sorting chute with bag frame (Parcel Depot and Sorting Hall)","summary":"Discharge chute off a diverter: a galvanised slide with grey side walls and a yellow lip, on charcoal legs, running down into a tubular bag frame with a red mail bag hanging in it and a blank cream destination card.","description":"Discharge chute off a diverter: a galvanised slide with grey side walls and a yellow lip, on charcoal legs, running down into a tubular bag frame with a red mail bag hanging in it and a blank cream destination card. Overall 2.13 by 0.99 by 0.95 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The intake port sits at the standard 0.76 m belt height on the chute's high lip, so the chute lands square on a diverter unit's side port. Everything here is static: the bag is a modelled solid because there is no cloth simulation or skinning in this library, and the frame's castors are modelled solid too. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-89e61450","cdnUrl":"https://cdn.3dassets.dev/assets/34792/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-89e61450","thumbnailUrl":"https://cdn.3dassets.dev/assets/34792/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34792/v1/poster.webp","blurhash":"UDCijv.R0d+v_N?HV?IU00r=-UEf4UD*S4s.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":27996,"triangles":540,"vertices":1206,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.7885059118270874,-0.00005050916734622435,-0.4549350667696329],"max":[1.340000033378601,0.988718450881631,0.49993505365661106]},"sizeMeters":[2.129,0.989,0.955],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:12.934Z","updatedAt":"2026-09-11T10:16:13.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34792/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SortingChuteWithBagFrameParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34792/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34792/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34792/v1/model.glb\" alt=\"Sorting chute with bag frame (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34792/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/34792/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34793","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e3e0c1f","title":"Sorting chute with a full bag (Parcel Depot and Sorting Hall)","summary":"The same chute and frame with the bag filled and its neck standing open, plus two parcels resting on the slide, for a line that has been running. Identical footprint, lip height and intake port.","description":"The same chute and frame with the bag filled and its neck standing open, plus two parcels resting on the slide, for a line that has been running. Identical footprint, lip height and intake port. Overall 2.13 by 1.04 by 0.95 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static variant; the bag and the parcels on the slide are modelled solid. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e3e0c1f","cdnUrl":"https://cdn.3dassets.dev/assets/34793/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e3e0c1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34793/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34793/v1/poster.webp","blurhash":"UGCiaW.R0y#8~W-;NGMy0ev~=xEz0KIBs.oy","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":32320,"triangles":624,"vertices":1402,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.7885059118270874,0.00001096978129205839,-0.4549350667696329],"max":[1.340000033378601,1.0400027601628115,0.49993505365661106]},"sizeMeters":[2.129,1.04,0.955],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:14.086Z","updatedAt":"2026-09-11T10:16:14.186Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34793/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SortingChuteWithAFullBagParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34793/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34793/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34793/v1/model.glb\" alt=\"Sorting chute with a full bag (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34793/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/34793/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34794","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-63001cf6","title":"Post bag on a wheeled frame (Parcel Depot and Sorting Hall)","summary":"Standalone mail bag frame as it stands in a depot aisle: a tubular galvanised frame on castors with a filled red post bag, a charcoal tie strap across its neck and a blank cream destination card in the holder.","description":"Standalone mail bag frame as it stands in a depot aisle: a tubular galvanised frame on castors with a filled red post bag, a charcoal tie strap across its neck and a blank cream destination card in the holder. Overall 0.97 by 1.16 by 0.80 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static model; the bag is a modelled solid and the castors do not turn, because the frame is parked. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-63001cf6","cdnUrl":"https://cdn.3dassets.dev/assets/34794/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-63001cf6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34794/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34794/v1/poster.webp","blurhash":"UDB{4T%20eE1}[t79[NG0yS3=xxFE1R*xGs:","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":24216,"triangles":480,"vertices":1078,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3550202854039755,0,-0.2950193714381727],"max":[0.619993423755366,1.160010362783248,0.49999311982413897]},"sizeMeters":[0.975,1.16,0.795],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:14.140Z","updatedAt":"2026-09-11T10:16:14.332Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34794/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PostBagOnAWheeledFrameParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34794/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34794/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34794/v1/model.glb\" alt=\"Post bag on a wheeled frame (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34794/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/34794/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34795","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4cd8af04","title":"Parcel cage, loaded (Parcel Depot and Sorting Hall)","summary":"Depot parcel cage 0.82 m by 0.72 m and 1.56 m tall: a welded galvanised mesh box on a charcoal base with a mid shelf, a blue route card holder and four castors, loaded with taped cartons and a poly wrapped bundle.","description":"Depot parcel cage 0.82 m by 0.72 m and 1.56 m tall: a welded galvanised mesh box on a charcoal base with a mid shelf, a blue route card holder and four castors, loaded with taped cartons and a poly wrapped bundle. Overall 0.82 by 1.57 by 0.72 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static model: the castors are modelled solid and the cage is shown parked, so nothing here needs a clip. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4cd8af04","cdnUrl":"https://cdn.3dassets.dev/assets/34795/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4cd8af04","thumbnailUrl":"https://cdn.3dassets.dev/assets/34795/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34795/v1/poster.webp","blurhash":"U7Bz8_-:009ao~oJngW=00Rk~Wxt-oj[E3WB","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":51300,"triangles":1080,"vertices":2456,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.40997745441437994,0,-0.35998525282838],"max":[0.40997745441437994,1.5679999589920044,0.35998525282838]},"sizeMeters":[0.82,1.568,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:14.716Z","updatedAt":"2026-09-11T10:16:14.926Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34795/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelCageLoadedParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34795/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34795/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34795/v1/model.glb\" alt=\"Parcel cage, loaded (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34795/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/34795/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34796","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-bb964d78","title":"Parcel cage, empty (Parcel Depot and Sorting Hall)","summary":"The same parcel cage swept out and ready to load: bare charcoal base, mesh sides, mid shelf and route card holder, for a staging row waiting on a sorting line.","description":"The same parcel cage swept out and ready to load: bare charcoal base, mesh sides, mid shelf and route card holder, for a staging row waiting on a sorting line. Overall 0.82 by 1.57 by 0.72 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static variant; the castors are modelled solid. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-bb964d78","cdnUrl":"https://cdn.3dassets.dev/assets/34796/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-bb964d78","thumbnailUrl":"https://cdn.3dassets.dev/assets/34796/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34796/v1/poster.webp","blurhash":"U4AK5U%g00D%_3s.9FR+00WU_4ogWEaxoft7","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":39776,"triangles":852,"vertices":1924,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4099999964237213,0.00001174962608459229,-0.35999969167476076],"max":[0.4099999964237213,1.5679999589920044,0.35999969167476076]},"sizeMeters":[0.82,1.568,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:14.743Z","updatedAt":"2026-09-11T10:16:14.941Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34796/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelCageEmptyParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34796/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34796/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34796/v1/model.glb\" alt=\"Parcel cage, empty (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34796/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/34796/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34798","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-500e3c8d","title":"Roll cage with rolling castors (Parcel Depot and Sorting Hall)","summary":"Tall two sided roll cage 1.8 m high on a charcoal deck with a mesh back, folding mesh sides, a charcoal strap rail across the front and four castors that turn, the trolley a driver actually wheels into a van.","description":"Tall two sided roll cage 1.8 m high on a charcoal deck with a mesh back, folding mesh sides, a charcoal strap rail across the front and four castors that turn, the trolley a driver actually wheels into a van. Overall 0.82 by 1.81 by 0.73 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The deck, the mesh panels and the strap rail are static, and the retaining strap is modelled solid because a rigid node cannot tension a webbing strap; the four castors turn. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-500e3c8d","cdnUrl":"https://cdn.3dassets.dev/assets/34798/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-500e3c8d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34798/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34798/v1/poster.webp","blurhash":"U3A^Ua%L00R:tSRjITxu00IU~q%L?ZobIWWZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":40764,"triangles":984,"vertices":2204,"meshes":13,"materials":6,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-0.4099871643178867,0,-0.3649705336965371],"max":[0.4099871643178867,1.8079999685287476,0.36499680394712253]},"sizeMeters":[0.82,1.808,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:15.987Z","updatedAt":"2026-09-11T10:16:16.114Z","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/34798/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 RollCageWithRollingCastorsParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34798/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/34798/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34798/v1/model.glb\" alt=\"Roll cage with rolling castors (Parcel Depot and Sorting Hall)\" 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/34798/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/34798/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34797","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-54cee482","title":"Sort tray rack (Parcel Depot and Sorting Hall)","summary":"Steel picking rack 1.26 m wide and 1.85 m tall with five tilted shelves of blue and red sorting trays, a charcoal kick plate and a blank route card strip on each shelf edge, for the manual sort beside a chute.","description":"Steel picking rack 1.26 m wide and 1.85 m tall with five tilted shelves of blue and red sorting trays, a charcoal kick plate and a blank route card strip on each shelf edge, for the manual sort beside a chute. Overall 1.27 by 1.98 by 0.58 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static rack; the trays are modelled in place and do not lift out. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-54cee482","cdnUrl":"https://cdn.3dassets.dev/assets/34797/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-54cee482","thumbnailUrl":"https://cdn.3dassets.dev/assets/34797/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34797/v1/poster.webp","blurhash":"U7Ci]v?[00mmu6%2m*IV01IA}qX-tSj]RPWA","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":21560,"triangles":456,"vertices":1064,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.6349971089251191,0,-0.2800012985713082],"max":[0.6349971089251191,1.9800000190734863,0.3025211406016214]},"sizeMeters":[1.27,1.98,0.583],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:15.971Z","updatedAt":"2026-09-11T10:16:16.097Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34797/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SortTrayRackParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34797/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34797/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34797/v1/model.glb\" alt=\"Sort tray rack (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34797/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/34797/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34800","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2bd236d","title":"Parcel stack, small (Parcel Depot and Sorting Hall)","summary":"Three taped cartons stacked and squared up as a sorter leaves them, 0.5 m across and 0.9 m tall, with blank cream address labels and red, blue and charcoal tape across the seams.","description":"Three taped cartons stacked and squared up as a sorter leaves them, 0.5 m across and 0.9 m tall, with blank cream address labels and red, blue and charcoal tape across the seams. Overall 0.54 by 0.92 by 0.47 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static group; the cartons are one rigid model, not separable boxes. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2bd236d","cdnUrl":"https://cdn.3dassets.dev/assets/34800/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2bd236d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34800/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34800/v1/poster.webp","blurhash":"U9H27e~p0000tQInITj^01rqt5bc%g-poMRk","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":7608,"triangles":108,"vertices":252,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.2800255092346632,0,-0.2219499945640564],"max":[0.26252549612164133,0.9154078002627886,0.24700717219240037]},"sizeMeters":[0.543,0.915,0.469],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:16.580Z","updatedAt":"2026-09-11T10:16:16.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34800/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelStackSmallParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34800/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34800/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34800/v1/model.glb\" alt=\"Parcel stack, small (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34800/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/34800/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34799","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04648bc0","title":"Parcel stack, medium (Parcel Depot and Sorting Hall)","summary":"Five taped cartons stacked to about 1.4 m, the size that waits beside a chute before it is caged. Same carton family, tapes and blank labels as the small stack.","description":"Five taped cartons stacked to about 1.4 m, the size that waits beside a chute before it is caged. Same carton family, tapes and blank labels as the small stack. Overall 0.60 by 1.59 by 0.52 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static group. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04648bc0","cdnUrl":"https://cdn.3dassets.dev/assets/34799/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04648bc0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34799/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34799/v1/poster.webp","blurhash":"U4EyC{~q0000E1IWM|%d00n%_1b]-:oZM{bK","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":10328,"triangles":180,"vertices":420,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.30995745726515694,0,-0.2459441593583242],"max":[0.29035745330740853,1.5932799577713013,0.2728191419692826]},"sizeMeters":[0.6,1.593,0.519],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:17.589Z","updatedAt":"2026-09-11T10:16:17.692Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34799/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelStackMediumParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34799/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34799/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34799/v1/model.glb\" alt=\"Parcel stack, medium (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34799/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/34799/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34801","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a2d56cf","title":"Parcel stack, large (Parcel Depot and Sorting Hall)","summary":"A double stack of eight cartons about 1.9 m tall and 1.2 m across, the wall of boxes that builds up at the end of a sorting shift.","description":"A double stack of eight cartons about 1.9 m tall and 1.2 m across, the wall of boxes that builds up at the end of a sorting shift. Overall 1.29 by 1.44 by 0.59 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static group. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a2d56cf","cdnUrl":"https://cdn.3dassets.dev/assets/34801/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a2d56cf","thumbnailUrl":"https://cdn.3dassets.dev/assets/34801/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34801/v1/poster.webp","blurhash":"UAGbS6~W004nE2-pxa9Z00M|-:WC%ft6s.Io","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":14124,"triangles":288,"vertices":672,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6700221636830336,0,-0.2619334720392326],"max":[0.6211221554814345,1.4389599561691284,0.3242241158164206]},"sizeMeters":[1.291,1.439,0.586],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:17.739Z","updatedAt":"2026-09-11T10:16:17.841Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34801/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelStackLargeParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34801/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34801/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34801/v1/model.glb\" alt=\"Parcel stack, large (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34801/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/34801/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34802","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ae7ca995","title":"Pallet of parcels, wrapped (Parcel Depot and Sorting Hall)","summary":"Charcoal plastic pallet 1.2 m by 1 m stacked with sixteen cartons and wrapped in a cream stretch film, with a blank consignment note taped to the front face and yellow strapping round the top course.","description":"Charcoal plastic pallet 1.2 m by 1 m stacked with sixteen cartons and wrapped in a cream stretch film, with a blank consignment note taped to the front face and yellow strapping round the top course. Overall 1.20 by 0.99 by 1.00 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static model: the stretch film is a modelled shell rather than cloth, and the strapping is modelled solid, because neither is reachable with a rigid node. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ae7ca995","cdnUrl":"https://cdn.3dassets.dev/assets/34802/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ae7ca995","thumbnailUrl":"https://cdn.3dassets.dev/assets/34802/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34802/v1/poster.webp","blurhash":"ULI}qv-=01Rk~TxaR+a$00RiM{WCbyaxD*Ri","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":15252,"triangles":252,"vertices":588,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.0000022888883016575212,-0.500021382825697],"max":[0.6000000238418579,0.9911786221897984,0.500021382825697]},"sizeMeters":[1.2,0.991,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:17.859Z","updatedAt":"2026-09-11T10:16:18.068Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34802/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PalletOfParcelsWrappedParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34802/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34802/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34802/v1/model.glb\" alt=\"Pallet of parcels, wrapped (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34802/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/34802/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34803","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ff038fb8","title":"Jiffy bag and box assortment (Parcel Depot and Sorting Hall)","summary":"Loose mail as it lands on a sort table: four cream padded envelopes, a red poly bag, two small taped cartons and a tube, all at real post sizes, for dressing a bench, a tray or the top of a stack.","description":"Loose mail as it lands on a sort table: four cream padded envelopes, a red poly bag, two small taped cartons and a tube, all at real post sizes, for dressing a bench, a tray or the top of a stack. Overall 1.11 by 0.32 by 0.72 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static group; the bags are modelled solids because there is no cloth in this library. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ff038fb8","cdnUrl":"https://cdn.3dassets.dev/assets/34803/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ff038fb8","thumbnailUrl":"https://cdn.3dassets.dev/assets/34803/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34803/v1/poster.webp","blurhash":"UDCidZ=f00n#IpofxtR*00AB_NkD$%aLM|s:","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":13692,"triangles":220,"vertices":504,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4099999964237213,-0.00001493002557120815,-0.25498485135845467],"max":[0.6999883341435033,0.32400921454583964,0.4675528407096863]},"sizeMeters":[1.11,0.324,0.723],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:19.340Z","updatedAt":"2026-09-11T10:16:19.437Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34803/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JiffyBagAndBoxAssortmentParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34803/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34803/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34803/v1/model.glb\" alt=\"Jiffy bag and box assortment (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34803/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/34803/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34804","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a1bddf3","title":"Parcel delivery van, blue livery (Parcel Depot and Sorting Hall)","summary":"Semi bonneted parcel van 5.7 m long with a high cargo body: blue panels with a cream side panel and accent band, modelled wheel arches, a sliding kerb side door and twin rear doors that open. No maker or courier branding anywhere.","description":"Semi bonneted parcel van 5.7 m long with a high cargo body: blue panels with a cream side panel and accent band, modelled wheel arches, a sliding kerb side door and twin rear doors that open. No maker or courier branding anywhere. Overall 2.39 by 2.42 by 5.89 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 at road level, with the cab toward +Z. The body, the cab, the mirrors and the arches are static; the four wheels turn, the kerb side door slides back on its track and both rear doors swing open. Nothing inside the body is modelled moving, and the load restraint straps are modelled solid because a rigid node cannot tension webbing. Rigid node-transform clips: side-door-open, side-door-close, rear-door-open, rear-door-close and wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a1bddf3","cdnUrl":"https://cdn.3dassets.dev/assets/34804/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-4a1bddf3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34804/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34804/v1/poster.webp","blurhash":"UGDJejx]00sk~qD$9F%M00DikX%g9E%N?axa","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58804,"triangles":1264,"vertices":2854,"meshes":27,"materials":9,"textures":0,"animations":["side-door-open","side-door-close","rear-door-open","rear-door-close","wheel-roll"],"boundingBox":{"min":[-1.0900045804960652,1.3113021835042815e-8,-2.930000066757202],"max":[1.2976000308990479,2.4198659686845487,2.9600000381469727]},"sizeMeters":[2.388,2.42,5.89],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:20.383Z","updatedAt":"2026-09-11T10:16:20.471Z","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/34804/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 ParcelDeliveryVanBlueLiveryParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34804/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/34804/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34804/v1/model.glb\" alt=\"Parcel delivery van, blue livery (Parcel Depot and Sorting Hall)\" 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/34804/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/34804/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34805","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8438a841","title":"Parcel delivery van, red livery (Parcel Depot and Sorting Hall)","summary":"The same parcel van in the depot's second invented livery: red panels with a cream side panel and a yellow accent band. Identical body, doors, arches and wheels, so a yard reads as a mixed fleet.","description":"The same parcel van in the depot's second invented livery: red panels with a cream side panel and a yellow accent band. Identical body, doors, arches and wheels, so a yard reads as a mixed fleet. Overall 2.39 by 2.42 by 5.89 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The body, the cab, the mirrors and the arches are static; the four wheels turn, the kerb side door slides back on its track and both rear doors swing open. Nothing inside the body is modelled moving, and the load restraint straps are modelled solid because a rigid node cannot tension webbing. Rigid node-transform clips: side-door-open, side-door-close, rear-door-open, rear-door-close and wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8438a841","cdnUrl":"https://cdn.3dassets.dev/assets/34805/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8438a841","thumbnailUrl":"https://cdn.3dassets.dev/assets/34805/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34805/v1/poster.webp","blurhash":"UHFY4D%20Kg2~p9Z9F%M019Zw{%M4.={-;t7","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57904,"triangles":1264,"vertices":2854,"meshes":28,"materials":10,"textures":0,"animations":["side-door-open","side-door-close","rear-door-open","rear-door-close","wheel-roll"],"boundingBox":{"min":[-1.0900045804960652,1.3113021835042815e-8,-2.930000066757202],"max":[1.2976000308990479,2.4198659686845487,2.9600000381469727]},"sizeMeters":[2.388,2.42,5.89],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:20.664Z","updatedAt":"2026-09-11T10:16:20.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/34805/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 ParcelDeliveryVanRedLiveryParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34805/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/34805/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34805/v1/model.glb\" alt=\"Parcel delivery van, red livery (Parcel Depot and Sorting Hall)\" 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/34805/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/34805/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34806","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c88ba64c","title":"Parcel delivery van, doors open (Parcel Depot and Sorting Hall)","summary":"The blue van posed as it stands at a dock: the kerb side door slid fully back on its track and both rear doors swung out, showing the load area with a part load of cartons on the deck. The four wheels still turn.","description":"The blue van posed as it stands at a dock: the kerb side door slid fully back on its track and both rear doors swung out, showing the load area with a part load of cartons on the deck. The four wheels still turn. Overall 2.73 by 2.42 by 6.58 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The open pose is baked into the geometry, so this variant ships no door clips and nothing swings on from an open state. The doors are modelled open and do not move; only the four wheels turn. The load restraint straps are modelled solid because a rigid node cannot tension webbing. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c88ba64c","cdnUrl":"https://cdn.3dassets.dev/assets/34806/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c88ba64c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34806/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34806/v1/poster.webp","blurhash":"UDBzX--;00Ri_NI99Fxu00Dixv%N00-=_2ae","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58564,"triangles":1264,"vertices":2854,"meshes":27,"materials":9,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-1.3667824268341064,1.3113021835042815e-8,-3.624955851989034],"max":[1.3667824268341064,2.4198659686845487,2.9600000381469727]},"sizeMeters":[2.734,2.42,6.585],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:20.698Z","updatedAt":"2026-09-11T10:16:20.800Z","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/34806/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 ParcelDeliveryVanDoorsOpenParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34806/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/34806/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34806/v1/model.glb\" alt=\"Parcel delivery van, doors open (Parcel Depot and Sorting Hall)\" 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/34806/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/34806/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34807","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-709bf064","title":"Box lorry trailer (Parcel Depot and Sorting Hall)","summary":"Curtainless box trailer 8.5 m long and 4 m tall on a twin axle bogie: cream panels with a blue band, a kingpin plate, wind down landing legs, side guards and a pair of rear doors that swing open at a dock.","description":"Curtainless box trailer 8.5 m long and 4 m tall on a twin axle bogie: cream panels with a blue band, a kingpin plate, wind down landing legs, side guards and a pair of rear doors that swing open at a dock. Overall 2.63 by 3.98 by 8.45 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 at road level, with the kingpin end toward +Z. The body, the landing legs and the side guards are static; the four bogie wheels turn and both rear doors swing. There is no tractor unit in this pack and the trailer is modelled parked on its legs. Rigid node-transform clips: open, close and wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-709bf064","cdnUrl":"https://cdn.3dassets.dev/assets/34807/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-709bf064","thumbnailUrl":"https://cdn.3dassets.dev/assets/34807/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34807/v1/poster.webp","blurhash":"UIFY+B?b8_%M~qD%IU%M004nkCofD%x]xuae","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":34840,"triangles":900,"vertices":1975,"meshes":27,"materials":8,"textures":0,"animations":["open","close","wheel-roll"],"boundingBox":{"min":[-1.2699795612087,-0.00006834962681101509,-4.5],"max":[1.3575999629497528,3.980068368700297,3.950000047683716]},"sizeMeters":[2.628,3.98,8.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:22.220Z","updatedAt":"2026-09-11T10:16:22.347Z","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/34807/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 BoxLorryTrailerParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34807/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/34807/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34807/v1/model.glb\" alt=\"Box lorry trailer (Parcel Depot and Sorting Hall)\" 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/34807/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/34807/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34808","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-dd48ee53","title":"Dock leveller plate (Parcel Depot and Sorting Hall)","summary":"Dock leveller set into the apron: a 2.2 m by 2.4 m chequer plate deck in a charcoal pit frame with a hinged front lip, yellow chevron edging down both sides and a control box on a short post.","description":"Dock leveller set into the apron: a 2.2 m by 2.4 m chequer plate deck in a charcoal pit frame with a hinged front lip, yellow chevron edging down both sides and a control box on a short post. Overall 2.65 by 1.44 by 2.92 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The deck and its lip are modelled in the level, parked position and do not move: a real leveller is hydraulic, and its travel is not something a rigid node should fake under a parked vehicle. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-dd48ee53","cdnUrl":"https://cdn.3dassets.dev/assets/34808/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-dd48ee53","thumbnailUrl":"https://cdn.3dassets.dev/assets/34808/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34808/v1/poster.webp","blurhash":"UCC6.EWF4nM_9FIUxvt700t6.7og_4?bITWB","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":10836,"triangles":148,"vertices":343,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000213189401119,0,-1.3849999904632568],"max":[1.4499942591007924,1.440000057220459,1.5399999618530273]},"sizeMeters":[2.65,1.44,2.925],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:22.231Z","updatedAt":"2026-09-11T10:16:22.350Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34808/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DockLevellerPlateParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34808/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34808/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34808/v1/model.glb\" alt=\"Dock leveller plate (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34808/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/34808/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34809","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5cc9b47d","title":"Dock bumper pair (Parcel Depot and Sorting Hall)","summary":"The pair of laminated rubber buffers a trailer backs onto, 1.9 m apart on their galvanised mounting plates, with charcoal blocks, bolt heads and a yellow wear stripe across each face.","description":"The pair of laminated rubber buffers a trailer backs onto, 1.9 m apart on their galvanised mounting plates, with charcoal blocks, bolt heads and a yellow wear stripe across each face. Overall 2.26 by 0.62 by 0.26 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static pair; the rubber is modelled solid, so it does not compress. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5cc9b47d","cdnUrl":"https://cdn.3dassets.dev/assets/34809/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-5cc9b47d","thumbnailUrl":"https://cdn.3dassets.dev/assets/34809/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34809/v1/poster.webp","blurhash":"U56RP=ba_Nob.8_3x[WB4n?bITRkW9D*M|s.","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":10468,"triangles":200,"vertices":436,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.1299999952316284,0.000006107394192600424,-0.029942927417508286],"max":[1.1299999952316284,0.619993897374179,0.22994293226038567]},"sizeMeters":[2.26,0.62,0.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:23.349Z","updatedAt":"2026-09-11T10:16:23.453Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34809/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DockBumperPairParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34809/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34809/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34809/v1/model.glb\" alt=\"Dock bumper pair (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34809/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/34809/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34810","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1dfae3d5","title":"Dock shelter frame (Parcel Depot and Sorting Hall)","summary":"Weather shelter over a loading bay: a grey portal 3.8 m wide and 4.2 m tall standing 0.7 m proud of the wall, with charcoal curtain panels down both jambs and across the head and yellow guide stripes on the reveals.","description":"Weather shelter over a loading bay: a grey portal 3.8 m wide and 4.2 m tall standing 0.7 m proud of the wall, with charcoal curtain panels down both jambs and across the head and yellow guide stripes on the reveals. Overall 3.80 by 4.50 by 0.77 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static frame; the curtains are modelled as solid panels because there is no cloth in this library, so they neither hang nor part when a trailer backs in. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1dfae3d5","cdnUrl":"https://cdn.3dassets.dev/assets/34810/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1dfae3d5","thumbnailUrl":"https://cdn.3dassets.dev/assets/34810/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34810/v1/poster.webp","blurhash":"UCCj2|%M00xu~q-;D$D%M|fkD%M{xux]WBD%","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":8264,"triangles":132,"vertices":308,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.9000747703482161,0,0.00007476438775172456],"max":[1.9000747703482161,4.5,0.769960127029242]},"sizeMeters":[3.8,4.5,0.77],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:22.490Z","updatedAt":"2026-09-11T10:16:22.586Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34810/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DockShelterFrameParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34810/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34810/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34810/v1/model.glb\" alt=\"Dock shelter frame (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34810/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/34810/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34812","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-36150cf2","title":"Loading bay number sign (Parcel Depot and Sorting Hall)","summary":"Bay identification sign on a 2.8 m galvanised post: a blue plate with a modelled two digit number, a red banner strip above it and a blank cream instruction card below, with a yellow painted base collar.","description":"Bay identification sign on a 2.8 m galvanised post: a blue plate with a modelled two digit number, a red banner strip above it and a blank cream instruction card below, with a yellow painted base collar. Overall 0.74 by 2.62 by 0.34 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static sign; the numerals are modelled geometry rather than a texture. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-36150cf2","cdnUrl":"https://cdn.3dassets.dev/assets/34812/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-36150cf2","thumbnailUrl":"https://cdn.3dassets.dev/assets/34812/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34812/v1/poster.webp","blurhash":"U68Nqc%M008_-@tRISIT-At7E%IoHqnO*0TJ","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":13676,"triangles":220,"vertices":511,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3700000047683716,0,-0.16998809778130436],"max":[0.3700000047683716,2.620009413956468,0.16998809778130436]},"sizeMeters":[0.74,2.62,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:25.119Z","updatedAt":"2026-09-11T10:16:25.234Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34812/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LoadingBayNumberSignParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34812/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34812/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34812/v1/model.glb\" alt=\"Loading bay number sign (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34812/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/34812/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34811","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cdf2cc74","title":"Hand pallet truck (Parcel Depot and Sorting Hall)","summary":"Hydraulic hand pallet truck with 1.15 m forks, a grey pump body, a yellow hood, a red release lever on the tiller and rolling steer and load wheels, the trolley every depot moves its pallets with.","description":"Hydraulic hand pallet truck with 1.15 m forks, a grey pump body, a yellow hood, a red release lever on the tiller and rolling steer and load wheels, the trolley every depot moves its pallets with. Overall 0.66 by 1.27 by 1.94 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The pump body, the tiller and the forks are one rigid assembly: the 200 mm hydraulic lift is not modelled, because a fork that rises out of its own frame reads as a broken model. The wheels turn. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cdf2cc74","cdnUrl":"https://cdn.3dassets.dev/assets/34811/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cdf2cc74","thumbnailUrl":"https://cdn.3dassets.dev/assets/34811/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34811/v1/poster.webp","blurhash":"UEB3+*%14nNL4nRj-:tQ00W?-paI~qkAD%V^","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":21692,"triangles":504,"vertices":1084,"meshes":13,"materials":6,"textures":0,"animations":["wheel-roll"],"boundingBox":{"min":[-0.3100207202698374,-4.023313501799741e-9,-0.8949999809265137],"max":[0.3476000195741653,1.2699999809265137,1.040002116242967]},"sizeMeters":[0.658,1.27,1.935],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:25.023Z","updatedAt":"2026-09-11T10:16:25.135Z","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/34811/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 HandPalletTruckParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34811/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/34811/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34811/v1/model.glb\" alt=\"Hand pallet truck (Parcel Depot and Sorting Hall)\" 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/34811/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/34811/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34813","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2c7530f","title":"Sack truck (Parcel Depot and Sorting Hall)","summary":"Parcel sack truck 1.25 m tall: a galvanised tube frame with a charcoal toe plate, a yellow grip bar, a red strap hook and two solid tyred wheels, parked leaning against a wall or a cage.","description":"Parcel sack truck 1.25 m tall: a galvanised tube frame with a charcoal toe plate, a yellow grip bar, a red strap hook and two solid tyred wheels, parked leaning against a wall or a cage. Overall 0.63 by 1.25 by 0.56 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static model; it is shown parked, so the wheels carry no clip and the strap is modelled solid. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2c7530f","cdnUrl":"https://cdn.3dassets.dev/assets/34813/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-f2c7530f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34813/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34813/v1/poster.webp","blurhash":"U48NqWIW00_0~LD*0Q_1x8V{NOtK_Ko#9IWS","category":{"slug":"vehicles","title":"Vehicles"},"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":14744,"triangles":268,"vertices":584,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.28122200986882223,-5.768191424504465e-9,-0.24212076578557695],"max":[0.34882202169438375,1.2540903091430664,0.3199932823516366]},"sizeMeters":[0.63,1.254,0.562],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:24.350Z","updatedAt":"2026-09-11T10:16:24.455Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34813/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SackTruckParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34813/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34813/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34813/v1/model.glb\" alt=\"Sack truck (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34813/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/34813/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34814","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-528c9054","title":"Counterbalance forklift with raising forks (Parcel Depot and Sorting Hall)","summary":"Electric counterbalance forklift 2.9 m tall with a two stage mast: yellow chassis and counterweight, charcoal overhead guard posts, a seat and tiller, a lifting battery hood, four turning wheels and forks that raise 1.15 m.","description":"Electric counterbalance forklift 2.9 m tall with a two stage mast: yellow chassis and counterweight, charcoal overhead guard posts, a seat and tiller, a lifting battery hood, four turning wheels and forks that raise 1.15 m. Overall 1.33 by 2.88 by 3.17 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 truck's footprint at floor level, with the forks toward +Z. The mast rails, the tilt rams and the chains are modelled solid: a chain is a linkage no rigid node can carry, so the carriage rides the mast without it. The forks raise, the battery hood lifts and the four wheels turn. Rigid node-transform clips: hood-open, hood-close, lift-open, lift-close and wheel-roll. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-528c9054","cdnUrl":"https://cdn.3dassets.dev/assets/34814/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-528c9054","thumbnailUrl":"https://cdn.3dassets.dev/assets/34814/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34814/v1/poster.webp","blurhash":"U7BzB|Vu00jC%hD%D$-=00%M~oIWDgxv-rIU","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":38260,"triangles":908,"vertices":1985,"meshes":25,"materials":6,"textures":0,"animations":["hood-open","hood-close","lift-open","lift-close","wheel-roll"],"boundingBox":{"min":[-0.5500282137943922,-3.576278662098531e-9,-1.6699999570846558],"max":[0.7799999606609345,2.880000114440918,1.5000000429153442]},"sizeMeters":[1.33,2.88,3.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-11T10:16:26.089Z","updatedAt":"2026-09-11T13:28:39.530Z","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/34814/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 CounterbalanceForkliftWithRaisingForksParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34814/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/34814/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34814/v1/model.glb\" alt=\"Counterbalance forklift with raising forks (Parcel Depot and Sorting Hall)\" 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/34814/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/34814/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34815","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-346cc909","title":"Forklift charging point (Parcel Depot and Sorting Hall)","summary":"Battery charging station against a hall wall: a grey cabinet on a plinth with a screen, status lamps, a coiled charge lead on a hook and a yellow impact bollard in front of it.","description":"Battery charging station against a hall wall: a grey cabinet on a plinth with a screen, status lamps, a coiled charge lead on a hook and a yellow impact bollard in front of it. Overall 1.08 by 1.60 by 1.04 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static assembly; the charge lead is modelled as a solid coil on its hook, because a cable is not reachable with a rigid node transform. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-346cc909","cdnUrl":"https://cdn.3dassets.dev/assets/34815/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-346cc909","thumbnailUrl":"https://cdn.3dassets.dev/assets/34815/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34815/v1/poster.webp","blurhash":"U6Dl~5M[004}9jkF%EnK00xw~pxonLnykXSl","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":62384,"triangles":240,"vertices":538,"meshes":7,"materials":7,"textures":1,"animations":[],"boundingBox":{"min":[-0.5,0,-0.32999664296395764],"max":[0.5800032030811395,1.600000023841858,0.7056243170374397]},"sizeMeters":[1.08,1.6,1.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:26.126Z","updatedAt":"2026-09-11T10:16:26.217Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34815/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ForkliftChargingPointParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34815/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34815/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34815/v1/model.glb\" alt=\"Forklift charging point (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34815/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/34815/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34817","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-00f41b0e","title":"Sorting hall floor tile, 4 m (Parcel Depot and Sorting Hall)","summary":"Power floated concrete hall floor module 4 m square and 120 mm thick with saw cut joints running both ways, a yellow lane line along one edge and edge ports on all four sides, so a hall floor of any size lays out on one grid.","description":"Power floated concrete hall floor module 4 m square and 120 mm thick with saw cut joints running both ways, a yellow lane line along one edge and edge ports on all four sides, so a hall floor of any size lays out on one grid. 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. Lay the tile at y = -0.12 so its top face is the walking surface at y = 0. Static modular piece; the painted lane line is modelled as a raised film, not a decal. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-00f41b0e","cdnUrl":"https://cdn.3dassets.dev/assets/34817/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-00f41b0e","thumbnailUrl":"https://cdn.3dassets.dev/assets/34817/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34817/v1/poster.webp","blurhash":"U6Csji-;00Rk-;axRjof00IU~qWB4nogj]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"}],"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":51612,"triangles":48,"vertices":112,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.12731105308393903,2]},"sizeMeters":[4,0.127,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-11T10:16:26.987Z","updatedAt":"2026-09-11T10:16:27.089Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34817/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SortingHallFloorTile4MParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34817/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34817/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34817/v1/model.glb\" alt=\"Sorting hall floor tile, 4 m (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34817/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/34817/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34816","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3d237281","title":"Marked walkway floor tile, 4 m (Parcel Depot and Sorting Hall)","summary":"The same 4 m floor module painted as a pedestrian walkway: a yellow hatched band 1.2 m wide down the middle, a blue walking route square at one end and the same four edge ports, for routing people clear of the forklift lanes.","description":"The same 4 m floor module painted as a pedestrian walkway: a yellow hatched band 1.2 m wide down the middle, a blue walking route square at one end and the same four edge ports, for routing people clear of the forklift lanes. 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. Static modular piece; the paint is modelled as a raised film. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3d237281","cdnUrl":"https://cdn.3dassets.dev/assets/34816/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3d237281","thumbnailUrl":"https://cdn.3dassets.dev/assets/34816/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34816/v1/poster.webp","blurhash":"U7C?o*%M00e.-:WVRks:00M_~pWB4.s:ocM|","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":56260,"triangles":144,"vertices":336,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.12600912500192066,2]},"sizeMeters":[4,0.126,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-11T10:16:28.046Z","updatedAt":"2026-09-11T10:16:28.159Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34816/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarkedWalkwayFloorTile4MParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34816/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34816/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34816/v1/model.glb\" alt=\"Marked walkway floor tile, 4 m (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34816/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/34816/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34819","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbea172b","title":"Sorting hall wall module, 4 m (Parcel Depot and Sorting Hall)","summary":"Ribbed grey cladding wall 4 m wide, 3.6 m tall and 160 mm thick on a concrete plinth, with a charcoal capping rail, a blue wayfinding band at 2.2 m and side ports on the centre line so a hall encloses itself.","description":"Ribbed grey cladding wall 4 m wide, 3.6 m tall and 160 mm thick on a concrete plinth, with a charcoal capping rail, a blue wayfinding band at 2.2 m and side ports on the centre line so a hall encloses itself. Overall 4.00 by 3.60 by 0.24 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; the inner face is toward +Z. Static modular piece. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbea172b","cdnUrl":"https://cdn.3dassets.dev/assets/34819/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbea172b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34819/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34819/v1/poster.webp","blurhash":"U9E{tq_200axIo_4-:8_00IW_Mt7w|xVWFM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":56556,"triangles":156,"vertices":364,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000007629627368999081,-0.11987670522171698],"max":[2,3.6000402272120495,0.11987670522171698]},"sizeMeters":[4,3.6,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:29.056Z","updatedAt":"2026-09-11T10:16:29.168Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34819/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SortingHallWallModule4MParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34819/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34819/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34819/v1/model.glb\" alt=\"Sorting hall wall module, 4 m (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34819/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/34819/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34818","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d27512fd","title":"Roller shutter door module, 4 m (Parcel Depot and Sorting Hall)","summary":"Vehicle door bay 4 m wide and 4.2 m tall in the same wall grid: a 3.2 m by 3.5 m opening in ribbed cladding, charcoal guide channels, yellow impact posts, a shutter hood and a slatted curtain that lifts clear of the opening.","description":"Vehicle door bay 4 m wide and 4.2 m tall in the same wall grid: a 3.2 m by 3.5 m opening in ribbed cladding, charcoal guide channels, yellow impact posts, a shutter hood and a slatted curtain that lifts clear of the opening. Overall 4.00 by 4.20 by 0.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The hood, the barrel inside it, the guides and the threshold angle are modelled solid; only the curtain moves, and it is rigged as a head hinged leaf because one rigid node cannot both rise and coil onto a barrel. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d27512fd","cdnUrl":"https://cdn.3dassets.dev/assets/34818/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d27512fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/34818/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34818/v1/poster.webp","blurhash":"U4AwM7NI00-n?w~p9E008wR*pJV?9axt%0E1","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"},{"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":63844,"triangles":324,"vertices":756,"meshes":18,"materials":6,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-2.000021272129538,-0.00008229847069601143,-0.1350993316130697],"max":[2.000021272129538,4.199999809265137,0.3898704426687867]},"sizeMeters":[4,4.2,0.525],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:27.988Z","updatedAt":"2026-09-11T10:16:28.104Z","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/34818/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 RollerShutterDoorModule4MParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34818/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/34818/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34818/v1/model.glb\" alt=\"Roller shutter door module, 4 m (Parcel Depot and Sorting Hall)\" 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/34818/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/34818/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34820","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1259bc67","title":"Roller shutter door module, open (Parcel Depot and Sorting Hall)","summary":"The same 4 m door bay with the curtain coiled on its barrel in the hood and the opening clear, for a dock a vehicle is backed onto. Identical cladding, guides, impact posts and wall ports.","description":"The same 4 m door bay with the curtain coiled on its barrel in the hood and the opening clear, for a dock a vehicle is backed onto. Identical cladding, guides, impact posts and wall ports. Overall 5.04 by 4.20 by 0.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static variant: the curtain is modelled coiled on the barrel, so nothing here moves. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1259bc67","cdnUrl":"https://cdn.3dassets.dev/assets/34820/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-1259bc67","thumbnailUrl":"https://cdn.3dassets.dev/assets/34820/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34820/v1/poster.webp","blurhash":"UCCZX{~p01N4S,%N-hM^DjM|M|RO$]xpNME3","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":64508,"triangles":296,"vertices":674,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.00008980389003987455,-0.13490974533590452],"max":[3.0399999618530273,4.200089613155177,0.3898704426687867]},"sizeMeters":[5.04,4.2,0.525],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:28.740Z","updatedAt":"2026-09-11T10:16:28.847Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34820/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RollerShutterDoorModuleOpenParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34820/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34820/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34820/v1/model.glb\" alt=\"Roller shutter door module, open (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34820/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/34820/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34821","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ccd961b9","title":"Mezzanine office deck section, 4 m (Parcel Depot and Sorting Hall)","summary":"Mezzanine module 4 m square: a chequer plate deck on charcoal bearers with a yellow edge nosing, a two rail guard along the front edge with blue uprights, and end ports so a run of sections makes an office floor over the sorting hall.","description":"Mezzanine module 4 m square: a chequer plate deck on charcoal bearers with a yellow edge nosing, a two rail guard along the front edge with blue uprights, and end ports so a run of sections makes an office floor over the sorting hall. Overall 4.00 by 1.39 by 4.00 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 walking surface, which is the level a run is set out on; the bearers hang 0.24 m below it and the guard rail stands 1.1 m above it. Static modular piece; the guard rail is bolted, not gated. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ccd961b9","cdnUrl":"https://cdn.3dassets.dev/assets/34821/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-ccd961b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34821/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34821/v1/poster.webp","blurhash":"U8BzLVt700oh9GR-t7oe00j?~qRP_2t1WUjc","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":9556,"triangles":132,"vertices":308,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.2900389085483168,-2],"max":[2,1.102344553029384,2.0000604242645768]},"sizeMeters":[4,1.392,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:29.743Z","updatedAt":"2026-09-11T10:16:29.860Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34821/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MezzanineOfficeDeckSection4MParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34821/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34821/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34821/v1/model.glb\" alt=\"Mezzanine office deck section, 4 m (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34821/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/34821/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34822","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3de951d6","title":"Mezzanine stair flight, 3 m rise (Parcel Depot and Sorting Hall)","summary":"Industrial straight flight up to the office deck: fourteen open chequer plate treads on charcoal stringers, blue grab rails on posts each side and bolted base plates, rising 3 m over a 3.2 m run.","description":"Industrial straight flight up to the office deck: fourteen open chequer plate treads on charcoal stringers, blue grab rails on posts each side and bolted base plates, rising 3 m over a 3.2 m run. Overall 1.54 by 4.06 by 3.44 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The flight rises toward -Z from its foot at the origin, so the top tread lands one riser under a deck set at 3 m. Static flight; the treads, stringers and rails are one rigid assembly. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3de951d6","cdnUrl":"https://cdn.3dassets.dev/assets/34822/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-3de951d6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34822/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34822/v1/poster.webp","blurhash":"U67K_3x]00IASjDiV=_48^jD?vbxM{%NtRD$","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":18560,"triangles":360,"vertices":828,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.7700085343303769,0,-3.2375112169761264],"max":[0.7700085343303769,4.059999942779541,0.1975111657161317]},"sizeMeters":[1.54,4.06,3.435],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:29.836Z","updatedAt":"2026-09-11T10:16:29.949Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34822/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MezzanineStairFlight3MRiseParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34822/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34822/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34822/v1/model.glb\" alt=\"Mezzanine stair flight, 3 m rise (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34822/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/34822/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34823","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c294a285","title":"Supervisor desk with screens (Parcel Depot and Sorting Hall)","summary":"Sort supervisor's desk 1.8 m wide: a grey framed worktop with a cable tray, three charcoal monitors on a bar showing lit panels, a keyboard, a radio charger, a document tray and a swivel chair, for the mezzanine office.","description":"Sort supervisor's desk 1.8 m wide: a grey framed worktop with a cable tray, three charcoal monitors on a bar showing lit panels, a keyboard, a radio charger, a document tray and a swivel chair, for the mezzanine office. Overall 1.80 by 1.27 by 1.53 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static model; the chair does not swivel and the screens are lit faces rather than displays. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c294a285","cdnUrl":"https://cdn.3dassets.dev/assets/34823/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-c294a285","thumbnailUrl":"https://cdn.3dassets.dev/assets/34823/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34823/v1/poster.webp","blurhash":"UCB|gA9G00R$_Ns:8_Sg00-pxvS%00Na^+wv","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":30144,"triangles":596,"vertices":1348,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000008528926794759695,-0.38994414079766665],"max":[0.8999999761581421,1.2699741855016775,1.1449999809265137]},"sizeMeters":[1.8,1.27,1.535],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:30.605Z","updatedAt":"2026-09-11T10:16:30.736Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34823/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SupervisorDeskWithScreensParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34823/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34823/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34823/v1/model.glb\" alt=\"Supervisor desk with screens (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34823/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/34823/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34824","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-83979c04","title":"Driver check in counter (Parcel Depot and Sorting Hall)","summary":"Transport office check in counter 2.2 m wide: a grey panelled front with a blue kick band, a cream worktop with a raised transaction shelf, a screen and card reader, a queue post with a charcoal belt and a blank notice board behind.","description":"Transport office check in counter 2.2 m wide: a grey panelled front with a blue kick band, a cream worktop with a raised transaction shelf, a screen and card reader, a queue post with a charcoal belt and a blank notice board behind. Overall 2.76 by 2.40 by 1.18 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static counter; the queue belt is modelled as a solid strip, because a retractable webbing belt is not reachable with a rigid node. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-83979c04","cdnUrl":"https://cdn.3dassets.dev/assets/34824/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-83979c04","thumbnailUrl":"https://cdn.3dassets.dev/assets/34824/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34824/v1/poster.webp","blurhash":"U6E3M8_400D%~Bs:0LNG0000~q?byER.R5sk","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":14412,"triangles":244,"vertices":567,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.149999976158142,0,-0.5299232421706571],"max":[1.6100000143051147,2.4000000953674316,0.6475478610088148]},"sizeMeters":[2.76,2.4,1.177],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:31.127Z","updatedAt":"2026-09-11T10:16:31.229Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34824/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DriverCheckInCounterParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34824/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34824/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34824/v1/model.glb\" alt=\"Driver check in counter (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34824/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/34824/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34826","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04e556b6","title":"Shift and route board (Parcel Depot and Sorting Hall)","summary":"Free standing shift board 1.9 m tall: a cream writing face in a grey frame on two posts, ruled into a route grid with charcoal lines, hung with blue and red route cards and a yellow header strip, for the wall of a sorting hall.","description":"Free standing shift board 1.9 m tall: a cream writing face in a grey frame on two posts, ruled into a route grid with charcoal lines, hung with blue and red route cards and a yellow header strip, for the wall of a sorting hall. Overall 1.86 by 1.90 by 0.30 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static board; the route cards are modelled in place and do not lift off. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04e556b6","cdnUrl":"https://cdn.3dassets.dev/assets/34826/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-04e556b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/34826/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34826/v1/poster.webp","blurhash":"UEDl[]%M00M|~p-;9G9F00t6?bM{4oof?aRj","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":12948,"triangles":204,"vertices":476,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.9300000071525574,0,-0.1499716189396073],"max":[0.9300000071525574,1.899999976158142,0.1499716189396073]},"sizeMeters":[1.86,1.9,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:32.759Z","updatedAt":"2026-09-11T10:16:32.913Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34826/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShiftAndRouteBoardParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34826/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34826/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34826/v1/model.glb\" alt=\"Shift and route board (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34826/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/34826/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34825","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0493c966","title":"Staff locker bank, four doors (Parcel Depot and Sorting Hall)","summary":"Four door staff locker bank 2.4 m wide and 2 m tall: a grey carcass on a plinth with blue doors, charcoal handles, punched vents, blank cream name cards and a sloped top, and every door swings open.","description":"Four door staff locker bank 2.4 m wide and 2 m tall: a grey carcass on a plinth with blue doors, charcoal handles, punched vents, blank cream name cards and a sloped top, and every door swings open. Overall 2.44 by 2.06 by 0.57 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The carcass, the plinth and the top are static; the four doors swing on their outer stiles. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0493c966","cdnUrl":"https://cdn.3dassets.dev/assets/34825/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0493c966","thumbnailUrl":"https://cdn.3dassets.dev/assets/34825/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34825/v1/poster.webp","blurhash":"U8B;Rj4:00D*R5?wNfI800-VTg%MtSn#xBIq","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":16852,"triangles":348,"vertices":812,"meshes":26,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.2200000286102295,-0.00004276565139393895,-0.2700106878103392],"max":[1.2200000286102295,2.0600442317500813,0.3049974081120951]},"sizeMeters":[2.44,2.06,0.575],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:31.705Z","updatedAt":"2026-09-11T10:16:31.796Z","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/34825/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 StaffLockerBankFourDoorsParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34825/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/34825/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34825/v1/model.glb\" alt=\"Staff locker bank, four doors (Parcel Depot and Sorting Hall)\" 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/34825/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/34825/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34827","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8444d504","title":"Canteen table run with benches (Parcel Depot and Sorting Hall)","summary":"Break area table run 2.4 m long: a cream topped table on a grey frame with a fixed bench each side, blue seat pads, a charcoal foot rail, and a tray, two mugs and a condiment rack left on the top.","description":"Break area table run 2.4 m long: a cream topped table on a grey frame with a fixed bench each side, blue seat pads, a charcoal foot rail, and a tray, two mugs and a condiment rack left on the top. Overall 2.40 by 0.97 by 1.50 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static run; the benches are fixed to the table frame, as a canteen run really is. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8444d504","cdnUrl":"https://cdn.3dassets.dev/assets/34827/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8444d504","thumbnailUrl":"https://cdn.3dassets.dev/assets/34827/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34827/v1/poster.webp","blurhash":"U6DJYP.900?H_3~qIo0000rq?b4.0000~V_3","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":14364,"triangles":248,"vertices":570,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.000017420291012926192,-0.7500582498637787],"max":[1.2000000476837158,0.9699491843452501,0.7500582498637787]},"sizeMeters":[2.4,0.97,1.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:33.428Z","updatedAt":"2026-09-11T10:16:33.560Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34827/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanteenTableRunWithBenchesParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34827/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34827/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34827/v1/model.glb\" alt=\"Canteen table run with benches (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34827/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/34827/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34828","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-73a0bf1b","title":"Vending machine (Parcel Depot and Sorting Hall)","summary":"Break area vending machine 1.9 m tall: a charcoal cabinet with a glazed door on a blue frame, three lit shelves of stock, a keypad, a lit header panel and a cream delivery tray, and the door swings open for restocking.","description":"Break area vending machine 1.9 m tall: a charcoal cabinet with a glazed door on a blue frame, three lit shelves of stock, a keypad, a lit header panel and a cream delivery tray, and the door swings open for restocking. Overall 1.05 by 1.90 by 0.83 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. The cabinet, the shelves and the stock are static; only the glazed front door swings. Rigid node-transform clips: open and close. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-73a0bf1b","cdnUrl":"https://cdn.3dassets.dev/assets/34828/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-73a0bf1b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34828/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34828/v1/poster.webp","blurhash":"UG8#d0xu4TMw*0adMckDS$M{Z~x]t7WBRjj[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":20400,"triangles":360,"vertices":840,"meshes":17,"materials":8,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5449946709828762,0,-0.39000745297613354],"max":[0.5099813959114456,1.9012000560760498,0.43999785342329945]},"sizeMeters":[1.055,1.901,0.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:32.854Z","updatedAt":"2026-09-11T10:16:32.963Z","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/34828/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 VendingMachineParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34828/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/34828/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34828/v1/model.glb\" alt=\"Vending machine (Parcel Depot and Sorting Hall)\" 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/34828/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/34828/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34829","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e1a6644","title":"First aid and fire point (Parcel Depot and Sorting Hall)","summary":"Wall station on a yellow hatched base: a cream first aid cabinet with a red cross, two red extinguishers on a stand, a fire blanket box, a blue signage board and a charcoal call point, the safety kit every depot wall carries.","description":"Wall station on a yellow hatched base: a cream first aid cabinet with a red cross, two red extinguishers on a stand, a fire blanket box, a blue signage board and a charcoal call point, the safety kit every depot wall carries. Overall 1.50 by 2.00 by 0.70 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static station; the cabinet door and the extinguisher pins are modelled solid. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e1a6644","cdnUrl":"https://cdn.3dassets.dev/assets/34829/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-6e1a6644","thumbnailUrl":"https://cdn.3dassets.dev/assets/34829/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34829/v1/poster.webp","blurhash":"UAEyGCx@00Q;pMr]MbK09Xni-rOYH@g1x[rY","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":19880,"triangles":352,"vertices":808,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,-0.000021332412046689946,-0.24994812449435527],"max":[0.75,2,0.4499481125734263]},"sizeMeters":[1.5,2,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:33.399Z","updatedAt":"2026-09-11T10:16:33.510Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34829/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirstAidAndFirePointParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34829/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34829/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34829/v1/model.glb\" alt=\"First aid and fire point (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34829/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/34829/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34830","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d69ce6d4","title":"Safety barrier rail, 2 m (Parcel Depot and Sorting Hall)","summary":"Yellow impact barrier 2 m long and 1.1 m tall: two charcoal posts on bolted base plates carrying a double rail, with end ports on the centre line so a run guards a walkway or a sorting line for any length.","description":"Yellow impact barrier 2 m long and 1.1 m tall: two charcoal posts on bolted base plates carrying a double rail, with end ports on the centre line so a run guards a walkway or a sorting line for any length. Overall 2.16 by 1.10 by 0.30 m (X by Y by Z). Metre units, +Y up, the working face toward +Z, resting on y=0. Static modular piece; the rails are bolted, not sprung. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d69ce6d4","cdnUrl":"https://cdn.3dassets.dev/assets/34830/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-d69ce6d4","thumbnailUrl":"https://cdn.3dassets.dev/assets/34830/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34830/v1/poster.webp","blurhash":"UCD03;%007WZ~S?a4=D,03ad~SIW04oi_0xp","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":12592,"triangles":224,"vertices":516,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0800000429153442,-0.000004565855492466575,-0.1500338815073289],"max":[1.0800000429153442,1.1000045896973503,0.1500338815073289]},"sizeMeters":[2.16,1.1,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:34.552Z","updatedAt":"2026-09-11T10:16:34.683Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34830/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SafetyBarrierRail2MParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34830/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34830/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34830/v1/model.glb\" alt=\"Safety barrier rail, 2 m (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34830/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/34830/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34831","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8674e42f","title":"High bay light unit (Parcel Depot and Sorting Hall)","summary":"Linear high bay light 1.6 m long: a charcoal extrusion with a lit diffuser, a steel reflector wing each side and two drop rods to the roof steel, for lighting a sorting hall from above.","description":"Linear high bay light 1.6 m long: a charcoal extrusion with a lit diffuser, a steel reflector wing each side and two drop rods to the roof steel, for lighting a sorting hall from above. Overall 1.64 by 1.01 by 0.46 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 fixing point at the top of the drop rods, so the unit hangs 0.9 m below whatever it is mounted to. Static fitting; the light is an emissive diffuser face, not a real light source. Static geometry; no rig, collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8674e42f","cdnUrl":"https://cdn.3dassets.dev/assets/34831/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-8674e42f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34831/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34831/v1/poster.webp","blurhash":"U79tP[x]D%tR4n-;-=M_00M_jZay_4RjD$Rj","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":8912,"triangles":136,"vertices":314,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8199999928474426,-1.0100410325523117,-0.2299746612017143],"max":[0.8199999928474426,0.00003812062560970553,0.2299746612017143]},"sizeMeters":[1.64,1.01,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:34.656Z","updatedAt":"2026-09-11T10:16:34.852Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34831/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HighBayLightUnitParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34831/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34831/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34831/v1/model.glb\" alt=\"High bay light unit (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34831/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/34831/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34832","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbda8b33","title":"Wall extractor fan panel (Parcel Depot and Sorting Hall)","summary":"Wall mounted extract fan 1.1 m square: a grey louvred frame with a charcoal guard grille, a blue isolator box on the side and a six blade fan that spins behind the louvres.","description":"Wall mounted extract fan 1.1 m square: a grey louvred frame with a charcoal guard grille, a blue isolator box on the side and a six blade fan that spins behind the louvres. Overall 1.30 by 1.10 by 0.22 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 panel's back face, which is the wall surface it is fixed to. The frame, the louvres, the guard and the isolator are static; only the fan spins. Rigid node-transform clips: spin. No skinning. No collision or navigation data. Original CC0 geometry: no maker, courier or brand marks anywhere, and every livery and sign is invented.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbda8b33","cdnUrl":"https://cdn.3dassets.dev/assets/34832/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-cbda8b33","thumbnailUrl":"https://cdn.3dassets.dev/assets/34832/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34832/v1/poster.webp","blurhash":"U7CGcBng00Ip~q%gIUDi4T%h%MRObd?HRj4.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"},{"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":17884,"triangles":244,"vertices":539,"meshes":10,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.5899999737739563,-0.550000011920929,-0.0012091545618971994],"max":[0.7099953951780733,0.550000011920929,0.2199765025353335]},"sizeMeters":[1.3,1.1,0.221],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T10:16:36.371Z","updatedAt":"2026-09-11T10:16:36.487Z","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/34832/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 WallExtractorFanPanelParcelDepotAndSortingHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34832/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/34832/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34832/v1/model.glb\" alt=\"Wall extractor fan panel (Parcel Depot and Sorting Hall)\" 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/34832/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/34832/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34833","slug":"parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","title":"Parcel depot sorting hall and loading dock (Parcel Depot and Sorting Hall)","summary":"A working parcel depot at shift change: an incline conveyor feeds a sorting line through a scanner arch and a weigh station to two diverters dropping into bag frames, a curve takes the line out to a roller spur at the dock, and cages, pallets and parcel stacks fill the floor...","description":"A working parcel depot at shift change: an incline conveyor feeds a sorting line through a scanner arch and a weigh station to two diverters dropping into bag frames, a curve takes the line out to a roller spur at the dock, and cages, pallets and parcel stacks fill the floor either side of a marked walkway. Two vans are backed onto the dock bays with a trailer parked on the apron beyond, a forklift works the hall, and the mezzanine office, the driver check in, the lockers and the canteen run down the far wall. The roof steel is left off so the hall can be read from above, with the high bay lights hanging where the trusses would be.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34833/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-dep-c1755830-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34833/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34833/v1/poster.webp","blurhash":"U5B|Nh%300D%WB%M-;M|00S1_NxuMx9FD%t6","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":797164,"triangles":17464,"vertices":39626,"meshes":372,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-16,-0.12006042798986698,-12.119876705221717],"max":[8.119876705221717,4.60003812062561,8]},"sizeMeters":[24.12,4.72,20.12],"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-11T10:16:36.389Z","updatedAt":"2026-09-11T10:16:36.503Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34833/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParcelDepotSortingHallAndLoadingDockParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34833/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34833/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34833/v1/model.glb\" alt=\"Parcel depot sorting hall and loading dock (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34833/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/34833/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34834","slug":"parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0a2a26e8","title":"Depot dock and yard (Parcel Depot and Sorting Hall)","summary":"The yard side of the same building at collection time: two vans backed onto the dock bays under a shelter, a trailer parked alongside, the forklift and a pallet truck working the apron, and cages, pallets, stacks and loose mail staged behind them on a barriered walkway.","description":"The yard side of the same building at collection time: two vans backed onto the dock bays under a shelter, a trailer parked alongside, the forklift and a pallet truck working the apron, and cages, pallets, stacks and loose mail staged behind them on a barriered walkway.","status":"published","url":"https://3dassets.dev/assets/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0a2a26e8","cdnUrl":"https://cdn.3dassets.dev/assets/34834/v1/model.glb","downloadUrl":"https://3dassets.dev/download/parcel-depot-and-sorting-hall-parcel-depot-and-sorting-0a2a26e8","thumbnailUrl":"https://cdn.3dassets.dev/assets/34834/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34834/v1/poster.webp","blurhash":"U7C%8IRO00xw9ZIUt5%M00t8~qV?~W?bWEIU","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":454664,"triangles":10048,"vertices":22661,"meshes":206,"materials":11,"textures":1,"animations":[],"boundingBox":{"min":[-8,-0.12006042798986698,-6.494955851989035],"max":[8,4.5,10]},"sizeMeters":[16,4.62,16.495],"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-11T10:16:37.622Z","updatedAt":"2026-09-11T10:16:37.723Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34834/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DepotDockAndYardParcelDepotAndSortingHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34834/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34834/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34834/v1/model.glb\" alt=\"Depot dock and yard (Parcel Depot and Sorting Hall)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/34834/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/34834/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"parcel-depot-and-sorting-hall","title":"Parcel Depot and Sorting Hall","url":"https://3dassets.dev/demos/parcel-depot-and-sorting-hall"}}}