{"data":{"id":293,"slug":"caravan-park-and-campsite","title":"Caravan Park and Campsite","summary":"44 stylized holiday park models: modular pitch, track, fence, hedge and windbreak pieces, statics, tourers, a campervan, five tents, awnings, hook ups, the shower block, shop, play area and entrance barrier, in one assembled site.","description":"Everything needed to build a holiday caravan park rather than a wild campsite. The ground goes down first on a 6 m grid with real connector ports: mown grass pitches, concrete hardstandings with painted bays and a stencilled number, and a gravel site road in a straight and a quarter turn, with post and rail fence, boundary hedge and windbreak bays that run nose to tail. Accommodation is a static caravan on piers with a boarded skirt and steps, the same static decked for a long season and in a second livery, a single axle touring caravan with a full A frame, coupling head and jockey wheel, a panel van conversion with a stowed elevating roof, a folding trailer tent, two sizes of dome tent, a family tunnel tent, a canvas bell tent and a porch awning to stand against a van. The pitch is dressed with hook up bollards, marker posts, a water point, the chemical disposal point, a picnic bench, a fire pit, folding chairs and tables, a cool box, a storage crate and an awning mat. The site end adds the shower and toilet block with a laundry module that ports onto either end, a washing up canopy, the shop and reception cabin, a gas bottle cage, a bin and recycling store, a swing set and slide, a noticeboard, a floodlight column, the painted entrance sign and the barrier. Clips are rigid node transforms only: caravan, campervan, shower, laundry, shop and cage doors open and close, the campervan leaf slides, the tourer, campervan and trailer wheels roll, the barrier arm lifts, the bin and cool box lids open and the swing seats rock. Tent fabric, awning canvas, windbreak cloth, guy lines, taps and fire are modelled solid and stated as static, because each needs a deforming surface, a jointed linkage or a fluid that a rigid node cannot give. Original AI-generated CC0 geometry, prepared for human review. No physics, gameplay, colliders, navigation or embedded lights.","url":"https://3dassets.dev/packs/caravan-park-and-campsite","coverUrl":"https://cdn.3dassets.dev/assets/35385/v1/poster.webp","assetCount":45,"aiGenerated":true,"aiGeneratedAssetCount":45,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":1765920,"totalTriangles":26072,"starterScene":{"id":"35385","slug":"caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","title":"Holiday Park and Touring Field (Caravan Park and Campsite)","summary":"A 42 x 36 m holiday caravan park entered from the front corner, where the barrier, the painted site sign and the shop and reception stand over the gravel track. The track turns in and runs the width of the site. Behind it the static caravans line up along the back boundary on...","description":"A 42 x 36 m holiday caravan park entered from the front corner, where the barrier, the painted site sign and the shop and reception stand over the gravel track. The track turns in and runs the width of the site. Behind it the static caravans line up along the back boundary on their hardstandings, one of them decked, one in the second livery, with a windbreak run pegged out in front of the end van. Between the track and the statics is the touring field: tourers and campervans on grass with porch awnings, hook up bollards, marker posts, benches and chairs. In front of the track is the tent area, with dome, tunnel and bell tents round a fire pit, and the shower block with its laundry end, the washing up canopy, the chemical disposal point and the water point closing the west end. The play area, the bin store and the gas cage sit along the front, inside a post and rail fence, with a boundary hedge and tree clumps round the back.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35385/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35385/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35385/v1/poster.webp","blurhash":"U9C6[MR500sEjdoxV@V]00tk~pR%SbV{xut2","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":669100,"triangles":12756,"vertices":30148,"meshes":210,"materials":8,"textures":2,"animations":[],"boundingBox":{"min":[-21.936027436189732,-0.00000885513611964539,-18],"max":[21,5.017769037864297,18]},"sizeMeters":[42.936,5.018,36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:48.287Z","updatedAt":"2026-09-11T13:16:48.386Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35385/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolidayParkAndTouringFieldCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35385/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35385/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35385/v1/model.glb\" alt=\"Holiday Park and Touring Field (Caravan Park and Campsite)\" 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/35385/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/35385/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"35342","slug":"caravan-park-and-campsite-static-caravan-f2af6369","title":"Static Caravan on Blocks (Caravan Park and Campsite)","summary":"An 8.2 x 3.2 m static holiday caravan on concrete piers with a boarded skirt, a shallow pitched roof, tinted lounge and bedroom lights, a livery band under the eaves and timber steps to the door. The door is one node on its hinge stile and swings open.","description":"An 8.2 x 3.2 m static holiday caravan on concrete piers with a boarded skirt, a shallow pitched roof, tinted lounge and bedroom lights, a livery band under the eaves and timber steps to the door. The door is one node on its hinge stile and swings open. Overall 8.360 x 2.870 x 4.020 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-static-caravan-f2af6369","cdnUrl":"https://cdn.3dassets.dev/assets/35342/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-static-caravan-f2af6369","thumbnailUrl":"https://cdn.3dassets.dev/assets/35342/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35342/v1/poster.webp","blurhash":"UEFFss%M00t7~q?bM{IU00xu?bIV009Fxtoz","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":43000,"triangles":368,"vertices":1104,"meshes":8,"materials":6,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-4.179999828338623,0.00003366606474219935,-1.6998351302411618],"max":[4.179999828338623,2.8697742015472625,2.320006653274947]},"sizeMeters":[8.36,2.87,4.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:22.646Z","updatedAt":"2026-09-11T13:16:22.780Z","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/35342/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 StaticCaravanOnBlocksCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35342/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/35342/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35342/v1/model.glb\" alt=\"Static Caravan on Blocks (Caravan Park and Campsite)\" 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/35342/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/35342/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35341","slug":"caravan-park-and-campsite-static-caravan-with-decking-7cb6c0d2","title":"Static Caravan with Timber Decking (Caravan Park and Campsite)","summary":"The same static sited for a long season: a timber deck runs the length of the front with a slatted balustrade round two sides and three steps down to the pitch, so the door opens onto boards rather than grass. The door still opens; the deck and the balustrade are fixed.","description":"The same static sited for a long season: a timber deck runs the length of the front with a slatted balustrade round two sides and three steps down to the pitch, so the door opens onto boards rather than grass. The door still opens; the deck and the balustrade are fixed. Overall 8.360 x 2.870 x 6.660 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Functional variant of static-caravan. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-static-caravan-with-decking-7cb6c0d2","cdnUrl":"https://cdn.3dassets.dev/assets/35341/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-static-caravan-with-decking-7cb6c0d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/35341/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35341/v1/poster.webp","blurhash":"UED04G9F00g3_NogDiM{00?b?HMx00n%.9oz","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":69796,"triangles":812,"vertices":2436,"meshes":8,"materials":6,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-4.179999828338623,0.00003366606474219935,-1.6998351302411618],"max":[4.179999828338623,2.8697742015472625,4.9600897268005175]},"sizeMeters":[8.36,2.87,6.66],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:22.635Z","updatedAt":"2026-09-11T13:16:22.782Z","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/35341/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 StaticCaravanWithTimberDeckingCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35341/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/35341/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35341/v1/model.glb\" alt=\"Static Caravan with Timber Decking (Caravan Park and Campsite)\" 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/35341/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/35341/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35344","slug":"caravan-park-and-campsite-static-caravan-sunset-livery-ddb0d5fc","title":"Static Caravan, Sunset Livery (Caravan Park and Campsite)","summary":"The static caravan in the park's second livery: the band under the eaves is painted orange instead of blue, so a row of holiday homes reads as more than one unit. The geometry is unchanged and the door opens the same way.","description":"The static caravan in the park's second livery: the band under the eaves is painted orange instead of blue, so a row of holiday homes reads as more than one unit. The geometry is unchanged and the door opens the same way. Overall 8.360 x 2.870 x 4.020 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Cosmetic colour variant of static-caravan; the geometry is unchanged. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-static-caravan-sunset-livery-ddb0d5fc","cdnUrl":"https://cdn.3dassets.dev/assets/35344/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-static-caravan-sunset-livery-ddb0d5fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/35344/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35344/v1/poster.webp","blurhash":"UEFPEJ%M00t7~q?bM{IU00xu?bIV009FtRt7","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":43156,"triangles":368,"vertices":1104,"meshes":8,"materials":6,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-4.179999828338623,0.00003366606474219935,-1.6998351302411618],"max":[4.179999828338623,2.8697742015472625,2.320006653274947]},"sizeMeters":[8.36,2.87,4.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:22.717Z","updatedAt":"2026-09-11T13:16:22.843Z","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/35344/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 StaticCaravanSunsetLiveryCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35344/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/35344/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35344/v1/model.glb\" alt=\"Static Caravan, Sunset Livery (Caravan Park and Campsite)\" 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/35344/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/35344/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35343","slug":"caravan-park-and-campsite-touring-caravan-f889a9ff","title":"Touring Caravan (Caravan Park and Campsite)","summary":"A 4.4 m two berth touring caravan on a single axle: a chamfered body with a rooflight, tinted windows, a blue side flash, a near side door with a step, and an A frame with a coupling head, gas bottle and jockey wheel. The door opens and the wheels roll; the coupling is fixed.","description":"A 4.4 m two berth touring caravan on a single axle: a chamfered body with a rooflight, tinted windows, a blue side flash, a near side door with a step, and an A frame with a coupling head, gas bottle and jockey wheel. The door opens and the wheels roll; the coupling is fixed. Overall 2.647 x 2.170 x 5.365 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door-side, wheel-left, wheel-right. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open, close and roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-touring-caravan-f889a9ff","cdnUrl":"https://cdn.3dassets.dev/assets/35343/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-touring-caravan-f889a9ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/35343/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35343/v1/poster.webp","blurhash":"UIEMLCoJ00f6~qIUD%xu00IU%g%M00t7%Ms:","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":31440,"triangles":580,"vertices":1740,"meshes":12,"materials":5,"textures":0,"animations":["open","close","roll"],"boundingBox":{"min":[-1.0870011575687346,-2.384185793236071e-9,-2.2249999046325684],"max":[1.5600501574644343,2.1700020068344914,3.140000104904175]},"sizeMeters":[2.647,2.17,5.365],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:22.656Z","updatedAt":"2026-09-11T13:16:22.798Z","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/35343/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 TouringCaravanCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35343/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/35343/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35343/v1/model.glb\" alt=\"Touring Caravan (Caravan Park and Campsite)\" 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/35343/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/35343/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35347","slug":"caravan-park-and-campsite-campervan-fc4a6247","title":"Camper Van (Caravan Park and Campsite)","summary":"A 5.4 m panel van conversion: a cab with a raked windscreen and grille, a living body with tinted windows and an orange flash, a stowed elevating roof with a rack, and a sliding side door. The door slides and the four wheels roll; the roof is stowed and does not rise.","description":"A 5.4 m panel van conversion: a cab with a raked windscreen and grille, a living body with tinted windows and an orange flash, a stowed elevating roof with a rack, and a sliding side door. The door slides and the four wheels roll; the roof is stowed and does not rise. Overall 2.163 x 2.660 x 5.485 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door-slide and the four wheel nodes. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open, close and roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-campervan-fc4a6247","cdnUrl":"https://cdn.3dassets.dev/assets/35347/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-campervan-fc4a6247","thumbnailUrl":"https://cdn.3dassets.dev/assets/35347/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35347/v1/poster.webp","blurhash":"UFFFsrWW00t7~q9FDixv00IU%MxuIU-;%gxu","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":26036,"triangles":616,"vertices":1848,"meshes":15,"materials":4,"textures":0,"animations":["open","close","roll"],"boundingBox":{"min":[-1.057007679640419,-3.576278662098531e-9,-2.734999895095825],"max":[1.1059962608247724,2.660057282196423,2.75]},"sizeMeters":[2.163,2.66,5.485],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:24.501Z","updatedAt":"2026-09-11T13:16:24.698Z","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/35347/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 CamperVanCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35347/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/35347/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35347/v1/model.glb\" alt=\"Camper Van (Caravan Park and Campsite)\" 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/35347/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/35347/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35346","slug":"caravan-park-and-campsite-folding-trailer-tent-cc7e1013","title":"Folding Trailer Tent (Caravan Park and Campsite)","summary":"A folding trailer tent set up on its pitch: a box trailer on two wheels with a drawbar, coupling head and jockey wheel, the canvas pitched as a ridge over the bed with a doorway and a ladder. The wheels roll; the canvas is fixed, because fabric cannot be folded rigidly.","description":"A folding trailer tent set up on its pitch: a box trailer on two wheels with a drawbar, coupling head and jockey wheel, the canvas pitched as a ridge over the bed with a doorway and a ladder. The wheels roll; the canvas is fixed, because fabric cannot be folded rigidly. Overall 2.980 x 1.967 x 4.020 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: wheel-left, wheel-right. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-folding-trailer-tent-cc7e1013","cdnUrl":"https://cdn.3dassets.dev/assets/35346/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-folding-trailer-tent-cc7e1013","thumbnailUrl":"https://cdn.3dassets.dev/assets/35346/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35346/v1/poster.webp","blurhash":"UCBp959^02;_~CEMIp-700sm}?bw0L=_-7AI","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":22332,"triangles":436,"vertices":1308,"meshes":9,"materials":5,"textures":0,"animations":["roll"],"boundingBox":{"min":[-1.4900397053424697,-0.000018181886009938086,-1.590000033378601],"max":[1.4900397053424697,1.9671106706702952,2.430000066757202]},"sizeMeters":[2.98,1.967,4.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:24.491Z","updatedAt":"2026-09-11T13:16:24.680Z","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/35346/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 FoldingTrailerTentCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35346/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/35346/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35346/v1/model.glb\" alt=\"Folding Trailer Tent (Caravan Park and Campsite)\" 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/35346/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/35346/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35345","slug":"caravan-park-and-campsite-dome-tent-72989d5b","title":"Two Person Dome Tent (Caravan Park and Campsite)","summary":"A 2.5 x 2.3 m two person dome tent pitched on its groundsheet, with crossed pole arcs over the flysheet, a dark zipped doorway and four guy lines pegged out. Nothing moves: skin, poles, guys and pegs are solid geometry, because fabric needs a deforming surface.","description":"A 2.5 x 2.3 m two person dome tent pitched on its groundsheet, with crossed pole arcs over the flysheet, a dark zipped doorway and four guy lines pegged out. Nothing moves: skin, poles, guys and pegs are solid geometry, because fabric needs a deforming surface. Overall 3.090 x 1.342 x 2.790 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-dome-tent-72989d5b","cdnUrl":"https://cdn.3dassets.dev/assets/35345/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-dome-tent-72989d5b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35345/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35345/v1/poster.webp","blurhash":"U48gpnb_00wbDhoco}o#00V?}sM|yYRk=yaJ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":23300,"triangles":420,"vertices":1260,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.5449999570846558,0.00003173968298782193,-1.3950594723430192],"max":[1.5449999570846558,1.3416467192719073,1.3950594723430192]},"sizeMeters":[3.09,1.342,2.79],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:25.503Z","updatedAt":"2026-09-11T13:16:25.720Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35345/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwoPersonDomeTentCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35345/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35345/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35345/v1/model.glb\" alt=\"Two Person Dome Tent (Caravan Park and Campsite)\" 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/35345/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/35345/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35348","slug":"caravan-park-and-campsite-dome-tent-large-b8c0e9d3","title":"Four Person Dome Tent (Caravan Park and Campsite)","summary":"The same dome pitched one size up at 3.5 x 3.2 m, for a family pitch beside the two person tents. Same construction, same fixed fabric.","description":"The same dome pitched one size up at 3.5 x 3.2 m, for a family pitch beside the two person tents. Same construction, same fixed fabric. Overall 4.306 x 1.850 x 3.886 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Functional variant of dome-tent. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-dome-tent-large-b8c0e9d3","cdnUrl":"https://cdn.3dassets.dev/assets/35348/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-dome-tent-large-b8c0e9d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/35348/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35348/v1/poster.webp","blurhash":"U48gpmo}00vgH=oyo~o#00aK}rN]lUR6=xac","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":23356,"triangles":420,"vertices":1260,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.1530001163482666,0.00008979532961472803,-1.9430026075177647],"max":[2.1530001163482666,1.8496206405010365,1.9430026075177647]},"sizeMeters":[4.306,1.85,3.886],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:25.534Z","updatedAt":"2026-09-11T13:16:25.731Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35348/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourPersonDomeTentCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35348/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35348/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35348/v1/model.glb\" alt=\"Four Person Dome Tent (Caravan Park and Campsite)\" 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/35348/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/35348/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35349","slug":"caravan-park-and-campsite-dome-tent-blue-49b05934","title":"Two Person Dome Tent, Blue (Caravan Park and Campsite)","summary":"The two person dome in blue with orange poles, so a tent field is not one colour. The geometry is unchanged.","description":"The two person dome in blue with orange poles, so a tent field is not one colour. The geometry is unchanged. Overall 3.090 x 1.342 x 2.790 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Cosmetic colour variant of dome-tent; the geometry is unchanged. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-dome-tent-blue-49b05934","cdnUrl":"https://cdn.3dassets.dev/assets/35349/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-dome-tent-blue-49b05934","thumbnailUrl":"https://cdn.3dassets.dev/assets/35349/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35349/v1/poster.webp","blurhash":"U38zot%100Sj4nXRxt$P00M|yZM_.9ix%OFd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":23352,"triangles":420,"vertices":1260,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.5449999570846558,0.00003173968298782193,-1.3950594723430192],"max":[1.5449999570846558,1.3416467192719073,1.3950594723430192]},"sizeMeters":[3.09,1.342,2.79],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:26.349Z","updatedAt":"2026-09-11T13:16:26.453Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35349/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwoPersonDomeTentBlueCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35349/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35349/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35349/v1/model.glb\" alt=\"Two Person Dome Tent, Blue (Caravan Park and Campsite)\" 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/35349/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/35349/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35350","slug":"caravan-park-and-campsite-family-tunnel-tent-1859283b","title":"Family Tunnel Tent (Caravan Park and Campsite)","summary":"A 3.1 x 4.8 m family tunnel tent: three hooped bedrooms and a living end under one vault, a zipped front doorway, a rear vent panel, mud skirts down both sides and four guy lines pegged out. Everything is fixed geometry; the fabric does not move.","description":"A 3.1 x 4.8 m family tunnel tent: three hooped bedrooms and a living end under one vault, a zipped front doorway, a rear vent panel, mud skirts down both sides and four guy lines pegged out. Everything is fixed geometry; the fabric does not move. Overall 4.090 x 1.897 x 5.590 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-family-tunnel-tent-1859283b","cdnUrl":"https://cdn.3dassets.dev/assets/35350/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-family-tunnel-tent-1859283b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35350/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35350/v1/poster.webp","blurhash":"UCC$J;X60L$*wHEMR.-U00WC}?RjFg=_$|9_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":28964,"triangles":536,"vertices":1608,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.044963891386793,-0.000006241988964039713,-2.7950000762939453],"max":[2.044963891386793,1.897041344043798,2.7950000762939453]},"sizeMeters":[4.09,1.897,5.59],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:27.385Z","updatedAt":"2026-09-11T13:16:27.485Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35350/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FamilyTunnelTentCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35350/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35350/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35350/v1/model.glb\" alt=\"Family Tunnel Tent (Caravan Park and Campsite)\" 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/35350/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/35350/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35352","slug":"caravan-park-and-campsite-bell-tent-d7f74bfd","title":"Canvas Bell Tent (Caravan Park and Campsite)","summary":"A 3.6 m canvas bell tent on a single centre pole: a low sidewall under a coned roof with a metal cap, a pegged groundsheet, a zipped doorway and eight guy lines out to their pegs. The pole, the canvas and the guys are all fixed geometry.","description":"A 3.6 m canvas bell tent on a single centre pole: a low sidewall under a coned roof with a metal cap, a pegged groundsheet, a zipped doorway and eight guy lines out to their pegs. The pole, the canvas and the guys are all fixed geometry. Overall 4.665 x 2.680 x 4.665 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-bell-tent-d7f74bfd","cdnUrl":"https://cdn.3dassets.dev/assets/35352/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-bell-tent-d7f74bfd","thumbnailUrl":"https://cdn.3dassets.dev/assets/35352/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35352/v1/poster.webp","blurhash":"UHByT?t70LNGE1axxabH02R*}?s:?GofNKo2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":30988,"triangles":452,"vertices":1356,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-2.332355499267578,-0.00007817992744368896,-2.332355499267578],"max":[2.332355499267578,2.6800349657560365,2.332355499267578]},"sizeMeters":[4.665,2.68,4.665],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:27.545Z","updatedAt":"2026-09-11T13:16:27.643Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35352/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanvasBellTentCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35352/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35352/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35352/v1/model.glb\" alt=\"Canvas Bell Tent (Caravan Park and Campsite)\" 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/35352/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/35352/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35351","slug":"caravan-park-and-campsite-caravan-awning-1094ea21","title":"Caravan Porch Awning (Caravan Park and Campsite)","summary":"A 3.4 x 2.6 m porch awning for a touring caravan's near side: a pole frame, a canvas roof falling from 2.25 m at the van to 1.95 m at the front, cream panels with a window and a doorway, an orange valance and a groundsheet. The open back butts against the van. Nothing moves.","description":"A 3.4 x 2.6 m porch awning for a touring caravan's near side: a pole frame, a canvas roof falling from 2.25 m at the van to 1.95 m at the front, cream panels with a window and a doorway, an orange valance and a groundsheet. The open back butts against the van. Nothing moves. Overall 3.520 x 2.314 x 2.665 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-caravan-awning-1094ea21","cdnUrl":"https://cdn.3dassets.dev/assets/35351/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-caravan-awning-1094ea21","thumbnailUrl":"https://cdn.3dassets.dev/assets/35351/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35351/v1/poster.webp","blurhash":"UEIEb8-p0Mxa[8-oJCIU00oLMcE1G^SOwIR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":16072,"triangles":252,"vertices":756,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.7599999904632568,-0.000015703607392003605,-1.3324478824250623],"max":[1.7599999904632568,2.3142751841999574,1.3324478824250623]},"sizeMeters":[3.52,2.314,2.665],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:27.353Z","updatedAt":"2026-09-11T13:16:27.452Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35351/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CaravanPorchAwningCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35351/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35351/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35351/v1/model.glb\" alt=\"Caravan Porch Awning (Caravan Park and Campsite)\" 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/35351/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/35351/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35353","slug":"caravan-park-and-campsite-windbreak-bay-338d1ae6","title":"Windbreak Bay (Caravan Park and Campsite)","summary":"One 2 m bay of a windbreak: striped cloth stretched between three timber poles, ported at both ends so any number of bays make a run round a pitch. The cloth is solid geometry and does not move, because a windbreak is only ever a sheet in the wind.","description":"One 2 m bay of a windbreak: striped cloth stretched between three timber poles, ported at both ends so any number of bays make a run round a pitch. The cloth is solid geometry and does not move, because a windbreak is only ever a sheet in the wind. Overall 2.081 x 1.640 x 0.086 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (windbreak), end (windbreak). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-windbreak-bay-338d1ae6","cdnUrl":"https://cdn.3dassets.dev/assets/35353/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-windbreak-bay-338d1ae6","thumbnailUrl":"https://cdn.3dassets.dev/assets/35353/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35353/v1/poster.webp","blurhash":"UDD+C^$*00R*^*-oIV9t00t6~VIp57NG%1%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":13832,"triangles":114,"vertices":342,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.0364058017730713,0.000046103780720119225,-0.04281342452681381],"max":[1.0449999570846558,1.640000577162797,0.04281342452681381]},"sizeMeters":[2.081,1.64,0.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:28.175Z","updatedAt":"2026-09-11T13:16:28.351Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35353/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindbreakBayCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35353/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35353/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35353/v1/model.glb\" alt=\"Windbreak Bay (Caravan Park and Campsite)\" 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/35353/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/35353/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35354","slug":"caravan-park-and-campsite-grass-pitch-tile-2fb907e5","title":"Grass Pitch Tile (Caravan Park and Campsite)","summary":"A 6 m square of mown touring field with a scatter of grass tufts, ported on all four edges so any number of them tile into a pitch field. Ports sit at ground level on each edge midpoint, so two tiles butt with no gap.","description":"A 6 m square of mown touring field with a scatter of grass tufts, ported on all four edges so any number of them tile into a pitch field. Ports sit at ground level on each edge midpoint, so two tiles butt with no gap. Overall 6.000 x 0.280 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (pitch), south (pitch), west (pitch), east (pitch). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-grass-pitch-tile-2fb907e5","cdnUrl":"https://cdn.3dassets.dev/assets/35354/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-grass-pitch-tile-2fb907e5","thumbnailUrl":"https://cdn.3dassets.dev/assets/35354/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35354/v1/poster.webp","blurhash":"U9B;8kx[00WCtQbHV@jZ00M|_LaeMyn%t7Wq","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":11660,"triangles":222,"vertices":666,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-3,0.00010315315807532532,-3],"max":[3,0.2798968480340176,3]},"sizeMeters":[6,0.28,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:29.133Z","updatedAt":"2026-09-11T13:16:29.233Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35354/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GrassPitchTileCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35354/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35354/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35354/v1/model.glb\" alt=\"Grass Pitch Tile (Caravan Park and Campsite)\" 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/35354/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/35354/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35355","slug":"caravan-park-and-campsite-hardstanding-pitch-tile-4d76993d","title":"Hardstanding Pitch Tile (Caravan Park and Campsite)","summary":"A 6 m square pitch with a 5 x 4.6 m concrete hardstanding laid in it, painted bay lines and a stencilled pitch number, grass to the edges and the same four edge ports as the grass tile so hard and grass pitches mix in one grid.","description":"A 6 m square pitch with a 5 x 4.6 m concrete hardstanding laid in it, painted bay lines and a stencilled pitch number, grass to the edges and the same four edge ports as the grass tile so hard and grass pitches mix in one grid. Overall 6.000 x 0.260 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (pitch), south (pitch), west (pitch), east (pitch). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-hardstanding-pitch-tile-4d76993d","cdnUrl":"https://cdn.3dassets.dev/assets/35355/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-hardstanding-pitch-tile-4d76993d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35355/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35355/v1/poster.webp","blurhash":"U7B:{N%M00V[x[azRjkB00M{~qWVIBj[xuV[","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":27660,"triangles":264,"vertices":792,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00000885513611964539,-3],"max":[3,0.2600088455993765,3]},"sizeMeters":[6,0.26,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:29.415Z","updatedAt":"2026-09-11T13:16:29.511Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35355/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HardstandingPitchTileCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35355/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35355/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35355/v1/model.glb\" alt=\"Hardstanding Pitch Tile (Caravan Park and Campsite)\" 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/35355/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/35355/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35356","slug":"caravan-park-and-campsite-gravel-track-tile-ae9e0a10","title":"Gravel Track Tile, Straight (Caravan Park and Campsite)","summary":"A 6 m ground tile with a 3 m gravel carriageway running across it and grass verges either side, ported at both ends of the track and on all four tile edges, so a run of them makes the site road through a field of pitches.","description":"A 6 m ground tile with a 3 m gravel carriageway running across it and grass verges either side, ported at both ends of the track and on all four tile edges, so a run of them makes the site road through a field of pitches. Overall 6.000 x 0.280 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (track), end (track), north (pitch), south (pitch). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-gravel-track-tile-ae9e0a10","cdnUrl":"https://cdn.3dassets.dev/assets/35356/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-gravel-track-tile-ae9e0a10","thumbnailUrl":"https://cdn.3dassets.dev/assets/35356/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35356/v1/poster.webp","blurhash":"U8B|f_%L00R+xta$WAk800M|~pafMyoas;V{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":30588,"triangles":324,"vertices":972,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-3,0.00010315315807532532,-3],"max":[3,0.2798968480340176,3]},"sizeMeters":[6,0.28,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:29.453Z","updatedAt":"2026-09-11T13:16:29.552Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35356/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GravelTrackTileStraightCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35356/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35356/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35356/v1/model.glb\" alt=\"Gravel Track Tile, Straight (Caravan Park and Campsite)\" 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/35356/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/35356/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35357","slug":"caravan-park-and-campsite-gravel-track-curve-94d53ed9","title":"Gravel Track Tile, Curve (Caravan Park and Campsite)","summary":"The quarter turn of the site road: the same 3 m gravel carriageway swept through ninety degrees inside one 6 m tile, entering at the west edge and leaving at the south edge, ported at both ends so it drops into a straight run.","description":"The quarter turn of the site road: the same 3 m gravel carriageway swept through ninety degrees inside one 6 m tile, entering at the west edge and leaving at the south edge, ported at both ends so it drops into a straight run. Overall 6.036 x 0.280 x 6.036 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (track), end (track). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-gravel-track-curve-94d53ed9","cdnUrl":"https://cdn.3dassets.dev/assets/35357/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-gravel-track-curve-94d53ed9","thumbnailUrl":"https://cdn.3dassets.dev/assets/35357/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35357/v1/poster.webp","blurhash":"U8C74o-W00XdxtjuWBoe00I-_MV#IVbFofRk","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":32820,"triangles":348,"vertices":1044,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-3.0363211631774902,0.00010315315807532532,-3],"max":[3,0.2798968480340176,3.0363211631774902]},"sizeMeters":[6.036,0.28,6.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:31.038Z","updatedAt":"2026-09-11T13:16:31.141Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35357/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GravelTrackTileCurveCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35357/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35357/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35357/v1/model.glb\" alt=\"Gravel Track Tile, Curve (Caravan Park and Campsite)\" 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/35357/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/35357/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35358","slug":"caravan-park-and-campsite-pitch-marker-post-b005d6b3","title":"Pitch Marker Post (Caravan Park and Campsite)","summary":"A 1 m timber pitch marker with a blue number plate and a pointed galvanised cap, driven in at the corner of a pitch so a warden can number the field. Static geometry.","description":"A 1 m timber pitch marker with a blue number plate and a pointed galvanised cap, driven in at the corner of a pitch so a warden can number the field. Static geometry. Overall 0.340 x 1.100 x 0.171 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-pitch-marker-post-b005d6b3","cdnUrl":"https://cdn.3dassets.dev/assets/35358/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-pitch-marker-post-b005d6b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/35358/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35358/v1/poster.webp","blurhash":"UA6u3Hxb00E0*0kEH=VraIbGbdjFMIWAt-t8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":11468,"triangles":70,"vertices":210,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.17000000178813934,0,-0.07608452439308167],"max":[0.17000000178813934,1.1000016644457442,0.09499984561931328]},"sizeMeters":[0.34,1.1,0.171],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:30.983Z","updatedAt":"2026-09-11T13:16:31.085Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35358/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PitchMarkerPostCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35358/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35358/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35358/v1/model.glb\" alt=\"Pitch Marker Post (Caravan Park and Campsite)\" 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/35358/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/35358/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35359","slug":"caravan-park-and-campsite-electric-hook-up-bollard-649c4b9b","title":"Electric Hook Up Bollard (Caravan Park and Campsite)","summary":"A 1 m site electricity bollard on a concrete pad: a dark pedestal with a sloped weather top, two orange outlets under their cover and a blue label. Static geometry; the outlet covers are modelled shut.","description":"A 1 m site electricity bollard on a concrete pad: a dark pedestal with a sloped weather top, two orange outlets under their cover and a blue label. Static geometry; the outlet covers are modelled shut. Overall 0.340 x 1.011 x 0.353 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-electric-hook-up-bollard-649c4b9b","cdnUrl":"https://cdn.3dassets.dev/assets/35359/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-electric-hook-up-bollard-649c4b9b","thumbnailUrl":"https://cdn.3dassets.dev/assets/35359/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35359/v1/poster.webp","blurhash":"UAAmo8%M009F~qoL4nR*_NWV8_s.%gWCMws.","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":21272,"triangles":112,"vertices":336,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.17000000178813934,0,-0.15271309709872377],"max":[0.17000000178813934,1.0106415377488291,0.19999130520468597]},"sizeMeters":[0.34,1.011,0.353],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:31.099Z","updatedAt":"2026-09-11T13:16:31.212Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35359/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ElectricHookUpBollardCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35359/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35359/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35359/v1/model.glb\" alt=\"Electric Hook Up Bollard (Caravan Park and Campsite)\" 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/35359/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/35359/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35360","slug":"caravan-park-and-campsite-water-point-e404d250","title":"Water Point (Caravan Park and Campsite)","summary":"A site water point: a galvanised standpipe on a concrete pad with a swan neck tap over a grated drain tray and a blue label. The tap and the water are fixed: a rigid node could turn a handle, but not the water it lets out, so the fitting is modelled shut.","description":"A site water point: a galvanised standpipe on a concrete pad with a swan neck tap over a grated drain tray and a blue label. The tap and the water are fixed: a rigid node could turn a handle, but not the water it lets out, so the fitting is modelled shut. Overall 0.800 x 1.100 x 0.800 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-water-point-e404d250","cdnUrl":"https://cdn.3dassets.dev/assets/35360/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-water-point-e404d250","thumbnailUrl":"https://cdn.3dassets.dev/assets/35360/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35360/v1/poster.webp","blurhash":"U8BM_PWB00-;00IU-;-;M{oft7WB~qt8RjM{","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":23496,"triangles":176,"vertices":528,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,-0.000001525925496535796,-0.4000000059604645],"max":[0.4000000059604645,1.100000023841858,0.4000000059604645]},"sizeMeters":[0.8,1.1,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:31.202Z","updatedAt":"2026-09-11T13:16:31.323Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35360/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterPointCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35360/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35360/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35360/v1/model.glb\" alt=\"Water Point (Caravan Park and Campsite)\" 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/35360/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/35360/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35362","slug":"caravan-park-and-campsite-chemical-disposal-point-21dfd40c","title":"Chemical Disposal Point (Caravan Park and Campsite)","summary":"The chemical toilet emptying point: a concrete plinth carrying a glazed white chute with a hinged metal cover, a rinsing standpipe and a blue instruction sign. Static geometry; the cover is modelled closed.","description":"The chemical toilet emptying point: a concrete plinth carrying a glazed white chute with a hinged metal cover, a rinsing standpipe and a blue instruction sign. Static geometry; the cover is modelled closed. Overall 1.300 x 1.480 x 1.100 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-chemical-disposal-point-21dfd40c","cdnUrl":"https://cdn.3dassets.dev/assets/35362/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-chemical-disposal-point-21dfd40c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35362/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35362/v1/poster.webp","blurhash":"UDE3PInN00pK00IA?Fx_00ae?btR~p%NNGRO","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":22628,"triangles":140,"vertices":420,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.6499999761581421,0.000014956934702645142,-0.5500213427819699],"max":[0.6499999761581421,1.480018621208441,0.5500213427819699]},"sizeMeters":[1.3,1.48,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:32.812Z","updatedAt":"2026-09-11T13:16:32.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35362/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChemicalDisposalPointCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35362/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35362/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35362/v1/model.glb\" alt=\"Chemical Disposal Point (Caravan Park and Campsite)\" 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/35362/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/35362/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35361","slug":"caravan-park-and-campsite-picnic-bench-99052c3c","title":"Picnic Bench (Caravan Park and Campsite)","summary":"A 1.8 m timber picnic bench with the benches built onto the same A frames as the table, of the kind bolted down beside a pitch or outside a site shop. Static geometry.","description":"A 1.8 m timber picnic bench with the benches built onto the same A frames as the table, of the kind bolted down beside a pitch or outside a site shop. Static geometry. Overall 1.800 x 0.811 x 1.520 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-picnic-bench-99052c3c","cdnUrl":"https://cdn.3dassets.dev/assets/35361/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-picnic-bench-99052c3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35361/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35361/v1/poster.webp","blurhash":"U48:3D-m0#JQ}rxFJ7Na0OV]$jM}0#k9%0o0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":12704,"triangles":108,"vertices":324,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000010293883320133812,-0.7600298880053697],"max":[0.8999999761581421,0.8108603777112926,0.7600298880053697]},"sizeMeters":[1.8,0.811,1.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:33.813Z","updatedAt":"2026-09-11T13:16:33.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35361/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PicnicBenchCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35361/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35361/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35361/v1/model.glb\" alt=\"Picnic Bench (Caravan Park and Campsite)\" 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/35361/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/35361/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35364","slug":"caravan-park-and-campsite-fire-pit-ring-a42e931d","title":"Fire Pit Ring with Logs (Caravan Park and Campsite)","summary":"A 1.2 m fire pit: a ring of set stones round an ash bed with three logs stacked over the embers. The fire itself is glowing geometry rather than an effect: there are no lights, no particles and nothing animated, because flame is not a rigid body.","description":"A 1.2 m fire pit: a ring of set stones round an ash bed with three logs stacked over the embers. The fire itself is glowing geometry rather than an effect: there are no lights, no particles and nothing animated, because flame is not a rigid body. Overall 1.392 x 0.375 x 1.294 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-fire-pit-ring-a42e931d","cdnUrl":"https://cdn.3dassets.dev/assets/35364/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-fire-pit-ring-a42e931d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35364/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35364/v1/poster.webp","blurhash":"U8A0%Zxu00Rkoej[bIfk00NG~VoLRkWBn$ae","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":51504,"triangles":532,"vertices":1596,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.6959999799728394,0.00004493300748575901,-0.6469760243535482],"max":[0.6959999799728394,0.37457717670761626,0.6469760243535482]},"sizeMeters":[1.392,0.375,1.294],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:34.165Z","updatedAt":"2026-09-11T13:16:34.277Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35364/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirePitRingWithLogsCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35364/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35364/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35364/v1/model.glb\" alt=\"Fire Pit Ring with Logs (Caravan Park and Campsite)\" 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/35364/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/35364/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35363","slug":"caravan-park-and-campsite-camping-chair-390fe145","title":"Folding Camping Chair (Caravan Park and Campsite)","summary":"A folding camping chair set up: a galvanised tube frame with a canvas seat, back and arm straps and a cup holder on one arm. Static geometry; the frame is modelled open, because folding it needs a jointed linkage rather than one rigid node.","description":"A folding camping chair set up: a galvanised tube frame with a canvas seat, back and arm straps and a cup holder on one arm. Static geometry; the frame is modelled open, because folding it needs a jointed linkage rather than one rigid node. Overall 0.650 x 0.924 x 0.534 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-camping-chair-390fe145","cdnUrl":"https://cdn.3dassets.dev/assets/35363/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-camping-chair-390fe145","thumbnailUrl":"https://cdn.3dassets.dev/assets/35363/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35363/v1/poster.webp","blurhash":"UKE2IGxt01Rj}?Wo58ni57NIxaxCEMWYxan~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":11188,"triangles":180,"vertices":540,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.28999999165534973,0,-0.25477903936139346],"max":[0.36000001430511475,0.9243310834185504,0.27878501866093874]},"sizeMeters":[0.65,0.924,0.534],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:34.145Z","updatedAt":"2026-09-11T13:16:34.258Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35363/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingCampingChairCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35363/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35363/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35363/v1/model.glb\" alt=\"Folding Camping Chair (Caravan Park and Campsite)\" 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/35363/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/35363/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35365","slug":"caravan-park-and-campsite-camping-chair-blue-3a552568","title":"Folding Camping Chair, Blue (Caravan Park and Campsite)","summary":"The same folding chair in blue canvas with an orange cup holder, so a pitch is not set out in one colour. The geometry is unchanged.","description":"The same folding chair in blue canvas with an orange cup holder, so a pitch is not set out in one colour. The geometry is unchanged. Overall 0.650 x 0.924 x 0.534 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Cosmetic colour variant of camping-chair; the geometry is unchanged. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-camping-chair-blue-3a552568","cdnUrl":"https://cdn.3dassets.dev/assets/35365/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-camping-chair-blue-3a552568","thumbnailUrl":"https://cdn.3dassets.dev/assets/35365/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35365/v1/poster.webp","blurhash":"UH9a:Rtl4TRPyZbFH=WCH=aJxuX9R4n$xbW=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":11228,"triangles":180,"vertices":540,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.28999999165534973,0,-0.25477903936139346],"max":[0.36000001430511475,0.9243310834185504,0.27878501866093874]},"sizeMeters":[0.65,0.924,0.534],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:35.727Z","updatedAt":"2026-09-11T13:16:35.827Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35365/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingCampingChairBlueCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35365/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35365/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35365/v1/model.glb\" alt=\"Folding Camping Chair, Blue (Caravan Park and Campsite)\" 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/35365/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/35365/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35366","slug":"caravan-park-and-campsite-folding-camp-table-c7e0c488","title":"Folding Camp Table (Caravan Park and Campsite)","summary":"A 1.1 m folding camp table: a white top with a blue edge rail on crossed galvanised legs. Static geometry; the legs are modelled set up.","description":"A 1.1 m folding camp table: a white top with a blue edge rail on crossed galvanised legs. Static geometry; the legs are modelled set up. Overall 1.140 x 0.752 x 0.620 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-folding-camp-table-c7e0c488","cdnUrl":"https://cdn.3dassets.dev/assets/35366/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-folding-camp-table-c7e0c488","thumbnailUrl":"https://cdn.3dassets.dev/assets/35366/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35366/v1/poster.webp","blurhash":"UbF68|ofD%t7~qxuIUM{ayxuRjM{D%xut7Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":9028,"triangles":144,"vertices":432,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5699999928474426,-0.000016677307573986777,-0.3100222852314694],"max":[0.5699999928474426,0.7518406183325194,0.3100222852314694]},"sizeMeters":[1.14,0.752,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:36.596Z","updatedAt":"2026-09-11T13:16:36.781Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35366/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingCampTableCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35366/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35366/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35366/v1/model.glb\" alt=\"Folding Camp Table (Caravan Park and Campsite)\" 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/35366/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/35366/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35368","slug":"caravan-park-and-campsite-cool-box-e9466247","title":"Cool Box (Caravan Park and Campsite)","summary":"A 0.62 m rigid cool box with a white lid, a moulded catch and a grab handle each end. The lid is one node hinged along its back edge, so the clip lifts it and shuts it again.","description":"A 0.62 m rigid cool box with a white lid, a moulded catch and a grab handle each end. The lid is one node hinged along its back edge, so the clip lifts it and shuts it again. Overall 0.676 x 0.450 x 0.440 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: lid. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-cool-box-e9466247","cdnUrl":"https://cdn.3dassets.dev/assets/35368/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-cool-box-e9466247","thumbnailUrl":"https://cdn.3dassets.dev/assets/35368/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35368/v1/poster.webp","blurhash":"UCE:rV.S00s,}jxvJDbF00rpnhIq0N%L-oD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":7552,"triangles":88,"vertices":264,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3400000035762787,-0.000009460257327675858,-0.20998687234735286],"max":[0.33618032932281494,0.44999571638175045,0.23000762560416915]},"sizeMeters":[0.676,0.45,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:36.987Z","updatedAt":"2026-09-11T13:16:37.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35368/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 CoolBoxCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35368/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/35368/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35368/v1/model.glb\" alt=\"Cool Box (Caravan Park and Campsite)\" 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/35368/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/35368/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35367","slug":"caravan-park-and-campsite-storage-crate-e19a8b9d","title":"Camping Storage Crate (Caravan Park and Campsite)","summary":"A 0.6 m stacking storage crate with ribbed sides, a clip on lid and moulded hand holds, for the boxes that come out of a car boot onto a pitch. Static geometry; the lid is modelled clipped shut.","description":"A 0.6 m stacking storage crate with ribbed sides, a clip on lid and moulded hand holds, for the boxes that come out of a car boot onto a pitch. Static geometry; the lid is modelled clipped shut. Overall 0.620 x 0.470 x 0.455 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-storage-crate-e19a8b9d","cdnUrl":"https://cdn.3dassets.dev/assets/35367/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-storage-crate-e19a8b9d","thumbnailUrl":"https://cdn.3dassets.dev/assets/35367/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35367/v1/poster.webp","blurhash":"UXH32Hx]4-WB~Vt7M|a_I8oJRPWBIpt7oJRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":5968,"triangles":72,"vertices":216,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3100000023841858,-0.000010086009688464737,-0.22000000169200282],"max":[0.3100000023841858,0.47001419141705575,0.23501266343867835]},"sizeMeters":[0.62,0.47,0.455],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:36.970Z","updatedAt":"2026-09-11T13:16:37.090Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35367/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampingStorageCrateCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35367/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35367/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35367/v1/model.glb\" alt=\"Camping Storage Crate (Caravan Park and Campsite)\" 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/35367/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/35367/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35369","slug":"caravan-park-and-campsite-awning-mat-2ef54a75","title":"Awning Ground Mat (Caravan Park and Campsite)","summary":"A 3 x 2.4 m breathable awning mat with woven stripes and bound ends, laid under a porch awning or in front of a tent door. It is 30 mm thick, so it reads on grass without floating. Static geometry.","description":"A 3 x 2.4 m breathable awning mat with woven stripes and bound ends, laid under a porch awning or in front of a tent door. It is 30 mm thick, so it reads on grass without floating. Static geometry. Overall 3.040 x 0.030 x 2.480 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-awning-mat-2ef54a75","cdnUrl":"https://cdn.3dassets.dev/assets/35369/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-awning-mat-2ef54a75","thumbnailUrl":"https://cdn.3dassets.dev/assets/35369/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35369/v1/poster.webp","blurhash":"U7BND_%M00S1x]ogV@oI00M{_NadIAWAa#M}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":6392,"triangles":84,"vertices":252,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5199999809265137,-0.00007110835059649136,-1.2400012051804143],"max":[1.5199999809265137,0.030029755022864393,1.2400012051804143]},"sizeMeters":[3.04,0.03,2.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:37.596Z","updatedAt":"2026-09-11T13:16:37.883Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35369/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AwningGroundMatCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35369/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35369/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35369/v1/model.glb\" alt=\"Awning Ground Mat (Caravan Park and Campsite)\" 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/35369/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/35369/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35370","slug":"caravan-park-and-campsite-shower-and-toilet-block-430a4fe0","title":"Shower and Toilet Block (Caravan Park and Campsite)","summary":"A 7.2 x 4.4 m site shower and toilet block: rendered walls on a concrete apron, high frosted lights, a pitched roof and two signed entrances with an orange leaf in each. Each door is its own node, so the shower side and the toilet side open separately. Ported at both ends.","description":"A 7.2 x 4.4 m site shower and toilet block: rendered walls on a concrete apron, high frosted lights, a pitched roof and two signed entrances with an orange leaf in each. Each door is its own node, so the shower side and the toilet side open separately. Ported at both ends. Overall 7.240 x 3.470 x 4.700 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door-shower, door-toilet. Connectors: start (block), end (block). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: shower-open, shower-close, toilet-open and toilet-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-shower-and-toilet-block-430a4fe0","cdnUrl":"https://cdn.3dassets.dev/assets/35370/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-shower-and-toilet-block-430a4fe0","thumbnailUrl":"https://cdn.3dassets.dev/assets/35370/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35370/v1/poster.webp","blurhash":"UJE36n%MD%WB4.xv%LRj00IVRjof~WRPIoRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":33316,"triangles":332,"vertices":996,"meshes":10,"materials":6,"textures":1,"animations":["shower-open","shower-close","toilet-open","toilet-close"],"boundingBox":{"min":[-3.619999885559082,-0.00020691524041318438,-2.3498458072402624],"max":[3.619999885559082,3.4697779398172193,2.3498458072402624]},"sizeMeters":[7.24,3.47,4.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:38.471Z","updatedAt":"2026-09-11T13:16:38.603Z","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/35370/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 ShowerAndToiletBlockCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35370/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/35370/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35370/v1/model.glb\" alt=\"Shower and Toilet Block (Caravan Park and Campsite)\" 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/35370/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/35370/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35371","slug":"caravan-park-and-campsite-laundry-room-module-f39c1a7f","title":"Laundry Room Module (Caravan Park and Campsite)","summary":"A 3 m laundry end for the shower block: the same render and apron under a lower mono pitch roof, a vent panel, a high light at the back and a blue door. It is ported on its open west face, so it butts onto the block and reads as one building. The door opens and shuts.","description":"A 3 m laundry end for the shower block: the same render and apron under a lower mono pitch roof, a vent panel, a high light at the back and a blue door. It is ported on its open west face, so it butts onto the block and reads as one building. The door opens and shuts. Overall 3.520 x 2.714 x 4.695 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Connectors: start (block). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-laundry-room-module-f39c1a7f","cdnUrl":"https://cdn.3dassets.dev/assets/35371/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-laundry-room-module-f39c1a7f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35371/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35371/v1/poster.webp","blurhash":"UCEo_Q-;4m-n9FIA%2x]00M|M|9a~q%fD*oc","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":26364,"triangles":180,"vertices":540,"meshes":8,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-1.5798734360539843,-0.0000848415517658227,-2.3477420806884766],"max":[1.9400781932761775,2.7143781019341926,2.3477420806884766]},"sizeMeters":[3.52,2.714,4.695],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:39.931Z","updatedAt":"2026-09-11T13:16:40.031Z","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/35371/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 LaundryRoomModuleCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35371/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/35371/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35371/v1/model.glb\" alt=\"Laundry Room Module (Caravan Park and Campsite)\" 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/35371/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/35371/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35372","slug":"caravan-park-and-campsite-washing-up-sinks-43a9c061","title":"Washing Up Sinks under a Canopy (Caravan Park and Campsite)","summary":"A 3.2 x 2 m washing up point: two stainless bowls and their taps set in a white counter with a splashback and a draining shelf, under an orange canopy on four posts, on its own concrete apron. Static geometry; the taps are modelled shut.","description":"A 3.2 x 2 m washing up point: two stainless bowls and their taps set in a white counter with a splashback and a draining shelf, under an orange canopy on four posts, on its own concrete apron. Static geometry; the taps are modelled shut. Overall 3.700 x 2.705 x 2.495 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-washing-up-sinks-43a9c061","cdnUrl":"https://cdn.3dassets.dev/assets/35372/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-washing-up-sinks-43a9c061","thumbnailUrl":"https://cdn.3dassets.dev/assets/35372/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35372/v1/poster.webp","blurhash":"UIIg=exa00of{]%1K6NF9FsloyNbTzxanONe","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":31388,"triangles":324,"vertices":972,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.850000023841858,-0.00009918308356376276,-1.2476363575199858],"max":[1.850000023841858,2.7046352344032654,1.2476363575199858]},"sizeMeters":[3.7,2.705,2.495],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:38.921Z","updatedAt":"2026-09-11T13:16:39.045Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35372/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WashingUpSinksUnderACanopyCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35372/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35372/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35372/v1/model.glb\" alt=\"Washing Up Sinks under a Canopy (Caravan Park and Campsite)\" 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/35372/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/35372/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35373","slug":"caravan-park-and-campsite-site-shop-and-reception-3f28f019","title":"Site Shop and Reception Cabin (Caravan Park and Campsite)","summary":"A 4.6 x 3.4 m timber clad site shop and reception: a serving window under an orange canopy, a glazed entrance door, a blue fascia sign, a gas bottle for exchange and an A board on the apron. The door is one node and opens; the canopy and the A board are fixed.","description":"A 4.6 x 3.4 m timber clad site shop and reception: a serving window under an orange canopy, a glazed entrance door, a blue fascia sign, a gas bottle for exchange and an A board on the apron. The door is one node and opens; the canopy and the A board are fixed. Overall 4.900 x 3.340 x 4.400 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-site-shop-and-reception-3f28f019","cdnUrl":"https://cdn.3dassets.dev/assets/35373/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-site-shop-and-reception-3f28f019","thumbnailUrl":"https://cdn.3dassets.dev/assets/35373/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35373/v1/poster.webp","blurhash":"U8B:a5_N00IA0gozxZS2009FM|of]~%Lx^R5","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":42876,"triangles":356,"vertices":1068,"meshes":10,"materials":7,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2.450000047683716,0.000014953005565629396,-1.899989355500684],"max":[2.450000047683716,3.340066211409127,2.5003880479623413]},"sizeMeters":[4.9,3.34,4.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:40.645Z","updatedAt":"2026-09-11T13:16:40.763Z","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/35373/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 SiteShopAndReceptionCabinCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35373/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/35373/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35373/v1/model.glb\" alt=\"Site Shop and Reception Cabin (Caravan Park and Campsite)\" 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/35373/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/35373/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35374","slug":"caravan-park-and-campsite-gas-bottle-cage-44ac181f","title":"Gas Bottle Cage (Caravan Park and Campsite)","summary":"A 1.9 x 1.2 m galvanised gas bottle cage on a concrete pad: mesh panels in a framed cage with a warning sign, five exchange bottles inside and a framed mesh door. The door opens and shuts; the bottles are fixed.","description":"A 1.9 x 1.2 m galvanised gas bottle cage on a concrete pad: mesh panels in a framed cage with a warning sign, five exchange bottles inside and a framed mesh door. The door opens and shuts; the bottles are fixed. Overall 2.100 x 1.910 x 1.400 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-gas-bottle-cage-44ac181f","cdnUrl":"https://cdn.3dassets.dev/assets/35374/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-gas-bottle-cage-44ac181f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35374/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35374/v1/poster.webp","blurhash":"UDGbr0?H00Nx?wxuMdRiJBkDH?aJ$K%MT1E1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":67064,"triangles":1044,"vertices":3132,"meshes":5,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-1.0499999523162842,0.0000106844935427175,-0.7000426941221822],"max":[1.0499999523162842,1.9100721434062744,0.7000426941221822]},"sizeMeters":[2.1,1.91,1.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:41.479Z","updatedAt":"2026-09-11T13:16:41.588Z","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/35374/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 GasBottleCageCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35374/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/35374/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35374/v1/model.glb\" alt=\"Gas Bottle Cage (Caravan Park and Campsite)\" 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/35374/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/35374/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35375","slug":"caravan-park-and-campsite-bin-and-recycling-store-beed8b68","title":"Bin and Recycling Store (Caravan Park and Campsite)","summary":"A 2.4 m slatted timber bin and recycling store on a concrete pad, with a blue and an orange wheeled bin inside and labelled panels on the front. The top is one node hinged along its back edge, so the clip lifts the lid and drops it shut. The bins themselves are fixed.","description":"A 2.4 m slatted timber bin and recycling store on a concrete pad, with a blue and an orange wheeled bin inside and labelled panels on the front. The top is one node hinged along its back edge, so the clip lifts the lid and drops it shut. The bins themselves are fixed. Overall 2.600 x 1.380 x 1.350 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-bin-and-recycling-store-beed8b68","cdnUrl":"https://cdn.3dassets.dev/assets/35375/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-bin-and-recycling-store-beed8b68","thumbnailUrl":"https://cdn.3dassets.dev/assets/35375/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35375/v1/poster.webp","blurhash":"U5DILD~X0L;^00=v-:I.0fH;n2F|?F?byYNd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":45884,"triangles":420,"vertices":1260,"meshes":6,"materials":5,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-1.2999999523162842,0.000010684056971931033,-0.675014471532617],"max":[1.2999999523162842,1.3800068860011523,0.675014471532617]},"sizeMeters":[2.6,1.38,1.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:40.947Z","updatedAt":"2026-09-11T13:16:41.043Z","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/35375/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 BinAndRecyclingStoreCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35375/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/35375/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35375/v1/model.glb\" alt=\"Bin and Recycling Store (Caravan Park and Campsite)\" 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/35375/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/35375/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35376","slug":"caravan-park-and-campsite-playground-swing-set-36359ece","title":"Playground Swing Set (Caravan Park and Campsite)","summary":"A 4.8 m two bay swing frame on a safety mat: galvanised A frames, a top bar and two seats on chains. Each seat is its own node pivoted on the top bar, so the clip rocks both seats through their arc. The frame and the mat are fixed.","description":"A 4.8 m two bay swing frame on a safety mat: galvanised A frames, a top bar and two seats on chains. Each seat is its own node pivoted on the top bar, so the clip rocks both seats through their arc. The frame and the mat are fixed. Overall 4.800 x 2.400 x 3.400 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: seat-left, seat-right. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: swing. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-playground-swing-set-36359ece","cdnUrl":"https://cdn.3dassets.dev/assets/35376/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-playground-swing-set-36359ece","thumbnailUrl":"https://cdn.3dassets.dev/assets/35376/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35376/v1/poster.webp","blurhash":"U39@YP_400NGIS?bIV9E009Y~qIARq9G~q.8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":14008,"triangles":252,"vertices":756,"meshes":6,"materials":4,"textures":0,"animations":["swing"],"boundingBox":{"min":[-2.4000000953674316,0.00011627366307877252,-1.7000031194029994],"max":[2.4000000953674316,2.400093861695803,1.7000031194029994]},"sizeMeters":[4.8,2.4,3.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:42.800Z","updatedAt":"2026-09-11T13:16:42.906Z","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/35376/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 PlaygroundSwingSetCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35376/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/35376/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35376/v1/model.glb\" alt=\"Playground Swing Set (Caravan Park and Campsite)\" 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/35376/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/35376/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35377","slug":"caravan-park-and-campsite-playground-slide-513f641c","title":"Playground Slide (Caravan Park and Campsite)","summary":"A 2.2 x 4.2 m playground slide on a safety mat: a galvanised platform at 1.5 m with a ladder up the back and blue grab rails, and an orange slide bed with raised sides running down to a run out at the front. Static geometry.","description":"A 2.2 x 4.2 m playground slide on a safety mat: a galvanised platform at 1.5 m with a ladder up the back and blue grab rails, and an orange slide bed with raised sides running down to a run out at the front. Static geometry. Overall 2.200 x 2.269 x 4.200 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-playground-slide-513f641c","cdnUrl":"https://cdn.3dassets.dev/assets/35377/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-playground-slide-513f641c","thumbnailUrl":"https://cdn.3dassets.dev/assets/35377/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35377/v1/poster.webp","blurhash":"UCB:T:vx01PCERD%RP-p00p0}?wHwG?H%L9a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":18056,"triangles":308,"vertices":924,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.1001494907352722,0.000006409578538538879,-2.0999999046325684],"max":[1.1001494907352722,2.2685317993164062,2.0999999046325684]},"sizeMeters":[2.2,2.269,4.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:43.606Z","updatedAt":"2026-09-11T13:16:43.709Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35377/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlaygroundSlideCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35377/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35377/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35377/v1/model.glb\" alt=\"Playground Slide (Caravan Park and Campsite)\" 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/35377/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/35377/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35378","slug":"caravan-park-and-campsite-site-noticeboard-3448b55f","title":"Site Noticeboard (Caravan Park and Campsite)","summary":"A 1.9 m site noticeboard on two timber posts: a white backing board under a small pent roof with pinned notices on it. Static geometry.","description":"A 1.9 m site noticeboard on two timber posts: a white backing board under a small pent roof with pinned notices on it. Static geometry. Overall 1.900 x 1.990 x 0.417 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-site-noticeboard-3448b55f","cdnUrl":"https://cdn.3dassets.dev/assets/35378/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-site-noticeboard-3448b55f","thumbnailUrl":"https://cdn.3dassets.dev/assets/35378/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35378/v1/poster.webp","blurhash":"UDB:BIM_00o#~Bxt9uIo00%M?cIU9FaK-;o}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":13540,"triangles":108,"vertices":324,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.9499581108346618,0,-0.06992928693796638],"max":[0.9499581108346618,1.9897898435592651,0.34713289896751887]},"sizeMeters":[1.9,1.99,0.417],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:43.858Z","updatedAt":"2026-09-11T13:16:43.956Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35378/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SiteNoticeboardCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35378/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35378/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35378/v1/model.glb\" alt=\"Site Noticeboard (Caravan Park and Campsite)\" 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/35378/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/35378/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35379","slug":"caravan-park-and-campsite-entrance-barrier-2a6125c4","title":"Entrance Barrier (Caravan Park and Campsite)","summary":"A 4.2 m site entrance barrier: a galvanised pedestal on a concrete base with a striped arm and a counterweight, and a drop leg under the far end. The arm is one node on the pedestal axis, so the clip tilts it up to let a tourer through and drops it again. The pedestal is fixed.","description":"A 4.2 m site entrance barrier: a galvanised pedestal on a concrete base with a striped arm and a counterweight, and a drop leg under the far end. The arm is one node on the pedestal axis, so the clip tilts it up to let a tourer through and drops it again. The pedestal is fixed. Overall 4.565 x 1.290 x 0.700 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: arm. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-entrance-barrier-2a6125c4","cdnUrl":"https://cdn.3dassets.dev/assets/35379/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-entrance-barrier-2a6125c4","thumbnailUrl":"https://cdn.3dassets.dev/assets/35379/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35379/v1/poster.webp","blurhash":"U69@9b?b9ws:^+oJE1W=00RP$yI:00t8~Vad","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":24156,"triangles":176,"vertices":528,"meshes":7,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.6299999952316284,0.000012817454451030663,-0.3499999940395355],"max":[3.9350083731071663,1.2900008756552435,0.3499999940395355]},"sizeMeters":[4.565,1.29,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:43.269Z","updatedAt":"2026-09-11T13:16:43.373Z","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/35379/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 EntranceBarrierCaravanParkAndCampsite(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/35379/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/35379/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35379/v1/model.glb\" alt=\"Entrance Barrier (Caravan Park and Campsite)\" 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/35379/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/35379/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"35380","slug":"caravan-park-and-campsite-site-entrance-sign-2d4eea35","title":"Site Entrance Sign (Caravan Park and Campsite)","summary":"A 2.8 m painted entrance sign on two timber posts: a blue board with the park name and opening times blocked out in white and an orange strap line under them, of the kind that stands beside the barrier. Static geometry.","description":"A 2.8 m painted entrance sign on two timber posts: a blue board with the park name and opening times blocked out in white and an orange strap line under them, of the kind that stands beside the barrier. Static geometry. Overall 2.820 x 2.500 x 0.160 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-site-entrance-sign-2d4eea35","cdnUrl":"https://cdn.3dassets.dev/assets/35380/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-site-entrance-sign-2d4eea35","thumbnailUrl":"https://cdn.3dassets.dev/assets/35380/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35380/v1/poster.webp","blurhash":"UC9%xHx]00V@_N%MD%E1DNo#%hR58wn4.9b^","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":14808,"triangles":132,"vertices":396,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.409999966621399,-0.00009640889670281538,-0.08003784105703306],"max":[1.409999966621399,2.500096408896703,0.08003784105703306]},"sizeMeters":[2.82,2.5,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:44.668Z","updatedAt":"2026-09-11T13:16:44.765Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35380/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SiteEntranceSignCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35380/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35380/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35380/v1/model.glb\" alt=\"Site Entrance Sign (Caravan Park and Campsite)\" 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/35380/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/35380/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35381","slug":"caravan-park-and-campsite-floodlight-column-b863e812","title":"Site Floodlight Column (Caravan Park and Campsite)","summary":"A 4.75 m galvanised lighting column on a concrete base with a blue collar and a single floodlight head aimed down the track. The lens is plain emissive free geometry: the pack ships no lights, so a consumer adds its own.","description":"A 4.75 m galvanised lighting column on a concrete base with a blue collar and a single floodlight head aimed down the track. The lens is plain emissive free geometry: the pack ships no lights, so a consumer adds its own. Overall 0.600 x 4.916 x 0.972 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-floodlight-column-b863e812","cdnUrl":"https://cdn.3dassets.dev/assets/35381/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-floodlight-column-b863e812","thumbnailUrl":"https://cdn.3dassets.dev/assets/35381/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35381/v1/poster.webp","blurhash":"U17K#f%M004T00t8~qM^xvt6bCIpJE%M-O8_","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":21188,"triangles":104,"vertices":312,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,-0.00001144444150825985,-0.30000001192092896],"max":[0.30000001192092896,4.915769037864297,0.6722019910812378]},"sizeMeters":[0.6,4.916,0.972],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:45.236Z","updatedAt":"2026-09-11T13:16:45.344Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35381/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SiteFloodlightColumnCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35381/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35381/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35381/v1/model.glb\" alt=\"Site Floodlight Column (Caravan Park and Campsite)\" 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/35381/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/35381/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35382","slug":"caravan-park-and-campsite-hedge-section-1ddb0f77","title":"Boundary Hedge Section (Caravan Park and Campsite)","summary":"A 2 m section of clipped boundary hedge, 1.45 m tall with an uneven crown, ported at both ends so sections run nose to tail round a site. Static geometry.","description":"A 2 m section of clipped boundary hedge, 1.45 m tall with an uneven crown, ported at both ends so sections run nose to tail round a site. Static geometry. Overall 2.000 x 1.600 x 1.018 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (hedge), end (hedge). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-hedge-section-1ddb0f77","cdnUrl":"https://cdn.3dassets.dev/assets/35382/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-hedge-section-1ddb0f77","thumbnailUrl":"https://cdn.3dassets.dev/assets/35382/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35382/v1/poster.webp","blurhash":"U5Ef}+9G00xt8y_KV?8z00-;owIByB%y.78|","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":9932,"triangles":186,"vertices":558,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.00004271399233746198,-0.4750750274481137],"max":[1,1.6000427378341953,0.5429003746332486]},"sizeMeters":[2,1.6,1.018],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:46.508Z","updatedAt":"2026-09-11T13:16:46.697Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35382/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoundaryHedgeSectionCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35382/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35382/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35382/v1/model.glb\" alt=\"Boundary Hedge Section (Caravan Park and Campsite)\" 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/35382/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/35382/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35383","slug":"caravan-park-and-campsite-tree-clump-dbb974b7","title":"Boundary Tree Clump (Caravan Park and Campsite)","summary":"A clump of two broadleaf trees and a shrub on one base, 3.8 m across and 3.5 m tall, for the boundary of a park or the far side of a hedge. Static geometry.","description":"A clump of two broadleaf trees and a shrub on one base, 3.8 m across and 3.5 m tall, for the boundary of a park or the far side of a hedge. Static geometry. Overall 4.858 x 3.519 x 2.800 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-tree-clump-dbb974b7","cdnUrl":"https://cdn.3dassets.dev/assets/35383/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-tree-clump-dbb974b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/35383/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35383/v1/poster.webp","blurhash":"UCAwkl%f00Myx]f8IBM|00Rj_Le:M{k9%fx[","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":30380,"triangles":476,"vertices":1428,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2.1500000953674316,-0.0000265318879085763,-1.2531873709344121],"max":[2.7083981037139893,3.518611239230778,1.5470600849770757]},"sizeMeters":[4.858,3.519,2.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:45.720Z","updatedAt":"2026-09-11T13:16:45.823Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35383/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoundaryTreeClumpCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35383/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35383/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35383/v1/model.glb\" alt=\"Boundary Tree Clump (Caravan Park and Campsite)\" 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/35383/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/35383/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35384","slug":"caravan-park-and-campsite-timber-boundary-fence-d79961b2","title":"Timber Boundary Fence Bay (Caravan Park and Campsite)","summary":"One 2 m bay of post and rail boundary fence: two pointed posts carrying two rails and a top rail, ported at both ends so bays run round a field. Static geometry.","description":"One 2 m bay of post and rail boundary fence: two pointed posts carrying two rails and a top rail, ported at both ends so bays run round a field. Static geometry. Overall 2.043 x 1.200 x 0.171 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (fence), end (fence). Caravan Park and Campsite / holidaypark-lp-v1: mown grass, concrete hardstanding, cream caravan shell, sawn timber, galvanised steel and charcoal glazing, with the orange and blue of awnings, tents and site signage carrying the colour, embedded procedural timber and concrete maps and no custom shaders. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-timber-boundary-fence-d79961b2","cdnUrl":"https://cdn.3dassets.dev/assets/35384/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-timber-boundary-fence-d79961b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/35384/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35384/v1/poster.webp","blurhash":"U79~Wn-9Ef%0}q^4WVNb0#$P=dI;9wRl$Pw{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":11080,"triangles":80,"vertices":240,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.012811541557312,-0.00005676537032717199,-0.08553536777133694],"max":[1.0299999713897705,1.200056813054043,0.08553536777133694]},"sizeMeters":[2.043,1.2,0.171],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:47.502Z","updatedAt":"2026-09-11T13:16:47.598Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35384/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberBoundaryFenceBayCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35384/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35384/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35384/v1/model.glb\" alt=\"Timber Boundary Fence Bay (Caravan Park and Campsite)\" 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/35384/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/35384/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"35385","slug":"caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","title":"Holiday Park and Touring Field (Caravan Park and Campsite)","summary":"A 42 x 36 m holiday caravan park entered from the front corner, where the barrier, the painted site sign and the shop and reception stand over the gravel track. The track turns in and runs the width of the site. Behind it the static caravans line up along the back boundary on...","description":"A 42 x 36 m holiday caravan park entered from the front corner, where the barrier, the painted site sign and the shop and reception stand over the gravel track. The track turns in and runs the width of the site. Behind it the static caravans line up along the back boundary on their hardstandings, one of them decked, one in the second livery, with a windbreak run pegged out in front of the end van. Between the track and the statics is the touring field: tourers and campervans on grass with porch awnings, hook up bollards, marker posts, benches and chairs. In front of the track is the tent area, with dome, tunnel and bell tents round a fire pit, and the shower block with its laundry end, the washing up canopy, the chemical disposal point and the water point closing the west end. The play area, the bin store and the gas cage sit along the front, inside a post and rail fence, with a boundary hedge and tree clumps round the back.","status":"published","url":"https://3dassets.dev/assets/caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/35385/v1/model.glb","downloadUrl":"https://3dassets.dev/download/caravan-park-and-campsite-holiday-park-a-0e790716-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/35385/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35385/v1/poster.webp","blurhash":"U9C6[MR500sEjdoxV@V]00tk~pR%SbV{xut2","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":669100,"triangles":12756,"vertices":30148,"meshes":210,"materials":8,"textures":2,"animations":[],"boundingBox":{"min":[-21.936027436189732,-0.00000885513611964539,-18],"max":[21,5.017769037864297,18]},"sizeMeters":[42.936,5.018,36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T13:16:48.287Z","updatedAt":"2026-09-11T13:16:48.386Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35385/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolidayParkAndTouringFieldCaravanParkAndCampsite(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35385/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35385/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35385/v1/model.glb\" alt=\"Holiday Park and Touring Field (Caravan Park and Campsite)\" 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/35385/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/35385/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"caravan-park-and-campsite","title":"Caravan Park and Campsite","url":"https://3dassets.dev/demos/caravan-park-and-campsite"}}}