{"data":{"id":179,"slug":"party-obstacle-course","title":"Party Obstacle Course","summary":"Thirty premium padded obstacle and festival designs for original party courses.","description":"Original coral, teal and yellow sporting festival with a connected out-and-back obstacle route. Smooth padding, mounting hardware and six mechanical animations. CC0 AI-generated geometry. No gameplay, collision or physics.","url":"https://3dassets.dev/packs/party-obstacle-course","coverUrl":"https://cdn.3dassets.dev/assets/28953/v1/poster.webp","assetCount":31,"aiGenerated":true,"aiGeneratedAssetCount":31,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":4520204,"totalTriangles":265508,"starterScene":{"id":"28953","slug":"party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","title":"Festival out-and-back challenge (Party Obstacle Course)","summary":"Connected padded course with a start, hazards, turn, return route and finish; dressed spectator areas and roofed operations booth. Static scene with reusable animated individual hazards.","description":"Connected padded course with a start, hazards, turn, return route and finish; dressed spectator areas and roofed operations booth. Static scene with reusable animated individual hazards.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/28953/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/28953/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28953/v1/poster.webp","blurhash":"U79aNt.R00rrs8R*X8$*00H@~WR*I]xHsC9]","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":1461024,"triangles":101960,"vertices":79677,"meshes":100,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-9.300085444393188,-0.13506042731931472,-18.00013426261749],"max":[19,4.050000190734863,11.300085444393188]},"sizeMeters":[28.3,4.185,29.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:55.228Z","updatedAt":"2026-09-08T03:57:55.414Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28953/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FestivalOutAndBackChallengePartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28953/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28953/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28953/v1/model.glb\" alt=\"Festival out-and-back challenge (Party Obstacle Course)\" 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/28953/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/28953/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"28925","slug":"party-obstacle-course-party-obstacle-course-platform-s-f258befb","title":"Padded straight platform (Party Obstacle Course)","summary":"Padded straight platform in a padded coral and teal festival family.","description":"Padded straight platform. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-platform-s-f258befb","cdnUrl":"https://cdn.3dassets.dev/assets/28925/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-platform-s-f258befb","thumbnailUrl":"https://cdn.3dassets.dev/assets/28925/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28925/v1/poster.webp","blurhash":"UB7:94x]8wNG*JofQ-WV00RPyrjZ8waetlV[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":104460,"triangles":5280,"vertices":4314,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000007629292092858897,-2],"max":[2,0.8319944506222603,2]},"sizeMeters":[4,0.832,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:48.303Z","updatedAt":"2026-09-08T03:57:48.430Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28925/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PaddedStraightPlatformPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28925/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28925/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28925/v1/model.glb\" alt=\"Padded straight platform (Party Obstacle Course)\" 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/28925/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/28925/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28924","slug":"party-obstacle-course-party-obstacle-course-platform-c-126f562b","title":"Quarter-turn platform (Party Obstacle Course)","summary":"Quarter-turn platform in a padded coral and teal festival family.","description":"Quarter-turn platform. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-platform-c-126f562b","cdnUrl":"https://cdn.3dassets.dev/assets/28924/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-platform-c-126f562b","thumbnailUrl":"https://cdn.3dassets.dev/assets/28924/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28924/v1/poster.webp","blurhash":"UGEUijxt0eaf}[oeIpja00Rj^QWV0eR*$%WV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":124520,"triangles":6456,"vertices":5074,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000007629292092858897,-2],"max":[2,0.8350247868351546,2]},"sizeMeters":[4,0.835,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:48.295Z","updatedAt":"2026-09-08T03:57:48.427Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28924/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuarterTurnPlatformPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28924/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28924/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28924/v1/model.glb\" alt=\"Quarter-turn platform (Party Obstacle Course)\" 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/28924/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/28924/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28922","slug":"party-obstacle-course-party-obstacle-course-junction-eedd3990","title":"Three-way checkpoint junction (Party Obstacle Course)","summary":"Three-way checkpoint junction in a padded coral and teal festival family.","description":"Three-way checkpoint junction. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-junction-eedd3990","cdnUrl":"https://cdn.3dassets.dev/assets/28922/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-junction-eedd3990","thumbnailUrl":"https://cdn.3dassets.dev/assets/28922/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28922/v1/poster.webp","blurhash":"UB8iFlx[4TNH.mkCMda{00RP.RoJ4Tae%LWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":112972,"triangles":5472,"vertices":4727,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000007629292092858897,-2],"max":[2,0.8399967830854969,2]},"sizeMeters":[4,0.84,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:48.243Z","updatedAt":"2026-09-08T03:57:48.371Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28922/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThreeWayCheckpointJunctionPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28922/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28922/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28922/v1/model.glb\" alt=\"Three-way checkpoint junction (Party Obstacle Course)\" 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/28922/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/28922/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28926","slug":"party-obstacle-course-party-obstacle-course-end-landin-ac9a4c90","title":"Terminal landing (Party Obstacle Course)","summary":"Terminal landing in a padded coral and teal festival family.","description":"Terminal landing. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-end-landin-ac9a4c90","cdnUrl":"https://cdn.3dassets.dev/assets/28926/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-end-landin-ac9a4c90","thumbnailUrl":"https://cdn.3dassets.dev/assets/28926/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28926/v1/poster.webp","blurhash":"UDEoG6=|02NH~AxHIqSx00IV_0Sw03NstiRQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":143836,"triangles":7632,"vertices":5844,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000007629292092858897,-2],"max":[2,1.2999465808390145,2]},"sizeMeters":[4,1.3,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:48.315Z","updatedAt":"2026-09-08T03:57:48.443Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28926/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalLandingPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28926/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28926/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28926/v1/model.glb\" alt=\"Terminal landing (Party Obstacle Course)\" 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/28926/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/28926/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28927","slug":"party-obstacle-course-party-obstacle-course-rising-ram-556e7e88","title":"Rising padded ramp (Party Obstacle Course)","summary":"Rising padded ramp in a padded coral and teal festival family.","description":"Rising padded ramp. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-rising-ram-556e7e88","cdnUrl":"https://cdn.3dassets.dev/assets/28927/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-rising-ram-556e7e88","thumbnailUrl":"https://cdn.3dassets.dev/assets/28927/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28927/v1/poster.webp","blurhash":"U77MvduOD4Rim,g2X-WV00VE*JniO?ixm,oM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":249476,"triangles":14496,"vertices":9974,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.00008004850016907206,-2],"max":[2,0.7650800210820325,2]},"sizeMeters":[4,0.765,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:48.634Z","updatedAt":"2026-09-08T03:57:48.855Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28927/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RisingPaddedRampPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28927/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28927/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28927/v1/model.glb\" alt=\"Rising padded ramp (Party Obstacle Course)\" 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/28927/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/28927/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28928","slug":"party-obstacle-course-party-obstacle-course-stair-appr-88a1b406","title":"Four-step approach (Party Obstacle Course)","summary":"Four-step approach in a padded coral and teal festival family.","description":"Four-step approach. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-stair-appr-88a1b406","cdnUrl":"https://cdn.3dassets.dev/assets/28928/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-stair-appr-88a1b406","thumbnailUrl":"https://cdn.3dassets.dev/assets/28928/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28928/v1/poster.webp","blurhash":"U9BD$lHW00#8+bsUO?Xm00*e^+Nv3BNa+HrD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":40596,"triangles":2352,"vertices":1522,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.899999976158142,0.00010072080497530722,-2.00013426261749],"max":[1.899999976158142,0.7998657165208843,2.00013426261749]},"sizeMeters":[3.8,0.8,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:49.155Z","updatedAt":"2026-09-08T03:57:49.321Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28928/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourStepApproachPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28928/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28928/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28928/v1/model.glb\" alt=\"Four-step approach (Party Obstacle Course)\" 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/28928/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/28928/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28929","slug":"party-obstacle-course-party-obstacle-course-gap-jump-p-e21c1def","title":"Twin gap jump blocks (Party Obstacle Course)","summary":"Twin gap jump blocks in a padded coral and teal festival family.","description":"Twin gap jump blocks. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-gap-jump-p-e21c1def","cdnUrl":"https://cdn.3dassets.dev/assets/28929/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-gap-jump-p-e21c1def","thumbnailUrl":"https://cdn.3dassets.dev/assets/28929/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28929/v1/poster.webp","blurhash":"UDCY]vyA0Li+}@SwEe$j00Mg-ox.0gw4#rEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":114612,"triangles":6456,"vertices":5078,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00008545812227339633,-2],"max":[2,1.2000061364845407,2]},"sizeMeters":[4,1.2,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:49.339Z","updatedAt":"2026-09-08T03:57:49.452Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28929/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwinGapJumpBlocksPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28929/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28929/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28929/v1/model.glb\" alt=\"Twin gap jump blocks (Party Obstacle Course)\" 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/28929/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/28929/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28931","slug":"party-obstacle-course-party-obstacle-course-balance-be-51149d66","title":"Narrow padded balance beam (Party Obstacle Course)","summary":"Narrow padded balance beam in a padded coral and teal festival family.","description":"Narrow padded balance beam. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-balance-be-51149d66","cdnUrl":"https://cdn.3dassets.dev/assets/28931/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-balance-be-51149d66","thumbnailUrl":"https://cdn.3dassets.dev/assets/28931/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28931/v1/poster.webp","blurhash":"U47e0Gs=00tQ^zIq9c=_00IV_1%006$}~S9w","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":133240,"triangles":7044,"vertices":5454,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00008545812227339633,-2],"max":[2,1.5398766623063727,2]},"sizeMeters":[4,1.54,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.199Z","updatedAt":"2026-09-08T03:57:50.379Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28931/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NarrowPaddedBalanceBeamPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28931/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28931/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28931/v1/model.glb\" alt=\"Narrow padded balance beam (Party Obstacle Course)\" 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/28931/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/28931/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28930","slug":"party-obstacle-course-party-obstacle-course-stepping-d-de85e134","title":"Raised stepping drum (Party Obstacle Course)","summary":"Raised stepping drum in a padded coral and teal festival family.","description":"Raised stepping drum. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-stepping-d-de85e134","cdnUrl":"https://cdn.3dassets.dev/assets/28930/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-stepping-d-de85e134","thumbnailUrl":"https://cdn.3dassets.dev/assets/28930/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28930/v1/poster.webp","blurhash":"USDAMXtR01RQ~7oJE4flD5V@yCoy5ZW=$eae","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":31584,"triangles":1120,"vertices":2410,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7300000190734863,0.00004547104936612756,-0.7300000190734863],"max":[0.7300000190734863,1.0299777007664688,0.7300000190734863]},"sizeMeters":[1.46,1.03,1.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.184Z","updatedAt":"2026-09-08T03:57:50.381Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28930/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RaisedSteppingDrumPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28930/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28930/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28930/v1/model.glb\" alt=\"Raised stepping drum (Party Obstacle Course)\" 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/28930/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/28930/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28932","slug":"party-obstacle-course-party-obstacle-course-tilting-se-6652bf9c","title":"Bearing-mounted seesaw (Party Obstacle Course)","summary":"Bearing-mounted seesaw in a padded coral and teal festival family.","description":"Bearing-mounted seesaw. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-tilting-se-6652bf9c","cdnUrl":"https://cdn.3dassets.dev/assets/28932/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-tilting-se-6652bf9c","thumbnailUrl":"https://cdn.3dassets.dev/assets/28932/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28932/v1/poster.webp","blurhash":"U99j+Dai01xs~9Iq9c-n00M|_0%004%0~SE4","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":124148,"triangles":6456,"vertices":5077,"meshes":4,"materials":4,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-2,0.00008545812227339633,-2],"max":[2,1.5700864017184273,2]},"sizeMeters":[4,1.57,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.215Z","updatedAt":"2026-09-08T03:57:50.392Z","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/28932/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 BearingMountedSeesawPartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28932/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/28932/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28932/v1/model.glb\" alt=\"Bearing-mounted seesaw (Party Obstacle Course)\" 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/28932/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/28932/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28933","slug":"party-obstacle-course-party-obstacle-course-rotating-s-21f0bd35","title":"Rotating padded sweeper (Party Obstacle Course)","summary":"Rotating padded sweeper in a padded coral and teal festival family.","description":"Rotating padded sweeper. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-rotating-s-21f0bd35","cdnUrl":"https://cdn.3dassets.dev/assets/28933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-rotating-s-21f0bd35","thumbnailUrl":"https://cdn.3dassets.dev/assets/28933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28933/v1/poster.webp","blurhash":"U6ABLl?b00EM@ssnGGNb00Mx_Na_3?N_@@xD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":139440,"triangles":6444,"vertices":5936,"meshes":6,"materials":6,"textures":0,"animations":["spin"],"boundingBox":{"min":[-2,-0.00011655891325001999,-2],"max":[2,2.0699920182982336,2]},"sizeMeters":[4,2.07,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.218Z","updatedAt":"2026-09-08T03:57:50.464Z","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/28933/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 RotatingPaddedSweeperPartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28933/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/28933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28933/v1/model.glb\" alt=\"Rotating padded sweeper (Party Obstacle Course)\" 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/28933/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/28933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28934","slug":"party-obstacle-course-party-obstacle-course-rotating-p-4f80b42e","title":"Rotating four-paddle gate (Party Obstacle Course)","summary":"Rotating four-paddle gate in a padded coral and teal festival family.","description":"Rotating four-paddle gate. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-rotating-p-4f80b42e","cdnUrl":"https://cdn.3dassets.dev/assets/28934/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-rotating-p-4f80b42e","thumbnailUrl":"https://cdn.3dassets.dev/assets/28934/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28934/v1/poster.webp","blurhash":"UAAxGa?a0057VrkWM{RP00K5~Avfy?kWxanQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":206608,"triangles":11480,"vertices":8825,"meshes":8,"materials":6,"textures":0,"animations":["spin"],"boundingBox":{"min":[-2.0250000953674316,0.00008086079004701596,-2.0000329015892877],"max":[2.0250000953674316,4.049949727905867,2.0000329015892877]},"sizeMeters":[4.05,4.05,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.397Z","updatedAt":"2026-09-08T03:57:50.511Z","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/28934/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 RotatingFourPaddleGatePartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28934/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/28934/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28934/v1/model.glb\" alt=\"Rotating four-paddle gate (Party Obstacle Course)\" 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/28934/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/28934/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28935","slug":"party-obstacle-course-party-obstacle-course-roller-bri-afc8ad52","title":"Seven-roller bridge (Party Obstacle Course)","summary":"Seven-roller bridge in a padded coral and teal festival family.","description":"Seven-roller bridge. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-roller-bri-afc8ad52","cdnUrl":"https://cdn.3dassets.dev/assets/28935/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-roller-bri-afc8ad52","thumbnailUrl":"https://cdn.3dassets.dev/assets/28935/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28935/v1/poster.webp","blurhash":"UGC~bj%102R-}?bFE3sp00M|^is.0NWD={Sd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":156792,"triangles":6624,"vertices":7030,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00008545812227339633,-2],"max":[2,1.3299875112529729,2]},"sizeMeters":[4,1.33,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.526Z","updatedAt":"2026-09-08T03:57:50.748Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28935/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SevenRollerBridgePartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28935/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28935/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28935/v1/model.glb\" alt=\"Seven-roller bridge (Party Obstacle Course)\" 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/28935/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/28935/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28936","slug":"party-obstacle-course-party-obstacle-course-piston-bum-437544d6","title":"Padded piston bumper (Party Obstacle Course)","summary":"Padded piston bumper in a padded coral and teal festival family.","description":"Padded piston bumper. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-piston-bum-437544d6","cdnUrl":"https://cdn.3dassets.dev/assets/28936/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-piston-bum-437544d6","thumbnailUrl":"https://cdn.3dassets.dev/assets/28936/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28936/v1/poster.webp","blurhash":"U58FGv_M004ovLnPO?S~008{?w.7C+O=:k#8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":128796,"triangles":7044,"vertices":5458,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-2,-0.00004121157344538773,-2],"max":[2,1.9000411884021398,2]},"sizeMeters":[4,1.9,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:50.906Z","updatedAt":"2026-09-08T03:57:51.030Z","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/28936/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 PaddedPistonBumperPartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28936/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/28936/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28936/v1/model.glb\" alt=\"Padded piston bumper (Party Obstacle Course)\" 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/28936/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/28936/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28937","slug":"party-obstacle-course-party-obstacle-course-pendulum-g-2eb9c62b","title":"Suspended padded pendulum (Party Obstacle Course)","summary":"Suspended padded pendulum in a padded coral and teal festival family.","description":"Suspended padded pendulum. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-pendulum-g-2eb9c62b","cdnUrl":"https://cdn.3dassets.dev/assets/28937/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-pendulum-g-2eb9c62b","thumbnailUrl":"https://cdn.3dassets.dev/assets/28937/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28937/v1/poster.webp","blurhash":"UID0rj%f00Mx:~s+ElNI01n$-oIqG^X9$Lnh","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":185528,"triangles":10176,"vertices":7788,"meshes":7,"materials":6,"textures":0,"animations":["swing"],"boundingBox":{"min":[-2.0250000953674316,0.00008086079004701596,-2.0000329015892877],"max":[2.0250000953674316,4.050000190734863,2.0000329015892877]},"sizeMeters":[4.05,4.05,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:51.199Z","updatedAt":"2026-09-08T03:57:51.394Z","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/28937/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 SuspendedPaddedPendulumPartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28937/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/28937/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28937/v1/model.glb\" alt=\"Suspended padded pendulum (Party Obstacle Course)\" 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/28937/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/28937/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28939","slug":"party-obstacle-course-party-obstacle-course-moving-lif-a11e242e","title":"Guided low lift (Party Obstacle Course)","summary":"Guided low lift in a padded coral and teal festival family.","description":"Guided low lift. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Course deck ports meet on a 4 m grid at 0.8 m height. Rigid mechanical animation; supporting structure stays fixed. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-moving-lif-a11e242e","cdnUrl":"https://cdn.3dassets.dev/assets/28939/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-moving-lif-a11e242e","thumbnailUrl":"https://cdn.3dassets.dev/assets/28939/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28939/v1/poster.webp","blurhash":"UCA130%L02IWMdW=t7ni00Rj~Tt5-:jYRobc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":137732,"triangles":8220,"vertices":6214,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-2,0.00008545812227339633,-2],"max":[2,2.799899559222858,2]},"sizeMeters":[4,2.8,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:51.997Z","updatedAt":"2026-09-08T03:57:52.127Z","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/28939/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 GuidedLowLiftPartyObstacleCourse(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/28939/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/28939/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28939/v1/model.glb\" alt=\"Guided low lift (Party Obstacle Course)\" 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/28939/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/28939/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"28938","slug":"party-obstacle-course-party-obstacle-course-finish-arc-c695fbd0","title":"Finish flag arch (Party Obstacle Course)","summary":"Finish flag arch in a padded coral and teal festival family.","description":"Finish flag arch. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-finish-arc-c695fbd0","cdnUrl":"https://cdn.3dassets.dev/assets/28938/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-finish-arc-c695fbd0","thumbnailUrl":"https://cdn.3dassets.dev/assets/28938/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28938/v1/poster.webp","blurhash":"UJEw|4tl0exG~C-VE1EL9tr?WVIoIUj]xuNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":146420,"triangles":8424,"vertices":5754,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.0250000953674316,-0.00002102823413285826,-0.375002306548954],"max":[2.0250000953674316,4.050000190734863,0.375002306548954]},"sizeMeters":[4.05,4.05,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.012Z","updatedAt":"2026-09-08T03:57:52.240Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28938/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FinishFlagArchPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28938/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28938/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28938/v1/model.glb\" alt=\"Finish flag arch (Party Obstacle Course)\" 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/28938/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/28938/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28941","slug":"party-obstacle-course-party-obstacle-course-start-gate-3a5ac90e","title":"Start light gate (Party Obstacle Course)","summary":"Start light gate in a padded coral and teal festival family.","description":"Start light gate. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-start-gate-3a5ac90e","cdnUrl":"https://cdn.3dassets.dev/assets/28941/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-start-gate-3a5ac90e","thumbnailUrl":"https://cdn.3dassets.dev/assets/28941/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28941/v1/poster.webp","blurhash":"UD6J~|oz8wcE.mu4IAMJh}o}VsQ.M{oLxaRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":86848,"triangles":4104,"vertices":3545,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2.0250000953674316,0.00009842015568427287,-0.375002306548954],"max":[2.0250000953674316,4.050000190734863,0.375002306548954]},"sizeMeters":[4.05,4.05,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.123Z","updatedAt":"2026-09-08T03:57:52.302Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28941/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StartLightGatePartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28941/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28941/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28941/v1/model.glb\" alt=\"Start light gate (Party Obstacle Course)\" 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/28941/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/28941/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28940","slug":"party-obstacle-course-party-obstacle-course-checkpoint-c9f892fe","title":"Checkpoint beacon (Party Obstacle Course)","summary":"Checkpoint beacon in a padded coral and teal festival family.","description":"Checkpoint beacon. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-checkpoint-c9f892fe","cdnUrl":"https://cdn.3dassets.dev/assets/28940/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-checkpoint-c9f892fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/28940/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28940/v1/poster.webp","blurhash":"UF8qNat700M{~Vof4pRj-;j[IUWBt9f8V=fi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":29528,"triangles":1100,"vertices":1483,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2750000059604645,0.000009763952226786443,-0.2750000059604645],"max":[0.2750000059604645,1.669990977407626,0.2750000059604645]},"sizeMeters":[0.55,1.67,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.099Z","updatedAt":"2026-09-08T03:57:52.307Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28940/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheckpointBeaconPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28940/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28940/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28940/v1/model.glb\" alt=\"Checkpoint beacon (Party Obstacle Course)\" 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/28940/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/28940/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28942","slug":"party-obstacle-course-party-obstacle-course-spectator--f78ae874","title":"Three-tier spectator bleacher (Party Obstacle Course)","summary":"Three-tier spectator bleacher in a padded coral and teal festival family.","description":"Three-tier spectator bleacher. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-spectator--f78ae874","cdnUrl":"https://cdn.3dassets.dev/assets/28942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-spectator--f78ae874","thumbnailUrl":"https://cdn.3dassets.dev/assets/28942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28942/v1/poster.webp","blurhash":"U9A^Bo%M03Rk^$?GNeIq00xC~TNJ0403-Q-,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":59892,"triangles":3528,"vertices":2291,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.000045163221699395795,-1.1249122592852565],"max":[2,0.9799145538359084,1.1249122592852565]},"sizeMeters":[4,0.98,2.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.303Z","updatedAt":"2026-09-08T03:57:52.518Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28942/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThreeTierSpectatorBleacherPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28942/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28942/v1/model.glb\" alt=\"Three-tier spectator bleacher (Party Obstacle Course)\" 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/28942/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/28942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28943","slug":"party-obstacle-course-party-obstacle-course-shade-cano-748ae178","title":"Festival shade canopy (Party Obstacle Course)","summary":"Festival shade canopy in a padded coral and teal festival family.","description":"Festival shade canopy. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-shade-cano-748ae178","cdnUrl":"https://cdn.3dassets.dev/assets/28943/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-shade-cano-748ae178","thumbnailUrl":"https://cdn.3dassets.dev/assets/28943/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28943/v1/poster.webp","blurhash":"UV9Iett7VEWC*JofVYjaMyWCR%odHsRkXSay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":47364,"triangles":2148,"vertices":1976,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00007540111804860139,-2],"max":[2,2.9201108441782284,2]},"sizeMeters":[4,2.92,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.495Z","updatedAt":"2026-09-08T03:57:52.626Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28943/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FestivalShadeCanopyPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28943/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28943/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28943/v1/model.glb\" alt=\"Festival shade canopy (Party Obstacle Course)\" 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/28943/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/28943/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28944","slug":"party-obstacle-course-party-obstacle-course-operator-b-a88eb73e","title":"Roofed operator booth (Party Obstacle Course)","summary":"Roofed operator booth in a padded coral and teal festival family.","description":"Roofed operator booth. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-operator-b-a88eb73e","cdnUrl":"https://cdn.3dassets.dev/assets/28944/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-operator-b-a88eb73e","thumbnailUrl":"https://cdn.3dassets.dev/assets/28944/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28944/v1/poster.webp","blurhash":"UeENCHtR9bS3~8oeIubIvfjYVtWBI]oLnhV[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":78724,"triangles":5292,"vertices":3433,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-1.649999976158142,-0.00006714104459182302,-1.4499877716444503],"max":[1.649999976158142,3.000083161130919,1.4499877716444503]},"sizeMeters":[3.3,3,2.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.775Z","updatedAt":"2026-09-08T03:57:52.969Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28944/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofedOperatorBoothPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28944/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28944/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28944/v1/model.glb\" alt=\"Roofed operator booth (Party Obstacle Course)\" 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/28944/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/28944/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28945","slug":"party-obstacle-course-party-obstacle-course-timing-con-8a31e836","title":"Timing control console (Party Obstacle Course)","summary":"Timing control console in a padded coral and teal festival family.","description":"Timing control console. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-timing-con-8a31e836","cdnUrl":"https://cdn.3dassets.dev/assets/28945/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-timing-con-8a31e836","thumbnailUrl":"https://cdn.3dassets.dev/assets/28945/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28945/v1/poster.webp","blurhash":"UG6SsWs;D4W-*JozMdaenOkqX7Z$QmbvXmVY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":57860,"triangles":3228,"vertices":2536,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,1.3411045607369942e-9,-0.32495345898251804],"max":[0.6000000238418579,1.6250166565031572,0.32495345898251804]},"sizeMeters":[1.2,1.625,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:52.989Z","updatedAt":"2026-09-08T03:57:53.096Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28945/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimingControlConsolePartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28945/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28945/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28945/v1/model.glb\" alt=\"Timing control console (Party Obstacle Course)\" 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/28945/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/28945/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28946","slug":"party-obstacle-course-party-obstacle-course-speaker-to-21467db3","title":"Twin speaker tower (Party Obstacle Course)","summary":"Twin speaker tower in a padded coral and teal festival family.","description":"Twin speaker tower. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-speaker-to-21467db3","cdnUrl":"https://cdn.3dassets.dev/assets/28946/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-speaker-to-21467db3","thumbnailUrl":"https://cdn.3dassets.dev/assets/28946/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28946/v1/poster.webp","blurhash":"UD7,=Qt70dM{}toe5RR*^PoL9[WV-AjZEgbb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":56156,"triangles":2736,"vertices":2297,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4499603398739641,1.3411045607369942e-9,-0.4000344983056753],"max":[0.4499603398739641,2.509981265756963,0.42997772749280894]},"sizeMeters":[0.9,2.51,0.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.016Z","updatedAt":"2026-09-08T03:57:54.111Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28946/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TwinSpeakerTowerPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28946/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28946/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28946/v1/model.glb\" alt=\"Twin speaker tower (Party Obstacle Course)\" 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/28946/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/28946/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28947","slug":"party-obstacle-course-party-obstacle-course-perimeter--29a8ce92","title":"Straight perimeter rail (Party Obstacle Course)","summary":"Straight perimeter rail in a padded coral and teal festival family.","description":"Straight perimeter rail. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-perimeter--29a8ce92","cdnUrl":"https://cdn.3dassets.dev/assets/28947/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-perimeter--29a8ce92","thumbnailUrl":"https://cdn.3dassets.dev/assets/28947/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28947/v1/poster.webp","blurhash":"UA8rL1xu4.kW.m%~RiM{00u3?vR58wDO%#-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":59860,"triangles":3132,"vertices":2324,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2,0.00005127163844526744,-0.3000854443931877],"max":[2,1.12991361408629,0.3000854443931877]},"sizeMeters":[4,1.13,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:53.885Z","updatedAt":"2026-09-08T03:57:54.066Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28947/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StraightPerimeterRailPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28947/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28947/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28947/v1/model.glb\" alt=\"Straight perimeter rail (Party Obstacle Course)\" 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/28947/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/28947/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28948","slug":"party-obstacle-course-party-obstacle-course-barrier-co-9e4d01c1","title":"Corner perimeter rail (Party Obstacle Course)","summary":"Corner perimeter rail in a padded coral and teal festival family.","description":"Corner perimeter rail. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-barrier-co-9e4d01c1","cdnUrl":"https://cdn.3dassets.dev/assets/28948/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-barrier-co-9e4d01c1","thumbnailUrl":"https://cdn.3dassets.dev/assets/28948/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28948/v1/poster.webp","blurhash":"U76lMc4T8w_N%~R5VYtR00?^%#8{D4%#kCMd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":115876,"triangles":6264,"vertices":4646,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.0000000335276127,0.000028382105120183798,-0.30000001192092896],"max":[2.2999999821186066,1.1299821524325306,4]},"sizeMeters":[4.3,1.13,4.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.075Z","updatedAt":"2026-09-08T03:57:54.180Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28948/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CornerPerimeterRailPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28948/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28948/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28948/v1/model.glb\" alt=\"Corner perimeter rail (Party Obstacle Course)\" 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/28948/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/28948/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28949","slug":"party-obstacle-course-party-obstacle-course-barrier-en-0927acb5","title":"Terminal perimeter post (Party Obstacle Course)","summary":"Terminal perimeter post in a padded coral and teal festival family.","description":"Terminal perimeter post. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-barrier-en-0927acb5","cdnUrl":"https://cdn.3dassets.dev/assets/28949/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-barrier-en-0927acb5","thumbnailUrl":"https://cdn.3dassets.dev/assets/28949/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28949/v1/poster.webp","blurhash":"UA8NX[t700M{}@oL5QR+v#jZO?W;spfRR*a{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":19816,"triangles":844,"vertices":936,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2750000059604645,0.000015716951441750726,-0.2750000059604645],"max":[0.2750000059604645,1.3099911474317898,0.2750000059604645]},"sizeMeters":[0.55,1.31,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.055Z","updatedAt":"2026-09-08T03:57:54.168Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28949/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TerminalPerimeterPostPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28949/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28949/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28949/v1/model.glb\" alt=\"Terminal perimeter post (Party Obstacle Course)\" 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/28949/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/28949/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28950","slug":"party-obstacle-course-party-obstacle-course-safety-mat-98d41847","title":"Stitched landing mat (Party Obstacle Course)","summary":"Stitched landing mat in a padded coral and teal festival family.","description":"Stitched landing mat. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-safety-mat-98d41847","cdnUrl":"https://cdn.3dassets.dev/assets/28950/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-safety-mat-98d41847","thumbnailUrl":"https://cdn.3dassets.dev/assets/28950/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28950/v1/poster.webp","blurhash":"UBF4i@%20Kbb-VayR*kC00M{}[WB9Zofs:WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":50100,"triangles":2940,"vertices":1900,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427319314701466,-2],"max":[2,0.13002284029919634,2]},"sizeMeters":[4,0.13,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.191Z","updatedAt":"2026-09-08T03:57:54.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28950/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StitchedLandingMatPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28950/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28950/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28950/v1/model.glb\" alt=\"Stitched landing mat (Party Obstacle Course)\" 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/28950/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/28950/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28951","slug":"party-obstacle-course-party-obstacle-course-equipment--45e5a81d","title":"Festival equipment chest (Party Obstacle Course)","summary":"Festival equipment chest in a padded coral and teal festival family.","description":"Festival equipment chest. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-equipment--45e5a81d","cdnUrl":"https://cdn.3dassets.dev/assets/28951/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-equipment--45e5a81d","thumbnailUrl":"https://cdn.3dassets.dev/assets/28951/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28951/v1/poster.webp","blurhash":"UcEWU1oz9GbF~StQIsV@M0xWozRl5Es9r=S5","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":61580,"triangles":3528,"vertices":2284,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000025192001927076824,-0.3500093270205642],"max":[0.6000000238418579,0.7499871822255108,0.4200093198680068]},"sizeMeters":[1.2,0.75,0.77],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.362Z","updatedAt":"2026-09-08T03:57:54.632Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28951/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FestivalEquipmentChestPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28951/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28951/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28951/v1/model.glb\" alt=\"Festival equipment chest (Party Obstacle Course)\" 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/28951/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/28951/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28952","slug":"party-obstacle-course-party-obstacle-course-celebratio-e1340d69","title":"Three-place celebration podium (Party Obstacle Course)","summary":"Three-place celebration podium in a padded coral and teal festival family.","description":"Three-place celebration podium. Original CC0 AI-generated stylized premium model with rounded padding, seams and visible mounting hardware. Metres, Y up, Z forward; footprint origin at ground level. Static structure; joints do not simulate mechanics. No game logic, collision or physics.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-course-celebratio-e1340d69","cdnUrl":"https://cdn.3dassets.dev/assets/28952/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-course-celebratio-e1340d69","thumbnailUrl":"https://cdn.3dassets.dev/assets/28952/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28952/v1/poster.webp","blurhash":"UHD+;x{z03O@+u%NW=Vr00A??rs92[9Yocb_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"stylized","title":"Stylized"},{"slug":"modern","title":"Modern"},{"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":54816,"triangles":3528,"vertices":2282,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-2.0999999344348907,-0.00002670220522058009,-0.699999988079071],"max":[2.0999999344348907,0.8799896881506827,0.699999988079071]},"sizeMeters":[4.2,0.88,1.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:54.649Z","updatedAt":"2026-09-08T03:57:54.860Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28952/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThreePlaceCelebrationPodiumPartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28952/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28952/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28952/v1/model.glb\" alt=\"Three-place celebration podium (Party Obstacle Course)\" 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/28952/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/28952/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"28953","slug":"party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","title":"Festival out-and-back challenge (Party Obstacle Course)","summary":"Connected padded course with a start, hazards, turn, return route and finish; dressed spectator areas and roofed operations booth. Static scene with reusable animated individual hazards.","description":"Connected padded course with a start, hazards, turn, return route and finish; dressed spectator areas and roofed operations booth. Static scene with reusable animated individual hazards.","status":"published","url":"https://3dassets.dev/assets/party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/28953/v1/model.glb","downloadUrl":"https://3dassets.dev/download/party-obstacle-course-party-obstacle-cou-62a043a4-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/28953/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/28953/v1/poster.webp","blurhash":"U79aNt.R00rrs8R*X8$*00H@~WR*I]xHsC9]","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":1461024,"triangles":101960,"vertices":79677,"meshes":100,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-9.300085444393188,-0.13506042731931472,-18.00013426261749],"max":[19,4.050000190734863,11.300085444393188]},"sizeMeters":[28.3,4.185,29.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T03:57:55.228Z","updatedAt":"2026-09-08T03:57:55.414Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/28953/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FestivalOutAndBackChallengePartyObstacleCourse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/28953/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/28953/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/28953/v1/model.glb\" alt=\"Festival out-and-back challenge (Party Obstacle Course)\" 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/28953/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/28953/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}