{"data":{"id":305,"slug":"motorway-services-and-truck-park","title":"Motorway Services and Truck Park","summary":"A complete motorway service area: a modular amenity building with its food court, shop and concourse fittings, a marked car park with charging bays and lorry bays, the yard behind it, and the slip road, gantry and signage that lead in.","description":"A realistic modern motorway service area in metre units, built as the building and the parking rather than the filling station. The amenity building assembles from 2 m glazed, solid and automatic entrance facade bays under repeating pitched roof sections, floored in concourse paving, and is fitted out with food court counters in three colourways, seating booths, table clusters, ordering kiosks, a coffee stand, a shop counter and gondola, toilets, baby change and driver shower entrances, a cash machine, arcade cabinets, an information totem, planters, a sorting station and a cleaning cart. Outside are marked car, accessible, family, charging and crossing modules on one grid, long lorry and delivery bays, kerbed verges, EV charging posts, lamp columns, a height barrier, bollards, a trolley shelter with its trolleys, bins, picnic benches, mesh fencing and planting. The approach brings a two lane slip road with lane arrows and a 90 degree bend, a direction gantry, a services board and speed and queue plates, and the yard behind carries a bin store, a staff cabin, a generator and a water tank. Automatic doors, swing doors, bin lids, the cash machine shutter, the kiosk screen and every castor ship rigid node transform clips. Charging leads, lighting cables, traffic, water and signage artwork are deliberately static: a flexible lead is not reachable with one rigid node, and a sign face is left blank on purpose. No operator, chain, fuel company or vehicle manufacturer name appears anywhere. CC0 geometry prepared for human review.","url":"https://3dassets.dev/packs/motorway-services-and-truck-park","coverUrl":"https://cdn.3dassets.dev/assets/35979/v1/poster.webp","assetCount":54,"aiGenerated":true,"aiGeneratedAssetCount":54,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":4818740,"totalTriangles":114804,"starterScene":{"id":"35979","slug":"motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","title":"Motorway service area (Motorway Services and Truck Park)","summary":"A working motorway service area: an amenity building of glazed facade bays under a pitched roof with automatic lobby doors at the front, a food court of three counters, booths, tables and ordering kiosks inside, a shop counter, gondolas and a coffee stand down one side and...","description":"A working motorway service area: an amenity building of glazed facade bays under a pitched roof with automatic lobby doors at the front, a food court of three counters, booths, tables and ordering kiosks inside, a shop counter, gondolas and a coffee stand down one side and the toilets, baby change and driver shower entrances down the other. In front of it a marked car park with accessible, family and charging bays, a crossing on the line out of the doors, lamp columns, bollards, a trolley shelter and planting; a lorry park and a fenced service yard with the bin store, staff cabin, generator and water tank to one side; and the slip road arriving from the right under its direction gantry, round the bend and in past the height barrier. Every sign face is blank.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35979/v1/poster.webp","blurhash":"U88N^F%f00IBM|bHtQjF00My_Nx[xtj?M|bc","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":2238580,"triangles":55722,"vertices":123153,"meshes":237,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-15.850000023841858,-0.00024353904672307775,-21.5],"max":[23.5,9.319822944961324,12.500190740684225]},"sizeMeters":[39.35,9.32,34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:24.414Z","updatedAt":"2026-09-11T19:10:24.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35979/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MotorwayServiceAreaMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35979/v1/model.glb\" alt=\"Motorway service area (Motorway Services and Truck Park)\" 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/35979/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/35979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"35928","slug":"motorway-services-and-truck-park-facade-bay-glazed-12e78322","title":"Amenity facade bay, glazed (Motorway Services and Truck Park)","summary":"A 2 m glazed frontage bay for the amenity building: clad pilasters with accent reveals, a precast plinth, a full height curtain wall pane in a steel frame and a blank illuminated fascia band over it. Couple the bays on their jambs for a frontage of any width.","description":"A 2 m glazed frontage bay for the amenity building: clad pilasters with accent reveals, a precast plinth, a full height curtain wall pane in a steel frame and a blank illuminated fascia band over it. Couple the bays on their jambs for a frontage of any width. Dimensions 2.00 by 3.60 by 0.38 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: bay-left, bay-right (type facade-bay). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-facade-bay-glazed-12e78322","cdnUrl":"https://cdn.3dassets.dev/assets/35928/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-facade-bay-glazed-12e78322","thumbnailUrl":"https://cdn.3dassets.dev/assets/35928/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35928/v1/poster.webp","blurhash":"U3B|+=+^00B.HCyD*x8w00t,~WL~B9-;^64T","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":40912,"triangles":896,"vertices":1996,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.0001159438419833,0,-0.1799273606014924],"max":[1.0001159438419833,3.5999999046325684,0.20195737267584113]},"sizeMeters":[2,3.6,0.382],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:46.231Z","updatedAt":"2026-09-11T19:09:46.342Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35928/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmenityFacadeBayGlazedMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35928/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35928/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35928/v1/model.glb\" alt=\"Amenity facade bay, glazed (Motorway Services and Truck Park)\" 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/35928/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/35928/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35929","slug":"motorway-services-and-truck-park-facade-bay-solid-effb5eba","title":"Amenity facade bay, solid (Motorway Services and Truck Park)","summary":"The blank flank bay: a rendered panel between the same pilasters with a recessed louvre vent and an accent kick band, for the sides and the back of the building and the stretches a frontage does not glaze.","description":"The blank flank bay: a rendered panel between the same pilasters with a recessed louvre vent and an accent kick band, for the sides and the back of the building and the stretches a frontage does not glaze. Dimensions 2.00 by 3.60 by 0.38 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: bay-left, bay-right (type facade-bay). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-facade-bay-solid-effb5eba","cdnUrl":"https://cdn.3dassets.dev/assets/35929/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-facade-bay-solid-effb5eba","thumbnailUrl":"https://cdn.3dassets.dev/assets/35929/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35929/v1/poster.webp","blurhash":"U7CjnXw|00JkTKxurXDi00o}~WR5PUtlvgMd","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":59280,"triangles":1312,"vertices":2881,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.0001159438419833,0,-0.17994689255990126],"max":[1.0001159438419833,3.5999999046325684,0.20195737267584113]},"sizeMeters":[2,3.6,0.382],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:46.477Z","updatedAt":"2026-09-11T19:09:46.588Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35929/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmenityFacadeBaySolidMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35929/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35929/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35929/v1/model.glb\" alt=\"Amenity facade bay, solid (Motorway Services and Truck Park)\" 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/35929/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/35929/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35926","slug":"motorway-services-and-truck-park-entrance-lobby-bay-84c40e22","title":"Entrance lobby bay, automatic doors (Motorway Services and Truck Park)","summary":"The entrance bay: the same 2 m shell with a lined opening, a head track, a transom light and two automatic glazed leaves that part sideways in the track. Place two side by side for the full width entrance a services building has.","description":"The entrance bay: the same 2 m shell with a lined opening, a head track, a transom light and two automatic glazed leaves that part sideways in the track. Place two side by side for the full width entrance a services building has. Dimensions 2.00 by 3.60 by 0.38 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: lobby-door-left, lobby-door-right. Connectors: bay-left, bay-right (type facade-bay). The leaves slide apart from the middle. The door motor, the sensors and the rubber seals are modelled as part of the head track and do not move separately. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-entrance-lobby-bay-84c40e22","cdnUrl":"https://cdn.3dassets.dev/assets/35926/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-entrance-lobby-bay-84c40e22","thumbnailUrl":"https://cdn.3dassets.dev/assets/35926/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35926/v1/poster.webp","blurhash":"U4BD~ErX00csY*x]dW8_9ZyD-UD4FH%g=y8{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"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":60680,"triangles":1696,"vertices":3801,"meshes":12,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.0001159438419833,0,-0.1799273606014924],"max":[1.0001159438419833,3.5999999046325684,0.20195737267584113]},"sizeMeters":[2,3.6,0.382],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:46.127Z","updatedAt":"2026-09-11T19:09:46.285Z","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/35926/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 EntranceLobbyBayAutomaticDoorsMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35926/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/35926/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35926/v1/model.glb\" alt=\"Entrance lobby bay, automatic doors (Motorway Services and Truck Park)\" 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/35926/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/35926/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35927","slug":"motorway-services-and-truck-park-pitched-roof-section-4cf23a61","title":"Pitched roof section (Motorway Services and Truck Park)","summary":"One 2 m module of a duo pitched roof spanning the building 8.4 m front to back: two membrane slopes to a capped ridge, accent eaves fascias, gutters on both sides and a ceiling deck underneath so an assembled building is closed overhead.","description":"One 2 m module of a duo pitched roof spanning the building 8.4 m front to back: two membrane slopes to a capped ridge, accent eaves fascias, gutters on both sides and a ceiling deck underneath so an assembled building is closed overhead. Dimensions 2.04 by 1.54 by 8.54 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: roof-left, roof-right (type roof-section). The module rests on y=0 at the ceiling soffit, so it is placed at the top of the facade bays. Repeat it once per bay along the frontage. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-pitched-roof-section-4cf23a61","cdnUrl":"https://cdn.3dassets.dev/assets/35927/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-pitched-roof-section-4cf23a61","thumbnailUrl":"https://cdn.3dassets.dev/assets/35927/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35927/v1/poster.webp","blurhash":"U7AAgsJ-00S18_H?xaxa00?a~qIU_N?vD*S1","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":23720,"triangles":488,"vertices":1073,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.0199694629845797,0.00020080995528950346,-4.272307872772217],"max":[1.0199694629845797,1.5397961153064852,4.272307872772217]},"sizeMeters":[2.04,1.54,8.545],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:46.208Z","updatedAt":"2026-09-11T19:09:46.325Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35927/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PitchedRoofSectionMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35927/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35927/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35927/v1/model.glb\" alt=\"Pitched roof section (Motorway Services and Truck Park)\" 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/35927/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/35927/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35930","slug":"motorway-services-and-truck-park-concourse-paving-tile-4dca5a2e","title":"Concourse paving tile (Motorway Services and Truck Park)","summary":"A 2 m precast paving module on half the bay grid, for the concourse floor inside and the pedestrian apron outside. The joint strips stand proud on two edges only, so a laid field never paints one joint twice in the same plane.","description":"A 2 m precast paving module on half the bay grid, for the concourse floor inside and the pedestrian apron outside. The joint strips stand proud on two edges only, so a laid field never paints one joint twice in the same plane. Dimensions 2.00 by 0.13 by 2.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type paving). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-concourse-paving-tile-4dca5a2e","cdnUrl":"https://cdn.3dassets.dev/assets/35930/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-concourse-paving-tile-4dca5a2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35930/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35930/v1/poster.webp","blurhash":"UCDl{3%M00RjjcWCoeoe00M{~qj[WAofRkRk","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"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":13556,"triangles":256,"vertices":573,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00006164604803700346,-1],"max":[1,0.12996047481105027,1]},"sizeMeters":[2,0.13,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:49.093Z","updatedAt":"2026-09-11T19:09:49.222Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35930/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConcoursePavingTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35930/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35930/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35930/v1/model.glb\" alt=\"Concourse paving tile (Motorway Services and Truck Park)\" 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/35930/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/35930/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35932","slug":"motorway-services-and-truck-park-food-court-counter-af0fa092","title":"Food court counter unit (Motorway Services and Truck Park)","summary":"A 3 m food court servery: a clad counter with an accent fascia, a stainless top with two heated wells, a tray rail and sneeze screen on the customer side, a till at one end, and a bulkhead over it carrying three blank illuminated menu panels.","description":"A 3 m food court servery: a clad counter with an accent fascia, a stainless top with two heated wells, a tray rail and sneeze screen on the customer side, a till at one end, and a bulkhead over it carrying three blank illuminated menu panels. Dimensions 3.08 by 3.61 by 1.20 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. All three menu panels are wordless, so a project can put its own artwork on them. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-food-court-counter-af0fa092","cdnUrl":"https://cdn.3dassets.dev/assets/35932/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-food-court-counter-af0fa092","thumbnailUrl":"https://cdn.3dassets.dev/assets/35932/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35932/v1/poster.webp","blurhash":"U8CGx*Iq00$*R5xtNGM{00Rj_NaeNKx]-;IA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":67940,"triangles":1472,"vertices":3307,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.5399999618530273,-0.000008212658550332819,-0.5650559637614717],"max":[1.5399999618530273,3.6100501255227333,0.6310559485026827]},"sizeMeters":[3.08,3.61,1.196],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:49.165Z","updatedAt":"2026-09-11T19:09:49.292Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35932/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoodCourtCounterUnitMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35932/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35932/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35932/v1/model.glb\" alt=\"Food court counter unit (Motorway Services and Truck Park)\" 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/35932/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/35932/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35931","slug":"motorway-services-and-truck-park-food-court-counter-am-40105366","title":"Food court counter unit, amber fascia (Motorway Services and Truck Park)","summary":"The same servery in the amber colourway, for the second unit in a food court where each operator has its own fascia colour. Geometry is identical to the teal counter.","description":"The same servery in the amber colourway, for the second unit in a food court where each operator has its own fascia colour. Geometry is identical to the teal counter. Dimensions 3.08 by 3.61 by 1.20 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-food-court-counter-am-40105366","cdnUrl":"https://cdn.3dassets.dev/assets/35931/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-food-court-counter-am-40105366","thumbnailUrl":"https://cdn.3dassets.dev/assets/35931/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35931/v1/poster.webp","blurhash":"U8EM8sW800o#E1t8V?M{00Rj~qR,R*-.?a9Z","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":67212,"triangles":1472,"vertices":3307,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.5399999618530273,-0.000008212658550332819,-0.5650559637614717],"max":[1.5399999618530273,3.6100501255227333,0.6310559485026827]},"sizeMeters":[3.08,3.61,1.196],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:49.128Z","updatedAt":"2026-09-11T19:09:49.279Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35931/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoodCourtCounterUnitAmberFasciaMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35931/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35931/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35931/v1/model.glb\" alt=\"Food court counter unit, amber fascia (Motorway Services and Truck Park)\" 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/35931/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/35931/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35933","slug":"motorway-services-and-truck-park-food-court-counter-be-3117ba2b","title":"Food court counter unit, berry fascia (Motorway Services and Truck Park)","summary":"The same servery in the berry colourway, so a run of three counters reads as three separate offers rather than one long canteen.","description":"The same servery in the berry colourway, so a run of three counters reads as three separate offers rather than one long canteen. Dimensions 3.08 by 3.61 by 1.20 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-food-court-counter-be-3117ba2b","cdnUrl":"https://cdn.3dassets.dev/assets/35933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-food-court-counter-be-3117ba2b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35933/v1/poster.webp","blurhash":"U7D+rZVa00tkEKtRRQIU00NG~qS1Vv-W?H9Z","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":68044,"triangles":1472,"vertices":3307,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-1.5399999618530273,-0.000008212658550332819,-0.5650559637614717],"max":[1.5399999618530273,3.6100501255227333,0.6310559485026827]},"sizeMeters":[3.08,3.61,1.196],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:49.336Z","updatedAt":"2026-09-11T19:09:49.445Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35933/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoodCourtCounterUnitBerryFasciaMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35933/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35933/v1/model.glb\" alt=\"Food court counter unit, berry fascia (Motorway Services and Truck Park)\" 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/35933/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/35933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35936","slug":"motorway-services-and-truck-park-seating-booth-30c160cb","title":"Seating booth (Motorway Services and Truck Park)","summary":"A food court booth: two upholstered bench seats facing each other across a fixed table, each with a high back and a timber capping rail. Run them end to end down a wall or back to back through the middle of a hall.","description":"A food court booth: two upholstered bench seats facing each other across a fixed table, each with a high back and a timber capping rail. Run them end to end down a wall or back to back through the middle of a hall. Dimensions 2.24 by 1.31 by 2.34 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-seating-booth-30c160cb","cdnUrl":"https://cdn.3dassets.dev/assets/35936/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-seating-booth-30c160cb","thumbnailUrl":"https://cdn.3dassets.dev/assets/35936/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35936/v1/poster.webp","blurhash":"UCFN#uW-0K$l~UI:NG-V00Ipxtf$0gwNNGF;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":43024,"triangles":960,"vertices":2105,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.1200106403965697,-0.00003202121156714588,-1.1699999570846558],"max":[1.1200106403965697,1.3099726608093705,1.1699999570846558]},"sizeMeters":[2.24,1.31,2.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:52.030Z","updatedAt":"2026-09-11T19:09:52.232Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35936/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SeatingBoothMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35936/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35936/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35936/v1/model.glb\" alt=\"Seating booth (Motorway Services and Truck Park)\" 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/35936/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/35936/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35935","slug":"motorway-services-and-truck-park-table-and-chair-clust-f2e8889c","title":"Table and chair cluster (Motorway Services and Truck Park)","summary":"A round cafe table on a cast column base with four moulded shell chairs on tubular frames around it, spaced as they sit in a real food court.","description":"A round cafe table on a cast column base with four moulded shell chairs on tubular frames around it, spaced as they sit in a real food court. Dimensions 1.85 by 0.91 by 1.85 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-table-and-chair-clust-f2e8889c","cdnUrl":"https://cdn.3dassets.dev/assets/35935/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-table-and-chair-clust-f2e8889c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35935/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35935/v1/poster.webp","blurhash":"U77oCatS00Inu3WUR6n%00Ri~qxGM1oz%KR%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":71140,"triangles":1772,"vertices":3602,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.9231722950935364,-0.000020044361533244626,-0.9231722950935364],"max":[0.9231722950935364,0.9149798109600381,0.9231722950935364]},"sizeMeters":[1.846,0.915,1.846],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:52.013Z","updatedAt":"2026-09-11T19:09:52.220Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35935/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TableAndChairClusterMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35935/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35935/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35935/v1/model.glb\" alt=\"Table and chair cluster (Motorway Services and Truck Park)\" 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/35935/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/35935/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35934","slug":"motorway-services-and-truck-park-self-service-kiosk-15e96346","title":"Self service ordering kiosk (Motorway Services and Truck Park)","summary":"A free standing ordering kiosk: a clad pedestal on a weighted base with a card reader, a receipt slot and a blank touch screen head on a real mount. The screen tips on its mount so a queue can read it from any height.","description":"A free standing ordering kiosk: a clad pedestal on a weighted base with a card reader, a receipt slot and a blank touch screen head on a real mount. The screen tips on its mount so a queue can read it from any height. Dimensions 0.56 by 1.67 by 0.44 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: kiosk-screen. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-self-service-kiosk-15e96346","cdnUrl":"https://cdn.3dassets.dev/assets/35934/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-self-service-kiosk-15e96346","thumbnailUrl":"https://cdn.3dassets.dev/assets/35934/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35934/v1/poster.webp","blurhash":"U77xj%x]00DO~Ct70eM{zqnjPTS#56jZ=|W:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":24856,"triangles":488,"vertices":1061,"meshes":5,"materials":4,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.2800122124833642,0,-0.21996948548089007],"max":[0.2800122124833642,1.66928497250292,0.21996948548089007]},"sizeMeters":[0.56,1.669,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:51.988Z","updatedAt":"2026-09-11T19:09:52.086Z","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/35934/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 SelfServiceOrderingKioskMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35934/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/35934/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35934/v1/model.glb\" alt=\"Self service ordering kiosk (Motorway Services and Truck Park)\" 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/35934/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/35934/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35937","slug":"motorway-services-and-truck-park-coffee-stand-342246e3","title":"Coffee stand (Motorway Services and Truck Park)","summary":"A small coffee island: a counter with an accent fascia carrying a bean to cup machine with two glass hoppers, a dispense head over a drip tray, cup stacks and a timber tray, under a hung header with a blank illuminated panel.","description":"A small coffee island: a counter with an accent fascia carrying a bean to cup machine with two glass hoppers, a dispense head over a drip tray, cup stacks and a timber tray, under a hung header with a blank illuminated panel. Dimensions 1.86 by 2.76 by 0.86 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-coffee-stand-342246e3","cdnUrl":"https://cdn.3dassets.dev/assets/35937/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-coffee-stand-342246e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/35937/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35937/v1/poster.webp","blurhash":"U5BNZmyD00MxEz$iVX9t00IA^Q%N?^TxR5vL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":57576,"triangles":1248,"vertices":2746,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.9300000071525574,0.000009310950575769361,-0.42996216035505513],"max":[0.9300000071525574,2.760009471389937,0.42996216035505513]},"sizeMeters":[1.86,2.76,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:52.251Z","updatedAt":"2026-09-11T19:09:52.364Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35937/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoffeeStandMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35937/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35937/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35937/v1/model.glb\" alt=\"Coffee stand (Motorway Services and Truck Park)\" 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/35937/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/35937/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35938","slug":"motorway-services-and-truck-park-shop-counter-04c8353e","title":"Shop counter with till (Motorway Services and Truck Park)","summary":"A 2.4 m shop counter: a dark worktop over a clad carcass with an accent reveal, a till on a raised plate, a card reader on a gooseneck and a stocked impulse display on the customer side.","description":"A 2.4 m shop counter: a dark worktop over a clad carcass with an accent reveal, a till on a raised plate, a card reader on a gooseneck and a stocked impulse display on the customer side. Dimensions 2.46 by 1.41 by 0.84 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-shop-counter-04c8353e","cdnUrl":"https://cdn.3dassets.dev/assets/35938/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-shop-counter-04c8353e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35938/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35938/v1/poster.webp","blurhash":"U7D];*568__M4T?cyDad00VEjcNa*IE1MJDi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":71648,"triangles":1584,"vertices":3551,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.2300000190734863,-0.00001208154698306707,-0.42001007762118103],"max":[1.2300000190734863,1.4100248826693305,0.42001007762118103]},"sizeMeters":[2.46,1.41,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:54.880Z","updatedAt":"2026-09-11T19:09:54.997Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35938/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShopCounterWithTillMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35938/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35938/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35938/v1/model.glb\" alt=\"Shop counter with till (Motorway Services and Truck Park)\" 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/35938/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/35938/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35940","slug":"motorway-services-and-truck-park-magazine-and-snack-go-2c9faa74","title":"Magazine and snack gondola (Motorway Services and Truck Park)","summary":"A double sided shop gondola: two stocked snack shelves a side with accent price rails under two sloping magazine tiers, on a plinth with an accent header. Every cover and packet is blank.","description":"A double sided shop gondola: two stocked snack shelves a side with accent price rails under two sloping magazine tiers, on a plinth with an accent header. Every cover and packet is blank. Dimensions 1.84 by 1.90 by 0.65 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-magazine-and-snack-go-2c9faa74","cdnUrl":"https://cdn.3dassets.dev/assets/35940/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-magazine-and-snack-go-2c9faa74","thumbnailUrl":"https://cdn.3dassets.dev/assets/35940/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35940/v1/poster.webp","blurhash":"UFBW-=%M00ELuPxvibM{1HOY=y$NS]X,ajrE","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":210336,"triangles":4864,"vertices":10984,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.9200000166893005,-0.0000438706538760103,-0.3250477673638732],"max":[0.9200000166893005,1.9000506048230963,0.3250477673638732]},"sizeMeters":[1.84,1.9,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:55.106Z","updatedAt":"2026-09-11T19:09:55.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35940/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagazineAndSnackGondolaMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35940/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35940/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35940/v1/model.glb\" alt=\"Magazine and snack gondola (Motorway Services and Truck Park)\" 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/35940/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/35940/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35939","slug":"motorway-services-and-truck-park-toilets-entrance-97042ccd","title":"Toilets entrance with sign (Motorway Services and Truck Park)","summary":"The toilets entrance: a lined block with a real opening, a glazed swing leaf on its left stile and a blank illuminated pictogram sign over the head. Stand it against a concourse wall or use it as a free standing core face.","description":"The toilets entrance: a lined block with a real opening, a glazed swing leaf on its left stile and a blank illuminated pictogram sign over the head. Stand it against a concourse wall or use it as a free standing core face. Dimensions 1.90 by 2.70 by 0.39 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: wc-door. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-toilets-entrance-97042ccd","cdnUrl":"https://cdn.3dassets.dev/assets/35939/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-toilets-entrance-97042ccd","thumbnailUrl":"https://cdn.3dassets.dev/assets/35939/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35939/v1/poster.webp","blurhash":"U5D^1DNw00=x_N?b4n004Tx]KODi^+-;E18_","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":32632,"triangles":736,"vertices":1583,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9499893352990985,0,-0.19000824071745975],"max":[0.9499893352990985,2.700000047683716,0.1960100680682902]},"sizeMeters":[1.9,2.7,0.386],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:54.895Z","updatedAt":"2026-09-11T19:09:55.024Z","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/35939/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 ToiletsEntranceWithSignMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35939/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/35939/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35939/v1/model.glb\" alt=\"Toilets entrance with sign (Motorway Services and Truck Park)\" 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/35939/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/35939/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35941","slug":"motorway-services-and-truck-park-baby-change-entrance-c2e6afae","title":"Baby change entrance (Motorway Services and Truck Park)","summary":"The same entrance block in the amber signing colour for the baby change room, so a wall of doors reads as separate facilities at a glance. The pictogram panel stays blank.","description":"The same entrance block in the amber signing colour for the baby change room, so a wall of doors reads as separate facilities at a glance. The pictogram panel stays blank. Dimensions 1.90 by 2.70 by 0.39 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: wc-door. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-baby-change-entrance-c2e6afae","cdnUrl":"https://cdn.3dassets.dev/assets/35941/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-baby-change-entrance-c2e6afae","thumbnailUrl":"https://cdn.3dassets.dev/assets/35941/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35941/v1/poster.webp","blurhash":"U6G8=is%00S+~o?a9F0002%2=;D%.8-:Mx4o","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":32660,"triangles":736,"vertices":1583,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9499893352990985,0,-0.19000824071745975],"max":[0.9499893352990985,2.700000047683716,0.1960100680682902]},"sizeMeters":[1.9,2.7,0.386],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:55.140Z","updatedAt":"2026-09-11T19:09:55.263Z","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/35941/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 BabyChangeEntranceMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35941/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/35941/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35941/v1/model.glb\" alt=\"Baby change entrance (Motorway Services and Truck Park)\" 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/35941/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/35941/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35942","slug":"motorway-services-and-truck-park-driver-shower-entranc-4ec379bc","title":"Driver shower entrance (Motorway Services and Truck Park)","summary":"The driver shower block entrance in the berry signing colour, the door a lorry driver takes a shower token to. Identical shell, leaf and pivot to the toilets entrance.","description":"The driver shower block entrance in the berry signing colour, the door a lorry driver takes a shower token to. Identical shell, leaf and pivot to the toilets entrance. Dimensions 1.90 by 2.70 by 0.39 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: wc-door. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-driver-shower-entranc-4ec379bc","cdnUrl":"https://cdn.3dassets.dev/assets/35942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-driver-shower-entranc-4ec379bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/35942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35942/v1/poster.webp","blurhash":"U6FrYOn500pb~D?I9F000cxu#BD%?b-qIU4.","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":32680,"triangles":736,"vertices":1583,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9499893352990985,0,-0.19000824071745975],"max":[0.9499893352990985,2.700000047683716,0.1960100680682902]},"sizeMeters":[1.9,2.7,0.386],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:57.674Z","updatedAt":"2026-09-11T19:09:57.770Z","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/35942/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 DriverShowerEntranceMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35942/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/35942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35942/v1/model.glb\" alt=\"Driver shower entrance (Motorway Services and Truck Park)\" 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/35942/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/35942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35943","slug":"motorway-services-and-truck-park-cash-machine-faab98eb","title":"Concourse cash machine (Motorway Services and Truck Park)","summary":"A free standing cash machine in a steel housing: a blank screen, keypad, card slot and dispense tray under an accent head box with a blank illuminated panel, closed by a slatted security shutter that runs up into the hood.","description":"A free standing cash machine in a steel housing: a blank screen, keypad, card slot and dispense tray under an accent head box with a blank illuminated panel, closed by a slatted security shutter that runs up into the hood. Dimensions 0.84 by 1.82 by 0.68 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: atm-shutter. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-cash-machine-faab98eb","cdnUrl":"https://cdn.3dassets.dev/assets/35943/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-cash-machine-faab98eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/35943/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35943/v1/poster.webp","blurhash":"UF8ObntR4TIUy?o}QmM{KibbrXjFWCWBoLxZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":48116,"triangles":1024,"vertices":2300,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4200284115729793,0,-0.3299912955894692],"max":[0.4200284115729793,1.8199904376855391,0.3479794235476264]},"sizeMeters":[0.84,1.82,0.678],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:57.717Z","updatedAt":"2026-09-11T19:09:57.807Z","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/35943/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 ConcourseCashMachineMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35943/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/35943/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35943/v1/model.glb\" alt=\"Concourse cash machine (Motorway Services and Truck Park)\" 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/35943/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/35943/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35945","slug":"motorway-services-and-truck-park-arcade-cabinet-pair-f2f5ab86","title":"Arcade cabinet pair (Motorway Services and Truck Park)","summary":"Two upright arcade cabinets side by side in different liveries, each with a tilted control deck, two ball tops, a bezelled blank screen and a blank marquee over it.","description":"Two upright arcade cabinets side by side in different liveries, each with a tilted control deck, two ball tops, a bezelled blank screen and a blank marquee over it. Dimensions 1.50 by 1.98 by 0.83 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. The cabinets are static: the controls are modelled in place and a joystick is too small to read as a clip at catalogue size. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-arcade-cabinet-pair-f2f5ab86","cdnUrl":"https://cdn.3dassets.dev/assets/35945/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-arcade-cabinet-pair-f2f5ab86","thumbnailUrl":"https://cdn.3dassets.dev/assets/35945/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35945/v1/poster.webp","blurhash":"U7AJsUGs00@v?^o~DOe9F=wNrEInsEbvWAm,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":58664,"triangles":1648,"vertices":3612,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7519461542482222,0,-0.4699481143289138],"max":[0.7519461542482222,1.9800000190734863,0.3618331756721895]},"sizeMeters":[1.504,1.98,0.832],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:58.040Z","updatedAt":"2026-09-11T19:09:58.153Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35945/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArcadeCabinetPairMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35945/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35945/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35945/v1/model.glb\" alt=\"Arcade cabinet pair (Motorway Services and Truck Park)\" 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/35945/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/35945/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35944","slug":"motorway-services-and-truck-park-information-totem-3d4c5d3f","title":"Information totem (Motorway Services and Truck Park)","summary":"A double sided concourse totem on a cast base: a tall blank illuminated board with a second blank panel over it, for the site map and the facilities list a project supplies itself.","description":"A double sided concourse totem on a cast base: a tall blank illuminated board with a second blank panel over it, for the site map and the facilities list a project supplies itself. Dimensions 0.68 by 2.45 by 0.67 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-information-totem-3d4c5d3f","cdnUrl":"https://cdn.3dassets.dev/assets/35944/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-information-totem-3d4c5d3f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35944/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35944/v1/poster.webp","blurhash":"U698Se.S0000IUX7x]r@HXR5.m.8D*V[-pxt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":23800,"triangles":556,"vertices":1202,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3400000035762787,0.000008393905002512803,-0.33485336208411176],"max":[0.3400000035762787,2.450013710013474,0.33485336208411176]},"sizeMeters":[0.68,2.45,0.67],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:09:58.022Z","updatedAt":"2026-09-11T19:09:58.134Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35944/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InformationTotemMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35944/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35944/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35944/v1/model.glb\" alt=\"Information totem (Motorway Services and Truck Park)\" 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/35944/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/35944/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35947","slug":"motorway-services-and-truck-park-indoor-planter-8aabc188","title":"Indoor planter (Motorway Services and Truck Park)","summary":"A timber clad planter trough with a dark capping rim, a soil bed and three clipped shrub masses, for breaking up a concourse or screening a seating area.","description":"A timber clad planter trough with a dark capping rim, a soil bed and three clipped shrub masses, for breaking up a concourse or screening a seating area. Dimensions 1.33 by 0.96 by 0.64 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-indoor-planter-8aabc188","cdnUrl":"https://cdn.3dassets.dev/assets/35947/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-indoor-planter-8aabc188","thumbnailUrl":"https://cdn.3dassets.dev/assets/35947/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35947/v1/poster.webp","blurhash":"U9EV+j_200IV1H-:#qD*009tt%rY|3%1paD+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":19728,"triangles":408,"vertices":902,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6650000214576721,0.00003999070837878982,-0.32000750694681424],"max":[0.6650000214576721,0.960014788511162,0.31885001454759854]},"sizeMeters":[1.33,0.96,0.639],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:00.647Z","updatedAt":"2026-09-11T19:10:00.772Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35947/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IndoorPlanterMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35947/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35947/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35947/v1/model.glb\" alt=\"Indoor planter (Motorway Services and Truck Park)\" 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/35947/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/35947/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35946","slug":"motorway-services-and-truck-park-litter-and-recycling--9a974f25","title":"Litter and recycling station (Motorway Services and Truck Park)","summary":"A three stream sorting station in one steel frame: teal, amber and berry bins with blank stream labels, each under its own hinged lid. All three lids lift.","description":"A three stream sorting station in one steel frame: teal, amber and berry bins with blank stream labels, each under its own hinged lid. All three lids lift. Dimensions 1.86 by 1.22 by 0.56 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: bin-lid-0, bin-lid-1, bin-lid-2. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-litter-and-recycling--9a974f25","cdnUrl":"https://cdn.3dassets.dev/assets/35946/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-litter-and-recycling--9a974f25","thumbnailUrl":"https://cdn.3dassets.dev/assets/35946/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35946/v1/poster.webp","blurhash":"ULFPBAyW01Q=?^%MVsIn4osD-TSunNxuNaM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":29584,"triangles":1024,"vertices":2292,"meshes":12,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9300000071525574,0.000047304050563572175,-0.2799905414154478],"max":[0.9300000071525574,1.2199810978810683,0.2799905414154478]},"sizeMeters":[1.86,1.22,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:00.632Z","updatedAt":"2026-09-11T19:10:00.752Z","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/35946/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 LitterAndRecyclingStationMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35946/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/35946/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35946/v1/model.glb\" alt=\"Litter and recycling station (Motorway Services and Truck Park)\" 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/35946/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/35946/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35948","slug":"motorway-services-and-truck-park-cleaning-trolley-2170b4ba","title":"Cleaning trolley (Motorway Services and Truck Park)","summary":"A janitor cart: a two deck amber chassis with a push handle, a bag hoop with a sack in it, a mop bucket with its wringer and a mop stood in the frame. All four castors are rigged to roll.","description":"A janitor cart: a two deck amber chassis with a push handle, a bag hoop with a sack in it, a mop bucket with its wringer and a mop stood in the frame. All four castors are rigged to roll. Dimensions 0.63 by 1.76 by 1.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: wheel-0, wheel-1, wheel-2, wheel-3. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-cleaning-trolley-2170b4ba","cdnUrl":"https://cdn.3dassets.dev/assets/35948/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-cleaning-trolley-2170b4ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/35948/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35948/v1/poster.webp","blurhash":"UBAJ=sjZ00S29HM{-:%L01j=~ojw?us:IANG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"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":54164,"triangles":1456,"vertices":3150,"meshes":8,"materials":5,"textures":0,"animations":["roll"],"boundingBox":{"min":[-0.3099765007477035,-2.384185793236071e-9,-0.5],"max":[0.31788538020953094,1.763704776763916,0.5]},"sizeMeters":[0.628,1.764,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:00.878Z","updatedAt":"2026-09-11T19:10:00.976Z","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/35948/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 CleaningTrolleyMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35948/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/35948/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35948/v1/model.glb\" alt=\"Cleaning trolley (Motorway Services and Truck Park)\" 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/35948/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/35948/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35949","slug":"motorway-services-and-truck-park-parking-bay-tile-96f77ca3","title":"Car parking bay tile (Motorway Services and Truck Park)","summary":"A 2.5 by 5 m marked car parking bay on the same slab as every other ground module in the pack: the white line on the left edge and the head line across the back, so a row of them reads correctly and no two tiles paint one line twice.","description":"A 2.5 by 5 m marked car parking bay on the same slab as every other ground module in the pack: the white line on the left edge and the head line across the back, so a row of them reads correctly and no two tiles paint one line twice. Dimensions 2.50 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-parking-bay-tile-96f77ca3","cdnUrl":"https://cdn.3dassets.dev/assets/35949/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-parking-bay-tile-96f77ca3","thumbnailUrl":"https://cdn.3dassets.dev/assets/35949/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35949/v1/poster.webp","blurhash":"U5ATi.-;00ax~qD$D%%M009F-;xu00_4?bM{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":15784,"triangles":304,"vertices":679,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.00012146500881897448,-2.5],"max":[1.250190740684225,0.13607520011889782,2.5]},"sizeMeters":[2.5,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:01.161Z","updatedAt":"2026-09-11T19:10:01.275Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35949/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarParkingBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35949/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35949/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35949/v1/model.glb\" alt=\"Car parking bay tile (Motorway Services and Truck Park)\" 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/35949/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/35949/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35950","slug":"motorway-services-and-truck-park-ev-charging-bay-tile-4fcf6f82","title":"EV charging bay tile (Motorway Services and Truck Park)","summary":"The charging bay: the same module with the bay surface painted in the house colour and a blank plug pictogram at the head, for the bays a charging post serves.","description":"The charging bay: the same module with the bay surface painted in the house colour and a blank plug pictogram at the head, for the bays a charging post serves. Dimensions 2.50 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-ev-charging-bay-tile-4fcf6f82","cdnUrl":"https://cdn.3dassets.dev/assets/35950/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-ev-charging-bay-tile-4fcf6f82","thumbnailUrl":"https://cdn.3dassets.dev/assets/35950/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35950/v1/poster.webp","blurhash":"U79@;a%g8wni?vIAIAx]00D%yso}00?v.8Q-","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":22908,"triangles":496,"vertices":1105,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.00012146500881897448,-2.5],"max":[1.250190740684225,0.13607520011889782,2.5]},"sizeMeters":[2.5,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:03.527Z","updatedAt":"2026-09-11T19:10:03.629Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35950/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EVChargingBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35950/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35950/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35950/v1/model.glb\" alt=\"EV charging bay tile (Motorway Services and Truck Park)\" 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/35950/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/35950/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35951","slug":"motorway-services-and-truck-park-disabled-bay-tile-b95ef6e3","title":"Accessible bay tile (Motorway Services and Truck Park)","summary":"The accessible bay: the same module with a coloured bay surface and a blank wheelchair pictogram built from painted blocks, for the bays nearest the entrance.","description":"The accessible bay: the same module with a coloured bay surface and a blank wheelchair pictogram built from painted blocks, for the bays nearest the entrance. Dimensions 2.50 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-disabled-bay-tile-b95ef6e3","cdnUrl":"https://cdn.3dassets.dev/assets/35951/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-disabled-bay-tile-b95ef6e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/35951/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35951/v1/poster.webp","blurhash":"U7A1V2%g8wi{?vIAIAx]00D%y?tR00?v.8Q-","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":28188,"triangles":624,"vertices":1389,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.00012146500881897448,-2.5],"max":[1.250190740684225,0.13607520011889782,2.5]},"sizeMeters":[2.5,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:03.793Z","updatedAt":"2026-09-11T19:10:03.915Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35951/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AccessibleBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35951/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35951/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35951/v1/model.glb\" alt=\"Accessible bay tile (Motorway Services and Truck Park)\" 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/35951/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/35951/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35952","slug":"motorway-services-and-truck-park-family-bay-tile-060554f5","title":"Family bay tile (Motorway Services and Truck Park)","summary":"The family bay: the same module with amber hatching down both sides for the door clearance a child seat needs, and a blank pictogram at the head.","description":"The family bay: the same module with amber hatching down both sides for the door clearance a child seat needs, and a blank pictogram at the head. Dimensions 2.50 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-family-bay-tile-060554f5","cdnUrl":"https://cdn.3dassets.dev/assets/35952/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-family-bay-tile-060554f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/35952/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35952/v1/poster.webp","blurhash":"U5Ad4Z-p00fR~q9FD%%M009F?axu00~q_2M{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":48444,"triangles":1072,"vertices":2383,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.00012146500881897448,-2.5],"max":[1.250190740684225,0.13726115098332403,2.5]},"sizeMeters":[2.5,0.137,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:03.813Z","updatedAt":"2026-09-11T19:10:03.928Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35952/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FamilyBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35952/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35952/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35952/v1/model.glb\" alt=\"Family bay tile (Motorway Services and Truck Park)\" 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/35952/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/35952/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35953","slug":"motorway-services-and-truck-park-pedestrian-crossing-t-ca235d30","title":"Pedestrian crossing tile (Motorway Services and Truck Park)","summary":"The crossing module on the same 2.5 by 5 m grid: painted stripes along the walked direction with a give way line at each end, for the route from the entrance across the car park.","description":"The crossing module on the same 2.5 by 5 m grid: painted stripes along the walked direction with a give way line at each end, for the route from the entrance across the car park. Dimensions 2.50 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-pedestrian-crossing-t-ca235d30","cdnUrl":"https://cdn.3dassets.dev/assets/35953/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-pedestrian-crossing-t-ca235d30","thumbnailUrl":"https://cdn.3dassets.dev/assets/35953/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35953/v1/poster.webp","blurhash":"U7BM_Q%M00WB-;D%IU-;00IU~qt74n~q-;9F","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":38444,"triangles":896,"vertices":1940,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.00012146500881897448,-2.5],"max":[1.250190740684225,0.1361081600776988,2.5]},"sizeMeters":[2.5,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:03.977Z","updatedAt":"2026-09-11T19:10:04.085Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35953/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PedestrianCrossingTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35953/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35953/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35953/v1/model.glb\" alt=\"Pedestrian crossing tile (Motorway Services and Truck Park)\" 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/35953/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/35953/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35955","slug":"motorway-services-and-truck-park-lorry-parking-bay-til-85ed5075","title":"Lorry parking bay tile (Motorway Services and Truck Park)","summary":"A 3.5 by 12 m marked lorry bay: the long bay a tractor unit and trailer stands in overnight, with the line on the left edge, the head line across the back and a dashed edge down the offside.","description":"A 3.5 by 12 m marked lorry bay: the long bay a tractor unit and trailer stands in overnight, with the line on the left edge, the head line across the back and a dashed edge down the offside. Dimensions 3.50 by 0.14 by 12.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type lorry-bay). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-lorry-parking-bay-til-85ed5075","cdnUrl":"https://cdn.3dassets.dev/assets/35955/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-lorry-parking-bay-til-85ed5075","thumbnailUrl":"https://cdn.3dassets.dev/assets/35955/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35955/v1/poster.webp","blurhash":"U69aBSxu4mt8-;9FM{%M00D%?bxt4o~q-;D%","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":29100,"triangles":624,"vertices":1389,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.75,-0.000060427989866981835,-6],"max":[1.75,0.13594946380513984,6]},"sizeMeters":[3.5,0.136,12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:06.721Z","updatedAt":"2026-09-11T19:10:06.901Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35955/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LorryParkingBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35955/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35955/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35955/v1/model.glb\" alt=\"Lorry parking bay tile (Motorway Services and Truck Park)\" 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/35955/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/35955/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35954","slug":"motorway-services-and-truck-park-delivery-bay-tile-7ad6d09b","title":"Delivery bay tile (Motorway Services and Truck Park)","summary":"The service yard delivery bay: the same 3.5 by 12 m slab with amber hatching across it and a blank keep clear panel at the head, for the bay a delivery lorry backs onto behind the building.","description":"The service yard delivery bay: the same 3.5 by 12 m slab with amber hatching across it and a blank keep clear panel at the head, for the bay a delivery lorry backs onto behind the building. Dimensions 3.50 by 0.14 by 12.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type lorry-bay). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-delivery-bay-tile-7ad6d09b","cdnUrl":"https://cdn.3dassets.dev/assets/35954/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-delivery-bay-tile-7ad6d09b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35954/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35954/v1/poster.webp","blurhash":"U79tGnxu4nog-;9FM{%M00D%?bxt4o~q-;D%","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":50036,"triangles":1136,"vertices":2459,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.75,-0.000060427989866981835,-6],"max":[1.75,0.13713785518754004,6]},"sizeMeters":[3.5,0.137,12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:06.665Z","updatedAt":"2026-09-11T19:10:06.762Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35954/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DeliveryBayTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35954/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35954/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35954/v1/model.glb\" alt=\"Delivery bay tile (Motorway Services and Truck Park)\" 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/35954/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/35954/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35956","slug":"motorway-services-and-truck-park-grass-verge-tile-189b6050","title":"Grass verge tile (Motorway Services and Truck Park)","summary":"A 2.5 by 5 m kerbed verge on the bay grid: a precast kerb along one long edge with a planted strip behind it and three low shrub masses, for the islands between a car park and a lorry park.","description":"A 2.5 by 5 m kerbed verge on the bay grid: a precast kerb along one long edge with a planted strip behind it and three low shrub masses, for the islands between a car park and a lorry park. Dimensions 2.50 by 0.60 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: tile-left, tile-right, tile-front, tile-back (type bay-tile). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-grass-verge-tile-189b6050","cdnUrl":"https://cdn.3dassets.dev/assets/35956/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-grass-verge-tile-189b6050","thumbnailUrl":"https://cdn.3dassets.dev/assets/35956/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35956/v1/poster.webp","blurhash":"U9Bzd#%301f9RjDjR%%f00NF.6WTxb_LxvMf","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":17588,"triangles":376,"vertices":833,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.250190740684225,-0.000008855136119617635,-2.5],"max":[1.250190740684225,0.6000756983297283,2.5]},"sizeMeters":[2.5,0.6,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:06.916Z","updatedAt":"2026-09-11T19:10:07.034Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35956/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GrassVergeTileMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35956/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35956/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35956/v1/model.glb\" alt=\"Grass verge tile (Motorway Services and Truck Park)\" 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/35956/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/35956/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35957","slug":"motorway-services-and-truck-park-ev-charging-post-8ff36140","title":"EV charging post (Motorway Services and Truck Park)","summary":"A twin outlet rapid charging post on a concrete plinth: a clad column in the house colour with a blank tariff panel, a tilted blank screen over a card reader, and a holstered connector on each flank with its lead looped back to the body.","description":"A twin outlet rapid charging post on a concrete plinth: a clad column in the house colour with a blank tariff panel, a tilted blank screen over a card reader, and a holstered connector on each flank with its lead looped back to the body. Dimensions 0.90 by 1.74 by 0.54 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Charging leads, lighting cables and downpipes are modelled static: a flexible lead is a linkage no rigid node transform can carry. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-ev-charging-post-8ff36140","cdnUrl":"https://cdn.3dassets.dev/assets/35957/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-ev-charging-post-8ff36140","thumbnailUrl":"https://cdn.3dassets.dev/assets/35957/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35957/v1/poster.webp","blurhash":"U58F7V%#008w01W;}tnO^PVs9]tlX-t7v~M{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":49252,"triangles":1040,"vertices":2357,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.44851483762806327,0.000012817454451030663,-0.2700170857669429],"max":[0.44851483762806327,1.7400000095367432,0.2700170857669429]},"sizeMeters":[0.897,1.74,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:06.955Z","updatedAt":"2026-09-11T19:10:07.078Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35957/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EVChargingPostMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35957/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35957/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35957/v1/model.glb\" alt=\"EV charging post (Motorway Services and Truck Park)\" 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/35957/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/35957/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35958","slug":"motorway-services-and-truck-park-car-park-lamp-column-0470c8ad","title":"Car park lamp column (Motorway Services and Truck Park)","summary":"An 8 m car park lamp column on a root plinth: a tapered shaft with a door at the base, a swept bracket and a shallow accent lantern with a lit lens on its underside.","description":"An 8 m car park lamp column on a root plinth: a tapered shaft with a door at the base, a swept bracket and a shallow accent lantern with a lit lens on its underside. Dimensions 1.56 by 8.28 by 0.56 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Charging leads, lighting cables and downpipes are modelled static: a flexible lead is a linkage no rigid node transform can carry. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-car-park-lamp-column-0470c8ad","cdnUrl":"https://cdn.3dassets.dev/assets/35958/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-car-park-lamp-column-0470c8ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/35958/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35958/v1/poster.webp","blurhash":"U16RZD-;00000zMx}t?v?^xtD59a0dM_~C.9","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":25872,"triangles":512,"vertices":1168,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.2800000011920929,0.000002137360041093439,-0.2800000011920929],"max":[1.2799999713897705,8.276622772216797,0.2800000011920929]},"sizeMeters":[1.56,8.277,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:09.557Z","updatedAt":"2026-09-11T19:10:09.673Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35958/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarParkLampColumnMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35958/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35958/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35958/v1/model.glb\" alt=\"Car park lamp column (Motorway Services and Truck Park)\" 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/35958/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/35958/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35959","slug":"motorway-services-and-truck-park-height-restriction-ba-d57cb30b","title":"Height restriction barrier (Motorway Services and Truck Park)","summary":"The goalpost frame at a car park entrance: two posts on concrete bases carrying a beam, all of it hazard banded, with a blank height plate hung under the middle of the span.","description":"The goalpost frame at a car park entrance: two posts on concrete bases carrying a beam, all of it hazard banded, with a blank height plate hung under the middle of the span. Dimensions 5.10 by 2.88 by 0.50 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. The frame is fixed and nothing on it is rigged: a real height barrier is a bolted steel goalpost with no moving part. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-height-restriction-ba-d57cb30b","cdnUrl":"https://cdn.3dassets.dev/assets/35959/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-height-restriction-ba-d57cb30b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35959/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35959/v1/poster.webp","blurhash":"U7A^ODS4MdxG_L~p4UIBD%ROXTE24U_3?v9b","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":74680,"triangles":1664,"vertices":3707,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2.549999952316284,0.00007629963232903825,-0.2499648990398848],"max":[2.549999952316284,2.885079555043143,0.2499648990398848]},"sizeMeters":[5.1,2.885,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:09.640Z","updatedAt":"2026-09-11T19:10:09.744Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35959/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeightRestrictionBarrierMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35959/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35959/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35959/v1/model.glb\" alt=\"Height restriction barrier (Motorway Services and Truck Park)\" 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/35959/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/35959/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35961","slug":"motorway-services-and-truck-park-car-park-bollard-8e3e1029","title":"Car park bollard (Motorway Services and Truck Park)","summary":"A sleeved steel bollard on a root plinth in the house colour with a reflective band, for the line between a pedestrian apron and the bays in front of it.","description":"A sleeved steel bollard on a root plinth in the house colour with a reflective band, for the line between a pedestrian apron and the bays in front of it. Dimensions 0.26 by 1.01 by 0.25 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-car-park-bollard-8e3e1029","cdnUrl":"https://cdn.3dassets.dev/assets/35961/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-car-park-bollard-8e3e1029","thumbnailUrl":"https://cdn.3dassets.dev/assets/35961/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35961/v1/poster.webp","blurhash":"U472gQ%g008w0zWV^PsW^6o09]W=0eR%~Bxu","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":11280,"triangles":224,"vertices":444,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.12999999523162842,0.0000035110612649699724,-0.12674672224081646],"max":[0.12999999523162842,1.0099999904632568,0.12674672224081646]},"sizeMeters":[0.26,1.01,0.253],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:09.752Z","updatedAt":"2026-09-11T19:10:09.927Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35961/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarParkBollardMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35961/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35961/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35961/v1/model.glb\" alt=\"Car park bollard (Motorway Services and Truck Park)\" 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/35961/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/35961/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35960","slug":"motorway-services-and-truck-park-trolley-shelter-0ef9d609","title":"Trolley shelter (Motorway Services and Truck Park)","summary":"An open trolley bay: four posts on pad bases carrying a curved translucent roof, a clad back panel, a blank illuminated header and two corral rails for the trolleys to nest between.","description":"An open trolley bay: four posts on pad bases carrying a curved translucent roof, a clad back panel, a blank illuminated header and two corral rails for the trolleys to nest between. Dimensions 3.50 by 3.00 by 2.84 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-trolley-shelter-0ef9d609","cdnUrl":"https://cdn.3dassets.dev/assets/35960/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-trolley-shelter-0ef9d609","thumbnailUrl":"https://cdn.3dassets.dev/assets/35960/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35960/v1/poster.webp","blurhash":"UCBN.rso00Or_NtlIARPhfb^NaVY8_nix]NG","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":63524,"triangles":1408,"vertices":3163,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.75,-0.00003326457754065232,-1.2906168005444414],"max":[1.75,2.9999954445752524,1.5500854399056037]},"sizeMeters":[3.5,3,2.841],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:09.732Z","updatedAt":"2026-09-11T19:10:09.857Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35960/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrolleyShelterMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35960/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35960/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35960/v1/model.glb\" alt=\"Trolley shelter (Motorway Services and Truck Park)\" 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/35960/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/35960/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35963","slug":"motorway-services-and-truck-park-shopping-trolley-da2b4092","title":"Shopping trolley (Motorway Services and Truck Park)","summary":"A nesting wire shopping trolley: a tapered basket of welded wire on a chassis with a moulded push handle and a blank ticket frame. All four castors are rigged to roll.","description":"A nesting wire shopping trolley: a tapered basket of welded wire on a chassis with a moulded push handle and a blank ticket frame. All four castors are rigged to roll. Dimensions 0.59 by 0.91 by 0.81 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: wheel-0, wheel-1, wheel-2, wheel-3. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-shopping-trolley-da2b4092","cdnUrl":"https://cdn.3dassets.dev/assets/35963/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-shopping-trolley-da2b4092","thumbnailUrl":"https://cdn.3dassets.dev/assets/35963/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35963/v1/poster.webp","blurhash":"U69tidv~00YP*JMdQ-pc0KMdwJt-E1spr@bv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"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":96096,"triangles":2424,"vertices":5404,"meshes":6,"materials":3,"textures":0,"animations":["roll"],"boundingBox":{"min":[-0.29605950645289086,-7.450580569168253e-10,-0.4069757275959794],"max":[0.29605950645289086,0.9083663135203989,0.4069757275959794]},"sizeMeters":[0.592,0.908,0.814],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:12.538Z","updatedAt":"2026-09-11T19:10:12.720Z","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/35963/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 ShoppingTrolleyMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35963/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/35963/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35963/v1/model.glb\" alt=\"Shopping trolley (Motorway Services and Truck Park)\" 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/35963/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/35963/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35962","slug":"motorway-services-and-truck-park-car-park-litter-bin-1c2ec83d","title":"Car park litter bin (Motorway Services and Truck Park)","summary":"A hooded litter bin on a root post: a clad body in the house colour with a blank label panel, an inner liner and a back hinged lid that lifts.","description":"A hooded litter bin on a root post: a clad body in the house colour with a blank label panel, an inner liner and a back hinged lid that lifts. Dimensions 0.52 by 1.13 by 0.48 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: bin-lid. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-car-park-litter-bin-1c2ec83d","cdnUrl":"https://cdn.3dassets.dev/assets/35962/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-car-park-litter-bin-1c2ec83d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35962/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35962/v1/poster.webp","blurhash":"U76I+]%N008_yXozZ$VsD4NGy?-pQSV@pIo#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"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":28756,"triangles":576,"vertices":1294,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.25999999046325684,0,-0.24000426900342878],"max":[0.25999999046325684,1.1299910141389884,0.24000425857261595]},"sizeMeters":[0.52,1.13,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:12.369Z","updatedAt":"2026-09-11T19:10:12.467Z","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/35962/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 CarParkLitterBinMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35962/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/35962/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35962/v1/model.glb\" alt=\"Car park litter bin (Motorway Services and Truck Park)\" 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/35962/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/35962/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35964","slug":"motorway-services-and-truck-park-picnic-bench-06fe40d0","title":"Picnic bench (Motorway Services and Truck Park)","summary":"A timber picnic bench on two splayed A frames with both seats fixed to it and a steel tie under the top, for the grass by a lorry park or the apron outside a services building.","description":"A timber picnic bench on two splayed A frames with both seats fixed to it and a steel tie under the top, for the grass by a lorry park or the apron outside a services building. Dimensions 1.80 by 0.78 by 1.89 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-picnic-bench-06fe40d0","cdnUrl":"https://cdn.3dassets.dev/assets/35964/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-picnic-bench-06fe40d0","thumbnailUrl":"https://cdn.3dassets.dev/assets/35964/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35964/v1/poster.webp","blurhash":"U9CigX-.01I;~Vj[E2WY00M|-pNG01s:?GRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":36540,"triangles":816,"vertices":1856,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9000286921887437,-0.000006064458365873104,-0.9427241683006287],"max":[0.9000286921887437,0.7766257968382793,0.9427241683006287]},"sizeMeters":[1.8,0.777,1.885],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-11T19:10:12.733Z","updatedAt":"2026-09-11T19:11:16.290Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35964/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PicnicBenchMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35964/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35964/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35964/v1/model.glb\" alt=\"Picnic bench (Motorway Services and Truck Park)\" 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/35964/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/35964/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35965","slug":"motorway-services-and-truck-park-boundary-fence-panel-9eb5307e","title":"Boundary fence panel (Motorway Services and Truck Park)","summary":"A 2.4 m welded mesh boundary panel between two capped posts with rails top and bottom. Couple the panels on their posts for a run of any length round a site.","description":"A 2.4 m welded mesh boundary panel between two capped posts with rails top and bottom. Couple the panels on their posts for a run of any length round a site. Dimensions 2.42 by 1.85 by 0.11 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: fence-left, fence-right (type fence). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-boundary-fence-panel-9eb5307e","cdnUrl":"https://cdn.3dassets.dev/assets/35965/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-boundary-fence-panel-9eb5307e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35965/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35965/v1/poster.webp","blurhash":"U284iAWB00%N?b~qWB9E00t6xvM|IT%Ma$D%","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":48928,"triangles":1064,"vertices":2532,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.2100000381469727,0.00004571816138831952,-0.05494796767365628],"max":[1.2100000381469727,1.850045391876323,0.05494796767365628]},"sizeMeters":[2.42,1.85,0.11],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:12.755Z","updatedAt":"2026-09-11T19:10:12.879Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35965/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoundaryFencePanelMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35965/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35965/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35965/v1/model.glb\" alt=\"Boundary fence panel (Motorway Services and Truck Park)\" 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/35965/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/35965/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35966","slug":"motorway-services-and-truck-park-tree-clump-323b7ad6","title":"Tree clump (Motorway Services and Truck Park)","summary":"Three trees of different heights on a shared kerbed mulch bed, each on its own stake and tie, as a car park island is planted.","description":"Three trees of different heights on a shared kerbed mulch bed, each on its own stake and tie, as a car park island is planted. Dimensions 4.16 by 4.06 by 3.33 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-tree-clump-323b7ad6","cdnUrl":"https://cdn.3dassets.dev/assets/35966/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-tree-clump-323b7ad6","thumbnailUrl":"https://cdn.3dassets.dev/assets/35966/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35966/v1/poster.webp","blurhash":"U9BNcW%e00E25OkB$+oc01Mz?@xtMMRRtRkC","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":48524,"triangles":1070,"vertices":2356,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2.1068670749664307,0.00005157657903766266,-1.6502260396059052],"max":[2.054781436920166,4.058064782746264,1.6752063462312714]},"sizeMeters":[4.162,4.058,3.325],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:15.332Z","updatedAt":"2026-09-11T19:10:15.434Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35966/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TreeClumpMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35966/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35966/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35966/v1/model.glb\" alt=\"Tree clump (Motorway Services and Truck Park)\" 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/35966/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/35966/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35968","slug":"motorway-services-and-truck-park-slip-road-tile-d3d77770","title":"Slip road tile, straight (Motorway Services and Truck Park)","summary":"A 7 by 5 m module of two lane slip road: the wearing course with a solid edge line down each side and a dashed lane divider between them. Couple the modules end to end for an approach of any length.","description":"A 7 by 5 m module of two lane slip road: the wearing course with a solid edge line down each side and a dashed lane divider between them. Couple the modules end to end for an approach of any length. Dimensions 7.00 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: road-back, road-front (type slip-road). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-slip-road-tile-d3d77770","cdnUrl":"https://cdn.3dassets.dev/assets/35968/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-slip-road-tile-d3d77770","thumbnailUrl":"https://cdn.3dassets.dev/assets/35968/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35968/v1/poster.webp","blurhash":"U39Qmu-=00t7-;-;WAD%00IU~qM_4n4nj[?a","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":15228,"triangles":320,"vertices":710,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-3.5,0.0001837200859409957,-2.500106814783166],"max":[3.5,0.13617774230025945,2.500106814783166]},"sizeMeters":[7,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:15.555Z","updatedAt":"2026-09-11T19:10:15.656Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35968/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SlipRoadTileStraightMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35968/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35968/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35968/v1/model.glb\" alt=\"Slip road tile, straight (Motorway Services and Truck Park)\" 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/35968/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/35968/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35967","slug":"motorway-services-and-truck-park-lane-arrow-road-tile-c8a8fc7a","title":"Slip road tile, lane arrows (Motorway Services and Truck Park)","summary":"The same module with a painted straight ahead arrow in each lane, for the run under a direction gantry where a driver picks a lane.","description":"The same module with a painted straight ahead arrow in each lane, for the run under a direction gantry where a driver picks a lane. Dimensions 7.00 by 0.14 by 5.00 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: road-back, road-front (type slip-road). Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-lane-arrow-road-tile-c8a8fc7a","cdnUrl":"https://cdn.3dassets.dev/assets/35967/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-lane-arrow-road-tile-c8a8fc7a","thumbnailUrl":"https://cdn.3dassets.dev/assets/35967/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35967/v1/poster.webp","blurhash":"U49jv4-;00of-;-:RjIU00M{~qM{9F4oof?b","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":47136,"triangles":1088,"vertices":2414,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-3.5,0.0001837200859409957,-2.500106814783166],"max":[3.5,0.13617774230025945,2.500106814783166]},"sizeMeters":[7,0.136,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:15.493Z","updatedAt":"2026-09-11T19:10:15.595Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35967/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SlipRoadTileLaneArrowsMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35967/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35967/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35967/v1/model.glb\" alt=\"Slip road tile, lane arrows (Motorway Services and Truck Park)\" 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/35967/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/35967/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35969","slug":"motorway-services-and-truck-park-slip-road-bend-7f87b10e","title":"Slip road bend, 90 degrees (Motorway Services and Truck Park)","summary":"A quarter turn of the same 7 m carriageway on a 7 m centre radius, with both edge lines and the dashed divider swept round the bend. It turns an approach off the main run and into a site.","description":"A quarter turn of the same 7 m carriageway on a 7 m centre radius, with both edge lines and the dashed divider swept round the bend. It turns an approach off the main run and into a site. Dimensions 10.52 by 0.14 by 10.50 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Connectors: road-back, road-right (type slip-road). The origin sits on the entry centreline at the back edge, so the bend couples straight onto a run of straight tiles; the other port leaves at 90 degrees on the +X side. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-slip-road-bend-7f87b10e","cdnUrl":"https://cdn.3dassets.dev/assets/35969/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-slip-road-bend-7f87b10e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35969/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35969/v1/poster.webp","blurhash":"U78E6+V@00M|%MayM{a|00t7~qt6D%j[xuj@","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":160716,"triangles":3972,"vertices":8430,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-3.5,-0.00024353904672307775,-7.0038766231827045],"max":[7.016861438751221,0.13624165413779732,3.5]},"sizeMeters":[10.517,0.136,10.504],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:15.616Z","updatedAt":"2026-09-11T19:10:15.813Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35969/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SlipRoadBend90DegreesMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35969/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35969/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35969/v1/model.glb\" alt=\"Slip road bend, 90 degrees (Motorway Services and Truck Park)\" 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/35969/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/35969/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35970","slug":"motorway-services-and-truck-park-direction-sign-gantry-1f661987","title":"Motorway direction sign gantry (Motorway Services and Truck Park)","summary":"A portal gantry over the carriageway: two tapered columns on pad foundations carrying a lattice beam with two large blank panel boards bolted to it, at 5.4 m clearance.","description":"A portal gantry over the carriageway: two tapered columns on pad foundations carrying a lattice beam with two large blank panel boards bolted to it, at 5.4 m clearance. Dimensions 10.70 by 9.20 by 1.10 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Both boards are wordless, carry no route number and no operator name, and are sized for a project to apply its own sign art. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-direction-sign-gantry-1f661987","cdnUrl":"https://cdn.3dassets.dev/assets/35970/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-direction-sign-gantry-1f661987","thumbnailUrl":"https://cdn.3dassets.dev/assets/35970/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35970/v1/poster.webp","blurhash":"UB9asutR4Tn$*Jx]H?IAE0XSt7a0H=x]%#IA","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":67900,"triangles":1552,"vertices":3437,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-5.349999904632568,-0.0002120950027595936,-0.549906908743629],"max":[5.349999904632568,9.199822944961323,0.549906908743629]},"sizeMeters":[10.7,9.2,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:18.137Z","updatedAt":"2026-09-11T19:10:18.243Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35970/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MotorwayDirectionSignGantryMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35970/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35970/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35970/v1/model.glb\" alt=\"Motorway direction sign gantry (Motorway Services and Truck Park)\" 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/35970/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/35970/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35971","slug":"motorway-services-and-truck-park-services-sign-c0f3c987","title":"Services sign on posts (Motorway Services and Truck Park)","summary":"The roadside board that announces the site: a blank panel in a light border on two posts with bracing rails behind it, standing 3 m to the top.","description":"The roadside board that announces the site: a blank panel in a light border on two posts with bracing rails behind it, standing 3 m to the top. Dimensions 2.40 by 3.00 by 0.28 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-services-sign-c0f3c987","cdnUrl":"https://cdn.3dassets.dev/assets/35971/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-services-sign-c0f3c987","thumbnailUrl":"https://cdn.3dassets.dev/assets/35971/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35971/v1/poster.webp","blurhash":"UK9kW.S#8wwf?^kqIAVsVsx]S$IUQ-xaXmIo","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":27636,"triangles":576,"vertices":1288,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.0000055539149306799845,-0.15001777566624458],"max":[1.2000000476837158,2.9999496742596863,0.1320196569618949]},"sizeMeters":[2.4,3,0.282],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:18.453Z","updatedAt":"2026-09-11T19:10:18.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35971/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServicesSignOnPostsMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35971/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35971/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35971/v1/model.glb\" alt=\"Services sign on posts (Motorway Services and Truck Park)\" 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/35971/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/35971/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35972","slug":"motorway-services-and-truck-park-speed-limit-sign-404e9489","title":"Speed limit sign (Motorway Services and Truck Park)","summary":"A round speed limit plate on a single post: a blank white disc in a coloured ring, with no figure on it, for the approach and the car park aisles.","description":"A round speed limit plate on a single post: a blank white disc in a coloured ring, with no figure on it, for the approach and the car park aisles. Dimensions 0.84 by 2.52 by 0.22 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-speed-limit-sign-404e9489","cdnUrl":"https://cdn.3dassets.dev/assets/35972/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-speed-limit-sign-404e9489","thumbnailUrl":"https://cdn.3dassets.dev/assets/35972/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35972/v1/poster.webp","blurhash":"UA7^V_t700In}]s;5ONFw#ofScR%InjZ%2W:","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":22744,"triangles":480,"vertices":1016,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.42000001668930054,0.000006530478289268685,-0.1080000028014183],"max":[0.42000001668930054,2.5199999809265137,0.1080000028014183]},"sizeMeters":[0.84,2.52,0.216],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:18.470Z","updatedAt":"2026-09-11T19:10:18.584Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35972/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpeedLimitSignMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35972/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35972/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35972/v1/model.glb\" alt=\"Speed limit sign (Motorway Services and Truck Park)\" 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/35972/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/35972/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35973","slug":"motorway-services-and-truck-park-queue-warning-sign-d46f3268","title":"Queue warning sign (Motorway Services and Truck Park)","summary":"A triangular warning plate on a single post: a blank face in a coloured border, for the queue that builds at a busy exit.","description":"A triangular warning plate on a single post: a blank face in a coloured border, for the queue that builds at a busy exit. Dimensions 1.00 by 2.74 by 0.22 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-queue-warning-sign-d46f3268","cdnUrl":"https://cdn.3dassets.dev/assets/35973/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-queue-warning-sign-d46f3268","thumbnailUrl":"https://cdn.3dassets.dev/assets/35973/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35973/v1/poster.webp","blurhash":"U87mjYog0JRi}voM5PR%WBoLkCR*9sa_=zoM","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":12768,"triangles":216,"vertices":491,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5022947192192078,0.000006530478289268685,-0.1080000028014183],"max":[0.5022947192192078,2.740029818753311,0.1080000028014183]},"sizeMeters":[1.005,2.74,0.216],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:18.730Z","updatedAt":"2026-09-11T19:10:18.835Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35973/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QueueWarningSignMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35973/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35973/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35973/v1/model.glb\" alt=\"Queue warning sign (Motorway Services and Truck Park)\" 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/35973/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/35973/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35974","slug":"motorway-services-and-truck-park-traffic-cone-338a0889","title":"Traffic cone (Motorway Services and Truck Park)","summary":"A 750 mm moulded traffic cone with a reflective sleeve on a weighted base, for a coned off bay or a wet floor of a yard.","description":"A 750 mm moulded traffic cone with a reflective sleeve on a weighted base, for a coned off bay or a wet floor of a yard. Dimensions 0.36 by 0.76 by 0.36 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-traffic-cone-338a0889","cdnUrl":"https://cdn.3dassets.dev/assets/35974/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-traffic-cone-338a0889","thumbnailUrl":"https://cdn.3dassets.dev/assets/35974/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35974/v1/poster.webp","blurhash":"UCCPh4%1019bIWa#s.j?05Rk~Sxt=?j?IvWX","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":11980,"triangles":232,"vertices":487,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,-0.000005646545359123956,-0.18000000715255737],"max":[0.18000000715255737,0.7599999904632568,0.18000000715255737]},"sizeMeters":[0.36,0.76,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:21.136Z","updatedAt":"2026-09-11T19:10:21.235Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35974/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrafficConeMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35974/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35974/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35974/v1/model.glb\" alt=\"Traffic cone (Motorway Services and Truck Park)\" 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/35974/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/35974/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35975","slug":"motorway-services-and-truck-park-service-yard-bin-stor-2e4decdc","title":"Service yard bin store (Motorway Services and Truck Park)","summary":"The waste enclosure behind the building: a clad three sided store on posts, open to the yard, with two wheeled bins in it. The near bin has a hinged lid that lifts.","description":"The waste enclosure behind the building: a clad three sided store on posts, open to the yard, with two wheeled bins in it. The near bin has a hinged lid that lifts. Dimensions 3.70 by 2.22 by 2.60 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. Named pivoted nodes: store-lid. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-service-yard-bin-stor-2e4decdc","cdnUrl":"https://cdn.3dassets.dev/assets/35975/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-service-yard-bin-stor-2e4decdc","thumbnailUrl":"https://cdn.3dassets.dev/assets/35975/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35975/v1/poster.webp","blurhash":"UBC%:E%L4TFw0zI;wv$iD4I:9[#8}[?bS~9Z","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"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":69344,"triangles":1536,"vertices":3376,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.850000023841858,-0.00007263616784290022,-1.3000305352636072],"max":[1.850000023841858,2.219997254983407,1.3000305352636072]},"sizeMeters":[3.7,2.22,2.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:21.366Z","updatedAt":"2026-09-11T19:10:21.456Z","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/35975/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 ServiceYardBinStoreMotorwayServicesAndTruckPark(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35975/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/35975/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35975/v1/model.glb\" alt=\"Service yard bin store (Motorway Services and Truck Park)\" 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/35975/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/35975/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35976","slug":"motorway-services-and-truck-park-staff-cabin-fb37269e","title":"Staff cabin (Motorway Services and Truck Park)","summary":"A 6 m jack legged site cabin: a ribbed steel box with an accent skirt and roof trim, a glazed door with a grab rail, two windows and a chequer plate step with a handrail.","description":"A 6 m jack legged site cabin: a ribbed steel box with an accent skirt and roof trim, a glazed door with a grab rail, two windows and a chequer plate step with a handrail. Dimensions 6.14 by 3.26 by 3.63 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. The cabin door is modelled shut and does not open; it is a yard building, not an interior. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-staff-cabin-fb37269e","cdnUrl":"https://cdn.3dassets.dev/assets/35976/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-staff-cabin-fb37269e","thumbnailUrl":"https://cdn.3dassets.dev/assets/35976/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35976/v1/poster.webp","blurhash":"UFD1HJxbD4niui%grrR600g3s:aKvfELE1r?","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":88248,"triangles":2000,"vertices":4498,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-3.069999933242798,-0.00012970366527298438,-1.570087553980615],"max":[3.069999933242798,3.2599868422647154,2.059938490898291]},"sizeMeters":[6.14,3.26,3.63],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:21.297Z","updatedAt":"2026-09-11T19:10:21.406Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35976/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StaffCabinMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35976/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35976/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35976/v1/model.glb\" alt=\"Staff cabin (Motorway Services and Truck Park)\" 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/35976/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/35976/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35977","slug":"motorway-services-and-truck-park-yard-generator-f175fc54","title":"Yard generator (Motorway Services and Truck Park)","summary":"A skid mounted canopy generator in hazard amber: a bunded base with forklift channels, louvred coil vents down the front, a control door with a blank illuminated panel and an exhaust stack with a rain cap.","description":"A skid mounted canopy generator in hazard amber: a bunded base with forklift channels, louvred coil vents down the front, a control door with a blank illuminated panel and an exhaust stack with a rain cap. Dimensions 2.76 by 2.40 by 1.35 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. The set is static. The fan behind the louvres is not modelled, because a guard that never opens would hide it anyway. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-yard-generator-f175fc54","cdnUrl":"https://cdn.3dassets.dev/assets/35977/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-yard-generator-f175fc54","thumbnailUrl":"https://cdn.3dassets.dev/assets/35977/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35977/v1/poster.webp","blurhash":"U9FOuk?H00-3jY?EV[9I00Ip~m9w9w9$-.?8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":56716,"triangles":1304,"vertices":2828,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.3799999952316284,-0.00008234814517460443,-0.675070015217826],"max":[1.3799999952316284,2.4000824435126065,0.675070015217826]},"sizeMeters":[2.76,2.4,1.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:22.128Z","updatedAt":"2026-09-11T19:10:22.233Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35977/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YardGeneratorMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35977/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35977/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35977/v1/model.glb\" alt=\"Yard generator (Motorway Services and Truck Park)\" 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/35977/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/35977/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35978","slug":"motorway-services-and-truck-park-water-tank-cdb725aa","title":"Yard water tank (Motorway Services and Truck Park)","summary":"A bunded water storage tank on a steel frame: a banded cylinder in the house colour with a domed manway, a valve set with an amber handwheel on the front, a blank data plate and a ladder up the flank.","description":"A bunded water storage tank on a steel frame: a banded cylinder in the house colour with a domed manway, a valve set with an amber handwheel on the front, a blank data plate and a ladder up the flank. Dimensions 2.66 by 2.79 by 2.66 m (X by Y by Z). Metre units, +Y up, customer or user side toward +Z, resting on y=0. The stored water is not modelled and the valve does not turn. Every sign, fascia and menu face is blank: no wording, logo, operator, chain or manufacturer livery anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-water-tank-cdb725aa","cdnUrl":"https://cdn.3dassets.dev/assets/35978/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-water-tank-cdb725aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/35978/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35978/v1/poster.webp","blurhash":"U8Bz|Ftl00Mx00oe^5R*zBniGFXS}[ni%#f,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":53848,"triangles":1176,"vertices":2630,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.4089926481673287,0.00003112753856100714,-1.25],"max":[1.25,2.7899997218605197,1.4070641590410735]},"sizeMeters":[2.659,2.79,2.657],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:24.024Z","updatedAt":"2026-09-11T19:10:24.203Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35978/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YardWaterTankMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35978/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35978/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35978/v1/model.glb\" alt=\"Yard water tank (Motorway Services and Truck Park)\" 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/35978/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/35978/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35979","slug":"motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","title":"Motorway service area (Motorway Services and Truck Park)","summary":"A working motorway service area: an amenity building of glazed facade bays under a pitched roof with automatic lobby doors at the front, a food court of three counters, booths, tables and ordering kiosks inside, a shop counter, gondolas and a coffee stand down one side and...","description":"A working motorway service area: an amenity building of glazed facade bays under a pitched roof with automatic lobby doors at the front, a food court of three counters, booths, tables and ordering kiosks inside, a shop counter, gondolas and a coffee stand down one side and the toilets, baby change and driver shower entrances down the other. In front of it a marked car park with accessible, family and charging bays, a crossing on the line out of the doors, lamp columns, bollards, a trolley shelter and planting; a lorry park and a fenced service yard with the bin store, staff cabin, generator and water tank to one side; and the slip road arriving from the right under its direction gantry, round the bend and in past the height barrier. Every sign face is blank.","status":"published","url":"https://3dassets.dev/assets/motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35979/v1/model.glb","downloadUrl":"https://3dassets.dev/download/motorway-services-and-truck-park-motorwa-c173d04e-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35979/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35979/v1/poster.webp","blurhash":"U88N^F%f00IBM|bHtQjF00My_Nx[xtj?M|bc","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":2238580,"triangles":55722,"vertices":123153,"meshes":237,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-15.850000023841858,-0.00024353904672307775,-21.5],"max":[23.5,9.319822944961324,12.500190740684225]},"sizeMeters":[39.35,9.32,34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T19:10:24.414Z","updatedAt":"2026-09-11T19:10:24.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35979/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MotorwayServiceAreaMotorwayServicesAndTruckPark(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35979/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35979/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35979/v1/model.glb\" alt=\"Motorway service area (Motorway Services and Truck Park)\" 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/35979/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/35979/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"motorway-services-and-truck-park","title":"Motorway Services and Truck Park","url":"https://3dassets.dev/demos/motorway-services-and-truck-park"}}}