{"data":{"id":229,"slug":"indoor-climbing-and-bouldering-gym","title":"Indoor Climbing and Bouldering Gym","summary":"Fifty original premium bouldering walls, holds, landing systems and gym service assets.","description":"Pale birch, graphite mats, coral and teal original holds, galvanised framing and complete glazed-roof gym. Varied climbing faces, stocked shoe hire, training and maintenance zones. Static scenery with no climbing physics, route grading, load ratings or safety certification.","url":"https://3dassets.dev/packs/indoor-climbing-and-bouldering-gym","coverUrl":"https://cdn.3dassets.dev/assets/31563/v1/poster.webp","assetCount":51,"aiGenerated":true,"aiGeneratedAssetCount":51,"aiModels":["GPT-6"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":14058484,"totalTriangles":511844,"starterScene":{"id":"31563","slug":"indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","title":"Furnished indoor bouldering gym (Indoor Climbing and Bouldering Gym)","summary":"Connected climbing wall run above continuous thick landing mats, top-out descent, shoe fitting reception, separate training and stocked maintenance corners.","description":"Connected climbing wall run above continuous thick landing mats, top-out descent, shoe fitting reception, separate training and stocked maintenance corners.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/31563/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/31563/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31563/v1/poster.webp","blurhash":"U2CP^kIW00-n~XkD9Fem00-:%K9F00-;_24n","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6861256,"triangles":256408,"vertices":345456,"meshes":173,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-9.5,-0.000019532740134331483,-7.500671407208472],"max":[9.5,5.1518350079242525,7.500671407208472]},"sizeMeters":[19,5.152,15.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":2,"publishedAt":"2026-09-08T10:48:04.586Z","updatedAt":"2026-09-08T16:10:50.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31563/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FurnishedIndoorBoulderingGymIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31563/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31563/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31563/v1/model.glb\" alt=\"Furnished indoor bouldering gym (Indoor Climbing and Bouldering Gym)\" 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/31563/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/31563/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"31515","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-6b59a4b9","title":"Roofed Bouldering Gym (Indoor Climbing and Bouldering Gym)","summary":"Enclosed wide-span gym with structural clear roof, framed glazed walls, opaque rear wall and broad front entrance.","description":"Enclosed wide-span gym with structural clear roof, framed glazed walls, opaque rear wall and broad front entrance. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6b59a4b9","cdnUrl":"https://cdn.3dassets.dev/assets/31515/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6b59a4b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/31515/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31515/v1/poster.webp","blurhash":"U1D0Jt0200~W~qtR4oRj00~p?u0000?b~p00","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":66404,"triangles":3132,"vertices":2733,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-9,-0.00020264379699030943,-7.000729983670851],"max":[9,4.989835007924253,7.000427259132664]},"sizeMeters":[18,4.99,14.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:38.571Z","updatedAt":"2026-09-08T10:47:38.704Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31515/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofedBoulderingGymIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31515/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31515/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31515/v1/model.glb\" alt=\"Roofed Bouldering Gym (Indoor Climbing and Bouldering Gym)\" 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/31515/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/31515/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31513","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-c91ed1da","title":"Slab Wall Panel (Indoor Climbing and Bouldering Gym)","summary":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds.","description":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c91ed1da","cdnUrl":"https://cdn.3dassets.dev/assets/31513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c91ed1da","thumbnailUrl":"https://cdn.3dassets.dev/assets/31513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31513/v1/poster.webp","blurhash":"U7FYojyD00IA-pxuE19G00RQ~ptQ%2%MV@9Z","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":357812,"triangles":12292,"vertices":17441,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.001145510114785,0,-0.7600008010755528],"max":[1.0023455900326927,3.317488670349121,0.07329926503605685]},"sizeMeters":[2.003,3.317,0.833],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:37.522Z","updatedAt":"2026-09-08T10:47:37.626Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31513/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SlabWallPanelIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31513/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31513/v1/model.glb\" alt=\"Slab Wall Panel (Indoor Climbing and Bouldering Gym)\" 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/31513/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/31513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31514","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-c9afbf77","title":"Vertical Wall Panel (Indoor Climbing and Bouldering Gym)","summary":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds.","description":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c9afbf77","cdnUrl":"https://cdn.3dassets.dev/assets/31514/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c9afbf77","thumbnailUrl":"https://cdn.3dassets.dev/assets/31514/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31514/v1/poster.webp","blurhash":"UAF$Rz~o0001-.%LWBD*00N1_3oexat8WEM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9668,"triangles":288,"vertices":354,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999603102187087,0,-0.7598649552762444],"max":[1.001266098932529,3.3070104122161865,0.03986497136949857]},"sizeMeters":[2.001,3.307,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:38.553Z","updatedAt":"2026-09-08T10:47:38.688Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31514/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VerticalWallPanelIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31514/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31514/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31514/v1/model.glb\" alt=\"Vertical Wall Panel (Indoor Climbing and Bouldering Gym)\" 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/31514/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/31514/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31516","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-195ae809","title":"Overhang Wall Panel (Indoor Climbing and Bouldering Gym)","summary":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds.","description":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-195ae809","cdnUrl":"https://cdn.3dassets.dev/assets/31516/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-195ae809","thumbnailUrl":"https://cdn.3dassets.dev/assets/31516/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31516/v1/poster.webp","blurhash":"U9ECqEt800RP~W?aM{4.00%2~pIoafWBRjWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":357980,"triangles":12292,"vertices":17449,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.0000214343196752,0,-0.7600777693185822],"max":[1.0011697281375411,3.327735185623169,0.6802892143101025]},"sizeMeters":[2.001,3.328,1.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:40.322Z","updatedAt":"2026-09-08T10:47:40.605Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31516/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OverhangWallPanelIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31516/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31516/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31516/v1/model.glb\" alt=\"Overhang Wall Panel (Indoor Climbing and Bouldering Gym)\" 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/31516/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/31516/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31517","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-d7303a5c","title":"Roof Transition Panel (Indoor Climbing and Bouldering Gym)","summary":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds.","description":"Birch climbing panel with different supported face profile, rear steel structure and seated original bolted holds. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d7303a5c","cdnUrl":"https://cdn.3dassets.dev/assets/31517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d7303a5c","thumbnailUrl":"https://cdn.3dassets.dev/assets/31517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31517/v1/poster.webp","blurhash":"UADvWSD*00%L?a%LRk9G00-p~pE1%LjsIVWV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":363204,"triangles":12432,"vertices":17721,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999713194065392,0,-0.7600230415514182],"max":[1.0012872803062778,3.3741936683654785,1.099955499124532]},"sizeMeters":[2.001,3.374,1.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:40.085Z","updatedAt":"2026-09-08T10:47:40.183Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31517/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofTransitionPanelIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31517/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31517/v1/model.glb\" alt=\"Roof Transition Panel (Indoor Climbing and Bouldering Gym)\" 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/31517/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/31517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31518","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-1c139792","title":"Arete Wall Corner (Indoor Climbing and Bouldering Gym)","summary":"Bounded convex arete faces over a closed backing with rear braces.","description":"Bounded convex arete faces over a closed backing with rear braces. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-1c139792","cdnUrl":"https://cdn.3dassets.dev/assets/31518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-1c139792","thumbnailUrl":"https://cdn.3dassets.dev/assets/31518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31518/v1/poster.webp","blurhash":"U6D+}BtR00jX_2%M9Z9G00ae~pR,$*s:IoI:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":338168,"triangles":11540,"vertices":16497,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.0001616995824645,-0.0008932804921641946,-0.6600385857681912],"max":[1.001635432638119,3.300215244293213,0.22500659895886993]},"sizeMeters":[2.002,3.301,0.885],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:40.467Z","updatedAt":"2026-09-08T10:47:41.031Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AreteWallCornerIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31518/v1/model.glb\" alt=\"Arete Wall Corner (Indoor Climbing and Bouldering Gym)\" 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/31518/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/31518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31519","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-87098a9f","title":"Dihedral Wall Corner (Indoor Climbing and Bouldering Gym)","summary":"Bounded recessed dihedral return with opposing angled faces and supported back.","description":"Bounded recessed dihedral return with opposing angled faces and supported back. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-87098a9f","cdnUrl":"https://cdn.3dassets.dev/assets/31519/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-87098a9f","thumbnailUrl":"https://cdn.3dassets.dev/assets/31519/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31519/v1/poster.webp","blurhash":"UBGup~~W00E2?Z%2IVIV00IU-pog%LoyM|M|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":326468,"triangles":10508,"vertices":16151,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.0327920883313033,-0.0008932804921641946,-0.6600792640573313],"max":[1.0327920883313033,3.300215244293213,0.44423239382706425]},"sizeMeters":[2.066,3.301,1.104],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:40.879Z","updatedAt":"2026-09-08T10:47:41.062Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31519/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DihedralWallCornerIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31519/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31519/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31519/v1/model.glb\" alt=\"Dihedral Wall Corner (Indoor Climbing and Bouldering Gym)\" 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/31519/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/31519/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31520","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-9facee1e","title":"Wall Support Buttress (Indoor Climbing and Bouldering Gym)","summary":"Triangular independent climbing-wall buttress with bolted wide base and closed structural members.","description":"Triangular independent climbing-wall buttress with bolted wide base and closed structural members. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9facee1e","cdnUrl":"https://cdn.3dassets.dev/assets/31520/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9facee1e","thumbnailUrl":"https://cdn.3dassets.dev/assets/31520/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31520/v1/poster.webp","blurhash":"U25Og6a{00s;00Rj_N%M-=n,ITX5r@WBXRs:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26052,"triangles":708,"vertices":1278,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.32493055838660995,8.940697071579962e-10,-0.7000448363462629],"max":[0.32493055838660995,3.379999876022339,0.7000448363462629]},"sizeMeters":[0.65,3.38,1.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:42.391Z","updatedAt":"2026-09-08T10:47:42.488Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31520/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallSupportButtressIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31520/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31520/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31520/v1/model.glb\" alt=\"Wall Support Buttress (Indoor Climbing and Bouldering Gym)\" 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/31520/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/31520/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31521","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-c048857d","title":"Top Out Deck (Indoor Climbing and Bouldering Gym)","summary":"Elevated top-out platform with complete legs, thick deck and rear guardrail.","description":"Elevated top-out platform with complete legs, thick deck and rear guardrail. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c048857d","cdnUrl":"https://cdn.3dassets.dev/assets/31521/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c048857d","thumbnailUrl":"https://cdn.3dassets.dev/assets/31521/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31521/v1/poster.webp","blurhash":"UDAm-m$m0Kxu~pNF4oxu8yInr]%L0KV[_2%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":34536,"triangles":1500,"vertices":1406,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0099166934424064,-0.00007850888425686708,-1.6100000143051147],"max":[1.0099166934424064,4.447000026702881,1.6100000143051147]},"sizeMeters":[2.02,4.447,3.22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:43.672Z","updatedAt":"2026-09-08T10:47:43.828Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31521/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TopOutDeckIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31521/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31521/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31521/v1/model.glb\" alt=\"Top Out Deck (Indoor Climbing and Bouldering Gym)\" 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/31521/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/31521/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31523","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-3e3b3a2e","title":"Rear Descent Stair (Indoor Climbing and Bouldering Gym)","summary":"Twelve fully supported closed steps with two continuous handrails and retained posts.","description":"Twelve fully supported closed steps with two continuous handrails and retained posts. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-3e3b3a2e","cdnUrl":"https://cdn.3dassets.dev/assets/31523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-3e3b3a2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/31523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31523/v1/poster.webp","blurhash":"UAC%1{~p000000t7_2IV009G-;_2%MofM{R*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46364,"triangles":2184,"vertices":1940,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.446547526371076,-3.814697180359872e-8,-0.5525403715781297],"max":[1.446547526371076,4.435163974761963,0.5525403715781297]},"sizeMeters":[2.893,4.435,1.105],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:42.671Z","updatedAt":"2026-09-08T10:47:42.773Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31523/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RearDescentStairIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31523/v1/model.glb\" alt=\"Rear Descent Stair (Indoor Climbing and Bouldering Gym)\" 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/31523/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/31523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31522","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-5840e450","title":"Triangular Climbing Volume (Indoor Climbing and Bouldering Gym)","summary":"Hollow-backed triangular frame volume with thick faceted perimeter and mounting flanges.","description":"Hollow-backed triangular frame volume with thick faceted perimeter and mounting flanges. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-5840e450","cdnUrl":"https://cdn.3dassets.dev/assets/31522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-5840e450","thumbnailUrl":"https://cdn.3dassets.dev/assets/31522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31522/v1/poster.webp","blurhash":"U8FXbnEg00={00-Vt6E2009t}@%1^k%2-oR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22136,"triangles":792,"vertices":885,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.46476778388023376,0.000002535944160775294,-0.014996216863714495],"max":[0.46476778388023376,0.7753294380853802,0.3429992510241796]},"sizeMeters":[0.93,0.775,0.358],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:43.675Z","updatedAt":"2026-09-08T10:47:43.821Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31522/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TriangularClimbingVolumeIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31522/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31522/v1/model.glb\" alt=\"Triangular Climbing Volume (Indoor Climbing and Bouldering Gym)\" 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/31522/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/31522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31524","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-4f588bbf","title":"Scooped Climbing Volume (Indoor Climbing and Bouldering Gym)","summary":"Concave thick-edged scoop volume with closed rear mounting panel and side fixtures.","description":"Concave thick-edged scoop volume with closed rear mounting panel and side fixtures. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-4f588bbf","cdnUrl":"https://cdn.3dassets.dev/assets/31524/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-4f588bbf","thumbnailUrl":"https://cdn.3dassets.dev/assets/31524/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31524/v1/poster.webp","blurhash":"U87yhKWB00M{%~tlMdVY4Toz*Ja0Q-aKo0RP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36860,"triangles":1836,"vertices":1416,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3799999952316284,0,-0.02250354651400474],"max":[0.3799999952316284,0.7599999904632568,0.2500035456199351]},"sizeMeters":[0.76,0.76,0.273],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:44.246Z","updatedAt":"2026-09-08T10:47:44.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31524/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScoopedClimbingVolumeIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31524/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31524/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31524/v1/model.glb\" alt=\"Scooped Climbing Volume (Indoor Climbing and Bouldering Gym)\" 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/31524/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/31524/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31525","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-6dfbd94f","title":"Deep Jug Hold (Indoor Climbing and Bouldering Gym)","summary":"Original deep jug hold with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original deep jug hold with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6dfbd94f","cdnUrl":"https://cdn.3dassets.dev/assets/31525/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6dfbd94f","thumbnailUrl":"https://cdn.3dassets.dev/assets/31525/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31525/v1/poster.webp","blurhash":"UBHdKs?G00IU~V=yIoEL01agsnS1azt8NGIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22880,"triangles":748,"vertices":954,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1592244803905487,-0.000005037757581788371,-0.013997542843361091],"max":[0.1592244803905487,0.25900504109544187,0.15399925195872846]},"sizeMeters":[0.318,0.259,0.168],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:44.505Z","updatedAt":"2026-09-08T10:47:44.633Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31525/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DeepJugHoldIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31525/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31525/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31525/v1/model.glb\" alt=\"Deep Jug Hold (Indoor Climbing and Bouldering Gym)\" 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/31525/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/31525/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31527","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-e220df4c","title":"Rounded Sloper Hold (Indoor Climbing and Bouldering Gym)","summary":"Original rounded sloper hold with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original rounded sloper hold with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-e220df4c","cdnUrl":"https://cdn.3dassets.dev/assets/31527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-e220df4c","thumbnailUrl":"https://cdn.3dassets.dev/assets/31527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31527/v1/poster.webp","blurhash":"UA7CvpVY00k=.mkCH?V@8wo}%~WBHraeyCkW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22032,"triangles":1056,"vertices":783,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1599999964237213,1.7881393032936899e-9,0.000007253268112683564],"max":[0.1599999964237213,0.31999999463558193,0.17199925863444868]},"sizeMeters":[0.32,0.32,0.172],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:45.487Z","updatedAt":"2026-09-08T10:47:45.598Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31527/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoundedSloperHoldIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31527/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31527/v1/model.glb\" alt=\"Rounded Sloper Hold (Indoor Climbing and Bouldering Gym)\" 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/31527/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/31527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31526","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-b0afcdf4","title":"Narrow Crimp Hold (Indoor Climbing and Bouldering Gym)","summary":"Original narrow crimp hold with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original narrow crimp hold with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b0afcdf4","cdnUrl":"https://cdn.3dassets.dev/assets/31526/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b0afcdf4","thumbnailUrl":"https://cdn.3dassets.dev/assets/31526/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31526/v1/poster.webp","blurhash":"UAFqtLS~00xa-;~CI.E100so^kIo9F0y$+xG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19124,"triangles":664,"vertices":748,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1369742751121521,-0.0000014507923474516016,-0.006003321186868256],"max":[0.13644003868103027,0.09656594486573841,0.06950332041945845]},"sizeMeters":[0.273,0.097,0.076],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:45.459Z","updatedAt":"2026-09-08T10:47:45.583Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31526/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NarrowCrimpHoldIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31526/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31526/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31526/v1/model.glb\" alt=\"Narrow Crimp Hold (Indoor Climbing and Bouldering Gym)\" 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/31526/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/31526/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31528","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-c0e585af","title":"Opposing Pinch Hold (Indoor Climbing and Bouldering Gym)","summary":"Original opposing pinch hold with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original opposing pinch hold with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c0e585af","cdnUrl":"https://cdn.3dassets.dev/assets/31528/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c0e585af","thumbnailUrl":"https://cdn.3dassets.dev/assets/31528/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31528/v1/poster.webp","blurhash":"U78F}s.S00DO.mayH?ofD4MdkWtRs:jZRPaK","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21788,"triangles":788,"vertices":868,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.09727597498757673,0,-0.012002865451894523],"max":[0.09727597498757673,0.27399998903274536,0.14399924637704828]},"sizeMeters":[0.195,0.274,0.156],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:46.060Z","updatedAt":"2026-09-08T10:47:46.162Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31528/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OpposingPinchHoldIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31528/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31528/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31528/v1/model.glb\" alt=\"Opposing Pinch Hold (Indoor Climbing and Bouldering Gym)\" 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/31528/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/31528/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31529","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-60471ba2","title":"Recessed Pocket Hold (Indoor Climbing and Bouldering Gym)","summary":"Original recessed pocket hold with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original recessed pocket hold with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-60471ba2","cdnUrl":"https://cdn.3dassets.dev/assets/31529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-60471ba2","thumbnailUrl":"https://cdn.3dassets.dev/assets/31529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31529/v1/poster.webp","blurhash":"UDGQ-0xu00IU~Csp9tj[01WC$%ayNGbHNGIp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90400,"triangles":2124,"vertices":4654,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.12502145767211914,0,-0.00999563837268562],"max":[0.12502145767211914,0.2500429153442383,0.13499925815761152]},"sizeMeters":[0.25,0.25,0.145],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:46.268Z","updatedAt":"2026-09-08T10:47:46.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31529/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RecessedPocketHoldIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31529/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31529/v1/model.glb\" alt=\"Recessed Pocket Hold (Indoor Climbing and Bouldering Gym)\" 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/31529/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/31529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31531","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-9cb73249","title":"Foothold Edge (Indoor Climbing and Bouldering Gym)","summary":"Original foothold edge with seated back, modeled gripping anatomy and recessed mounting fixture.","description":"Original foothold edge with seated back, modeled gripping anatomy and recessed mounting fixture. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9cb73249","cdnUrl":"https://cdn.3dassets.dev/assets/31531/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9cb73249","thumbnailUrl":"https://cdn.3dassets.dev/assets/31531/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31531/v1/poster.webp","blurhash":"U88$p+ix4To}ae*JQnMJ00R5%#VYRPMJt,kX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16176,"triangles":540,"vertices":612,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.07298992574214935,0.0000048701139475290645,-0.004997212291850163],"max":[0.07296181470155716,0.06945967185773597,0.04699925096660591]},"sizeMeters":[0.146,0.069,0.052],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:47.289Z","updatedAt":"2026-09-08T10:47:47.391Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31531/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FootholdEdgeIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31531/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31531/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31531/v1/model.glb\" alt=\"Foothold Edge (Indoor Climbing and Bouldering Gym)\" 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/31531/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/31531/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31530","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-983c6d05","title":"Landing Mat Straight (Indoor Climbing and Bouldering Gym)","summary":"Thick graphite landing foam with fitted cover seams and side carry handle.","description":"Thick graphite landing foam with fitted cover seams and side carry handle. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-983c6d05","cdnUrl":"https://cdn.3dassets.dev/assets/31530/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-983c6d05","thumbnailUrl":"https://cdn.3dassets.dev/assets/31530/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31530/v1/poster.webp","blurhash":"U042VU~q00$-_NWAMcxc004n-;IU00xcx^IT","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20488,"triangles":612,"vertices":860,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.00001892117785187719,-1],"max":[1,0.28905468559677694,1.0370029690017029]},"sizeMeters":[2,0.289,2.037],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:47.211Z","updatedAt":"2026-09-08T10:47:47.319Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31530/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LandingMatStraightIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31530/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31530/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31530/v1/model.glb\" alt=\"Landing Mat Straight (Indoor Climbing and Bouldering Gym)\" 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/31530/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/31530/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31532","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-da20dc67","title":"Landing Mat Corner (Indoor Climbing and Bouldering Gym)","summary":"L-shaped continuous corner landing cushion with thick return and stitched cover.","description":"L-shaped continuous corner landing cushion with thick return and stitched cover. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-da20dc67","cdnUrl":"https://cdn.3dassets.dev/assets/31532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-da20dc67","thumbnailUrl":"https://cdn.3dassets.dev/assets/31532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31532/v1/poster.webp","blurhash":"U03lHu%g4Tx]~qM|IAay00Mx%gIU00-p.8jZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":8652,"triangles":324,"vertices":283,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.00001892117785187719,-1],"max":[1,0.2900167294561719,1]},"sizeMeters":[2,0.29,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:47.787Z","updatedAt":"2026-09-08T10:47:47.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LandingMatCornerIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31532/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31532/v1/model.glb\" alt=\"Landing Mat Corner (Indoor Climbing and Bouldering Gym)\" 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/31532/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/31532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31533","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-5304a879","title":"Mat Seam Cover (Indoor Climbing and Bouldering Gym)","summary":"Flexible seam cover with paired stitching strips, sized to bridge adjoining two-metre cushions.","description":"Flexible seam cover with paired stitching strips, sized to bridge adjoining two-metre cushions. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-5304a879","cdnUrl":"https://cdn.3dassets.dev/assets/31533/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-5304a879","thumbnailUrl":"https://cdn.3dassets.dev/assets/31533/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31533/v1/poster.webp","blurhash":"U35X}kxbMxWqoc9FWAt800M{-;n%WF~qtRIT","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":8508,"triangles":324,"vertices":278,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07495345927304911,0.0000183721687815816,-1],"max":[0.07495345927304911,0.013957060744015194,1]},"sizeMeters":[0.15,0.014,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:47.982Z","updatedAt":"2026-09-08T10:47:48.117Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31533/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MatSeamCoverIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31533/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31533/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31533/v1/model.glb\" alt=\"Mat Seam Cover (Indoor Climbing and Bouldering Gym)\" 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/31533/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/31533/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31534","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-33e5ef2f","title":"Route Start Tag (Indoor Climbing and Bouldering Gym)","summary":"Original blank route-start marker with inset colour field and mounting recess.","description":"Original blank route-start marker with inset colour field and mounting recess. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-33e5ef2f","cdnUrl":"https://cdn.3dassets.dev/assets/31534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-33e5ef2f","thumbnailUrl":"https://cdn.3dassets.dev/assets/31534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31534/v1/poster.webp","blurhash":"U6Eyi5NH00^*.8-;RO8{00jF.mNu~W%20L4.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16672,"triangles":696,"vertices":630,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.04500412268123386,-2.9802322831784522e-9,-0.005996887469475776],"max":[0.04500412268123386,0.15000000596046448,0.021999251991060745]},"sizeMeters":[0.09,0.15,0.028],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:49.932Z","updatedAt":"2026-09-08T10:47:50.067Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RouteStartTagIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31534/v1/model.glb\" alt=\"Route Start Tag (Indoor Climbing and Bouldering Gym)\" 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/31534/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/31534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31535","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-b919be22","title":"Hold Fastener Kit (Indoor Climbing and Bouldering Gym)","summary":"Composed fastener tray with shanks and washers corresponding to mounted hold fixing recesses.","description":"Composed fastener tray with shanks and washers corresponding to mounted hold fixing recesses. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b919be22","cdnUrl":"https://cdn.3dassets.dev/assets/31535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b919be22","thumbnailUrl":"https://cdn.3dassets.dev/assets/31535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31535/v1/poster.webp","blurhash":"UAB|HOxu4nWA~pxuM{Rj00t7tRM|00M{RjM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":93308,"triangles":4380,"vertices":3993,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,-0.000002823365811820827,-0.12000732921093687],"max":[0.18000000715255737,0.05739434237326768,0.12000732921093687]},"sizeMeters":[0.36,0.057,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:49.052Z","updatedAt":"2026-09-08T10:47:49.159Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoldFastenerKitIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31535/v1/model.glb\" alt=\"Hold Fastener Kit (Indoor Climbing and Bouldering Gym)\" 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/31535/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/31535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31536","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-99f40c42","title":"Hold Storage Crate (Indoor Climbing and Bouldering Gym)","summary":"Slatted hold storage crate stocked with original holds and complete thick base.","description":"Slatted hold storage crate stocked with original holds and complete thick base. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-99f40c42","cdnUrl":"https://cdn.3dassets.dev/assets/31536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-99f40c42","thumbnailUrl":"https://cdn.3dassets.dev/assets/31536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31536/v1/poster.webp","blurhash":"UDG8+T-p01o}~V-pR+NG00barsMx57NHMxR6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62444,"triangles":2476,"vertices":2608,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,-0.00001580780798931397,-0.2518299378539498],"max":[0.3499999940395355,0.3450047421312691,0.2518299378539498]},"sizeMeters":[0.7,0.345,0.504],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:49.531Z","updatedAt":"2026-09-08T10:47:49.633Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoldStorageCrateIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31536/v1/model.glb\" alt=\"Hold Storage Crate (Indoor Climbing and Bouldering Gym)\" 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/31536/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/31536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31537","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-7d3d1b09","title":"Hold Wash Basin (Indoor Climbing and Bouldering Gym)","summary":"Deep supported wash basin with enclosing sidewalls, faucet, drain and lower plumbing.","description":"Deep supported wash basin with enclosing sidewalls, faucet, drain and lower plumbing. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-7d3d1b09","cdnUrl":"https://cdn.3dassets.dev/assets/31537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-7d3d1b09","thumbnailUrl":"https://cdn.3dassets.dev/assets/31537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31537/v1/poster.webp","blurhash":"U47nm{u100.Q_4%3IBMy4UMMiga30JS]t*Sv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":59888,"triangles":2700,"vertices":2538,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5600000023841858,-0.000027245579628298877,-0.36002563708075985],"max":[0.5600000023841858,1.2342418432235718,0.36002563708075985]},"sizeMeters":[1.12,1.234,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:49.828Z","updatedAt":"2026-09-08T10:47:49.946Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31537/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoldWashBasinIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31537/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31537/v1/model.glb\" alt=\"Hold Wash Basin (Indoor Climbing and Bouldering Gym)\" 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/31537/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/31537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31538","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-4021afc8","title":"Compact Pressure Washer (Indoor Climbing and Bouldering Gym)","summary":"Wheeled compact pressure washer with supported frame handle, coiled hose and vented housing.","description":"Wheeled compact pressure washer with supported frame handle, coiled hose and vented housing. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-4021afc8","cdnUrl":"https://cdn.3dassets.dev/assets/31538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-4021afc8","thumbnailUrl":"https://cdn.3dassets.dev/assets/31538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31538/v1/poster.webp","blurhash":"U67CT#ml00b^_No|8_VsD4Tdy?w{H?R5t,yD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":180500,"triangles":9612,"vertices":7477,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.23498735657713235,0,-0.16048912799217938],"max":[0.23498735657713235,0.769863486289978,0.2369891265616679]},"sizeMeters":[0.47,0.77,0.397],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:50.864Z","updatedAt":"2026-09-08T10:47:50.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31538/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompactPressureWasherIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31538/v1/model.glb\" alt=\"Compact Pressure Washer (Indoor Climbing and Bouldering Gym)\" 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/31538/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/31538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31539","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-060e7037","title":"Hold Drying Rack (Indoor Climbing and Bouldering Gym)","summary":"Four-tier draining rack stocked with seated clean holds and full corner supports.","description":"Four-tier draining rack stocked with seated clean holds and full corner supports. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-060e7037","cdnUrl":"https://cdn.3dassets.dev/assets/31539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-060e7037","thumbnailUrl":"https://cdn.3dassets.dev/assets/31539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31539/v1/poster.webp","blurhash":"U7A^dz%300IT~qxuD$M{00t6-=WVxvt7RiM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":145864,"triangles":6112,"vertices":6572,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5099631727112933,-1.862645593320167e-10,-0.2599585405281565],"max":[0.5099631727112933,1.4815645217895508,0.2599585405281565]},"sizeMeters":[1.02,1.482,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:51.219Z","updatedAt":"2026-09-08T10:47:51.332Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31539/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoldDryingRackIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31539/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31539/v1/model.glb\" alt=\"Hold Drying Rack (Indoor Climbing and Bouldering Gym)\" 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/31539/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/31539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31540","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-c5336764","title":"Route Setting Ladder (Indoor Climbing and Bouldering Gym)","summary":"Folding A-frame setting ladder with eight supported treads, rear legs and top tool platform.","description":"Folding A-frame setting ladder with eight supported treads, rear legs and top tool platform. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c5336764","cdnUrl":"https://cdn.3dassets.dev/assets/31540/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-c5336764","thumbnailUrl":"https://cdn.3dassets.dev/assets/31540/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31540/v1/poster.webp","blurhash":"U36[U6.80000y?kCHXV@Kiofv#aKyDkCicen","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23612,"triangles":1020,"vertices":954,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0,-0.522060869803641],"max":[0.3499999940395355,2.484580353748723,0.522060869803641]},"sizeMeters":[0.7,2.485,1.044],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:51.576Z","updatedAt":"2026-09-08T10:47:51.689Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31540/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RouteSettingLadderIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31540/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31540/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31540/v1/model.glb\" alt=\"Route Setting Ladder (Indoor Climbing and Bouldering Gym)\" 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/31540/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/31540/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31541","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-36a5538e","title":"Cordless Impact Driver (Indoor Climbing and Bouldering Gym)","summary":"Contoured impact driver with battery, trigger, vented motor head and retained bit.","description":"Contoured impact driver with battery, trigger, vented motor head and retained bit. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-36a5538e","cdnUrl":"https://cdn.3dassets.dev/assets/31541/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-36a5538e","thumbnailUrl":"https://cdn.3dassets.dev/assets/31541/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31541/v1/poster.webp","blurhash":"UD5~qPVYD4k=*JVZMdkqWBRPoztRRPRjofx]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":40704,"triangles":1704,"vertices":1706,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06999878200249059,1.490116086078075e-10,-0.10049438141171546],"max":[0.06999878200249059,0.2849999964237213,0.2199999988079071]},"sizeMeters":[0.14,0.285,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:51.748Z","updatedAt":"2026-09-08T10:47:51.839Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31541/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CordlessImpactDriverIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31541/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31541/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31541/v1/model.glb\" alt=\"Cordless Impact Driver (Indoor Climbing and Bouldering Gym)\" 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/31541/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/31541/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31542","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-b2b7fc05","title":"Setting Torque Wrench (Indoor Climbing and Bouldering Gym)","summary":"Torque-wrench game prop with contrasting molded grip, shaft and thick annular drive head.","description":"Torque-wrench game prop with contrasting molded grip, shaft and thick annular drive head. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b2b7fc05","cdnUrl":"https://cdn.3dassets.dev/assets/31542/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-b2b7fc05","thumbnailUrl":"https://cdn.3dassets.dev/assets/31542/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31542/v1/poster.webp","blurhash":"U25X[V~q4UM{M{D%IUxu004n_Nx[%M_N?bMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18068,"triangles":684,"vertices":730,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.03499404864526302,0.000002501801426683936,-0.22120000422000885],"max":[0.03499404864526302,0.04199749763232919,0.20499999821186066]},"sizeMeters":[0.07,0.042,0.426],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:52.557Z","updatedAt":"2026-09-08T10:47:52.656Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31542/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SettingTorqueWrenchIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31542/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31542/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31542/v1/model.glb\" alt=\"Setting Torque Wrench (Indoor Climbing and Bouldering Gym)\" 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/31542/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/31542/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31543","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-95c4b142","title":"Long Reach Hold Brush (Indoor Climbing and Bouldering Gym)","summary":"Telescopic alloy brush pole with locking collar, long rubber grip and articulated fork-mounted wide bristle head.","description":"Telescopic alloy brush pole with locking collar, long rubber grip and articulated fork-mounted wide bristle head. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-95c4b142","cdnUrl":"https://cdn.3dassets.dev/assets/31543/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-95c4b142","thumbnailUrl":"https://cdn.3dassets.dev/assets/31543/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31543/v1/poster.webp","blurhash":"U45E]N?vS#%fMxIAM{ja00DixaM{.8_M-;R*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":168708,"triangles":4452,"vertices":8619,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.07000000029802322,0.000010443331332272987,-1.101199984550476],"max":[0.07000000029802322,0.07500131442947572,0.09049732909769297]},"sizeMeters":[0.14,0.075,1.192],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:53.026Z","updatedAt":"2026-09-08T10:47:53.127Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31543/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LongReachHoldBrushIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31543/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31543/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31543/v1/model.glb\" alt=\"Long Reach Hold Brush (Indoor Climbing and Bouldering Gym)\" 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/31543/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/31543/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31544","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-cff2a5aa","title":"Handheld Hold Brush (Indoor Climbing and Bouldering Gym)","summary":"Compact contoured palm brush with narrowed neck, flared rounded bristle bed and attached wrist loop.","description":"Compact contoured palm brush with narrowed neck, flared rounded bristle bed and attached wrist loop. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-cff2a5aa","cdnUrl":"https://cdn.3dassets.dev/assets/31544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-cff2a5aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/31544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31544/v1/poster.webp","blurhash":"UDDSzOM{00-p%M9GIU%M00of^+a#IU~p%fD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":160248,"triangles":4108,"vertices":8276,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06800605761294333,0.000005052560059795597,-0.14800000190734863],"max":[0.06800605761294333,0.06399753036683328,0.16796660423278809]},"sizeMeters":[0.136,0.064,0.316],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:53.389Z","updatedAt":"2026-09-08T10:47:53.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HandheldHoldBrushIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31544/v1/model.glb\" alt=\"Handheld Hold Brush (Indoor Climbing and Bouldering Gym)\" 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/31544/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/31544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31545","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-1325ce11","title":"Drawstring Chalk Bag (Indoor Climbing and Bouldering Gym)","summary":"Hollow gathered chalk bag with drawstring rim and paired belt loops.","description":"Hollow gathered chalk bag with drawstring rim and paired belt loops. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-1325ce11","cdnUrl":"https://cdn.3dassets.dev/assets/31545/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-1325ce11","thumbnailUrl":"https://cdn.3dassets.dev/assets/31545/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31545/v1/poster.webp","blurhash":"U8Av^4?H004:9HRk%1xZ00IV~V-p?ZxtIpM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36524,"triangles":1800,"vertices":1411,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.08560000360012054,0,-0.08500000089406967],"max":[0.08560000360012054,0.19893469330953767,0.08500000089406967]},"sizeMeters":[0.171,0.199,0.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:53.514Z","updatedAt":"2026-09-08T10:47:53.638Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31545/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrawstringChalkBagIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31545/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31545/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31545/v1/model.glb\" alt=\"Drawstring Chalk Bag (Indoor Climbing and Bouldering Gym)\" 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/31545/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/31545/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31546","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-d99f6d41","title":"Freestanding Chalk Bucket (Indoor Climbing and Bouldering Gym)","summary":"Boxy gusseted chalk bucket with thick soft walls, broad rectangular base, rolled rear closure with twin buckles and sewn front pocket.","description":"Boxy gusseted chalk bucket with thick soft walls, broad rectangular base, rolled rear closure with twin buckles and sewn front pocket. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d99f6d41","cdnUrl":"https://cdn.3dassets.dev/assets/31546/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d99f6d41","thumbnailUrl":"https://cdn.3dassets.dev/assets/31546/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31546/v1/poster.webp","blurhash":"U9DJFiO?00VE~VxZIpI;00#l%gT15RR-r=wI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":109332,"triangles":5856,"vertices":4379,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1850000023841858,-0.0000071193633476573925,-0.1445000022649765],"max":[0.1850000023841858,0.3320071065408984,0.20200000703334808]},"sizeMeters":[0.37,0.332,0.347],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:54.398Z","updatedAt":"2026-09-08T10:47:54.512Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31546/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FreestandingChalkBucketIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31546/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31546/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31546/v1/model.glb\" alt=\"Freestanding Chalk Bucket (Indoor Climbing and Bouldering Gym)\" 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/31546/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/31546/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31547","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-0d0361ba","title":"Climbing Shoe Pair (Indoor Climbing and Bouldering Gym)","summary":"Pair of curved rubber-toe shoes with hollow heel cups, padded openings, straps, buckles and pull loops.","description":"Pair of curved rubber-toe shoes with hollow heel cups, padded openings, straps, buckles and pull loops. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-0d0361ba","cdnUrl":"https://cdn.3dassets.dev/assets/31547/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-0d0361ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/31547/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31547/v1/poster.webp","blurhash":"U55FwPs:8wVs%#o}R5R500b].mV@D4R5yWyX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":280508,"triangles":9168,"vertices":13894,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.13800384817954134,0.000010581920669522349,-0.14100000262260437],"max":[0.13800384817954134,0.1279546746511002,0.17100000381469727]},"sizeMeters":[0.276,0.128,0.312],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:54.880Z","updatedAt":"2026-09-08T10:47:54.981Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31547/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClimbingShoePairIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31547/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31547/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31547/v1/model.glb\" alt=\"Climbing Shoe Pair (Indoor Climbing and Bouldering Gym)\" 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/31547/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/31547/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31549","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-d673d5bd","title":"Ventilated Shoe Cubby (Indoor Climbing and Bouldering Gym)","summary":"Open ventilated shoe cubby with individual shelves and six stocked pairs.","description":"Open ventilated shoe cubby with individual shelves and six stocked pairs. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d673d5bd","cdnUrl":"https://cdn.3dassets.dev/assets/31549/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-d673d5bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/31549/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31549/v1/poster.webp","blurhash":"U9Eo-[-;00ad~p-:D%D*00oex[Io%MxtRjIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1688256,"triangles":55980,"vertices":84211,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5512438620229966,-8.940697071579962e-10,-0.21001900237918475],"max":[0.5512438620229966,1.3461999893188477,0.21001900237918475]},"sizeMeters":[1.102,1.346,0.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:56.610Z","updatedAt":"2026-09-08T10:47:56.725Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31549/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VentilatedShoeCubbyIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31549/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31549/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31549/v1/model.glb\" alt=\"Ventilated Shoe Cubby (Indoor Climbing and Bouldering Gym)\" 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/31549/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/31549/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31548","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-0ed16d6e","title":"Finger Training Hangboard (Indoor Climbing and Bouldering Gym)","summary":"Pocketed birch hangboard with three real bores, lower incut edge and rear mounting brackets.","description":"Pocketed birch hangboard with three real bores, lower incut edge and rear mounting brackets. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-0ed16d6e","cdnUrl":"https://cdn.3dassets.dev/assets/31548/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-0ed16d6e","thumbnailUrl":"https://cdn.3dassets.dev/assets/31548/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31548/v1/poster.webp","blurhash":"UBF=?f%M00xuXT~pt59Z00E2_2Ris+4:IVxs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":127940,"triangles":2840,"vertices":6790,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000009194844576787542,-0.042517624578920776],"max":[0.5,0.40196750424333616,0.15496934694102288]},"sizeMeters":[1,0.402,0.197],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:56.577Z","updatedAt":"2026-09-08T10:47:56.700Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31548/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FingerTrainingHangboardIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31548/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31548/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31548/v1/model.glb\" alt=\"Finger Training Hangboard (Indoor Climbing and Bouldering Gym)\" 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/31548/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/31548/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31550","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-395bf823","title":"Campus Training Board (Indoor Climbing and Bouldering Gym)","summary":"Tall campus board with eight spaced load-bearing rounded rungs and rear buttress frame.","description":"Tall campus board with eight spaced load-bearing rounded rungs and rear buttress frame. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-395bf823","cdnUrl":"https://cdn.3dassets.dev/assets/31550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-395bf823","thumbnailUrl":"https://cdn.3dassets.dev/assets/31550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31550/v1/poster.webp","blurhash":"UAC%1|~p0000s:xukCD%01IV^*-:t7ofayRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24800,"triangles":1104,"vertices":995,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6249634512038265,0,-0.5750559990641857],"max":[0.6249634512038265,2.454740524291992,0.1054689710152932]},"sizeMeters":[1.25,2.455,0.681],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:56.091Z","updatedAt":"2026-09-08T10:47:56.188Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31550/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampusTrainingBoardIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31550/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31550/v1/model.glb\" alt=\"Campus Training Board (Indoor Climbing and Bouldering Gym)\" 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/31550/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/31550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31551","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-287d5093","title":"Supported Training Bar Frame (Indoor Climbing and Bouldering Gym)","summary":"Freestanding training frame with full outriggers, braced posts and cross bar.","description":"Freestanding training frame with full outriggers, braced posts and cross bar. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-287d5093","cdnUrl":"https://cdn.3dassets.dev/assets/31551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-287d5093","thumbnailUrl":"https://cdn.3dassets.dev/assets/31551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31551/v1/poster.webp","blurhash":"U27d^2-=00Mx00xt%g8{-=IVD%xu_4_4W,00","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14712,"triangles":552,"vertices":626,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.1000566191604946,8.940697071579962e-10,-0.549924165165967],"max":[1.1000566191604946,2.7300000190734863,0.549924165165967]},"sizeMeters":[2.2,2.73,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:57.035Z","updatedAt":"2026-09-08T10:47:57.160Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31551/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SupportedTrainingBarFrameIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31551/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31551/v1/model.glb\" alt=\"Supported Training Bar Frame (Indoor Climbing and Bouldering Gym)\" 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/31551/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/31551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31552","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-6631e1ed","title":"Portable Finger Strength Block (Indoor Climbing and Bouldering Gym)","summary":"Portable pocketed finger block with complete thick bore and attached fabric sling.","description":"Portable pocketed finger block with complete thick bore and attached fabric sling. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6631e1ed","cdnUrl":"https://cdn.3dassets.dev/assets/31552/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-6631e1ed","thumbnailUrl":"https://cdn.3dassets.dev/assets/31552/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31552/v1/poster.webp","blurhash":"UBEVyj~p00IB00of_2M{004o?a?H_2axIVs:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58692,"triangles":1600,"vertices":2922,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.10599999874830246,3.0560682214020307e-7,-0.0383625793282619],"max":[0.10599999874830246,0.22661550914910267,0.07099928349662332]},"sizeMeters":[0.212,0.227,0.109],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:57.961Z","updatedAt":"2026-09-08T10:47:58.075Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31552/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PortableFingerStrengthBlockIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31552/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31552/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31552/v1/model.glb\" alt=\"Portable Finger Strength Block (Indoor Climbing and Bouldering Gym)\" 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/31552/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/31552/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31554","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-fd0ff156","title":"Warm Up Rail (Indoor Climbing and Bouldering Gym)","summary":"Supported warm-up rail with stable footplates and rounded birch bar.","description":"Supported warm-up rail with stable footplates and rounded birch bar. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-fd0ff156","cdnUrl":"https://cdn.3dassets.dev/assets/31554/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-fd0ff156","thumbnailUrl":"https://cdn.3dassets.dev/assets/31554/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31554/v1/poster.webp","blurhash":"U69%-bxu00x]^%.8019FMyMwRiIp9H_3~q4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14400,"triangles":528,"vertices":566,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8600000143051147,0.000029112825920329932,-0.2999646035185753],"max":[0.8600000143051147,1.085035260202727,0.2999646035185753]},"sizeMeters":[1.72,1.085,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:58.463Z","updatedAt":"2026-09-08T10:47:58.583Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31554/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarmUpRailIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31554/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31554/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31554/v1/model.glb\" alt=\"Warm Up Rail (Indoor Climbing and Bouldering Gym)\" 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/31554/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/31554/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31553","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-ec2bf19f","title":"Stretching Mat Rack (Indoor Climbing and Bouldering Gym)","summary":"Full base rack stocked with five upright rolled stretching mats behind retaining bar.","description":"Full base rack stocked with five upright rolled stretching mats behind retaining bar. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-ec2bf19f","cdnUrl":"https://cdn.3dassets.dev/assets/31553/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-ec2bf19f","thumbnailUrl":"https://cdn.3dassets.dev/assets/31553/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31553/v1/poster.webp","blurhash":"U6BDA]%g00DO?HxaIoI:01V@~CXSx]bHRjV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":63424,"triangles":3480,"vertices":2410,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4099999964237213,-0.000012588682883897875,-0.285011747140096],"max":[0.4099999964237213,1.100000023841858,0.285011747140096]},"sizeMeters":[0.82,1.1,0.57],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:58.281Z","updatedAt":"2026-09-08T10:47:58.449Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31553/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StretchingMatRackIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31553/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31553/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31553/v1/model.glb\" alt=\"Stretching Mat Rack (Indoor Climbing and Bouldering Gym)\" 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/31553/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/31553/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31555","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-728b96d9","title":"Membership Reception Counter (Indoor Climbing and Bouldering Gym)","summary":"Membership desk with fitted storage, supported monitor, keyboard and transaction surface.","description":"Membership desk with fitted storage, supported monitor, keyboard and transaction surface. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-728b96d9","cdnUrl":"https://cdn.3dassets.dev/assets/31555/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-728b96d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/31555/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31555/v1/poster.webp","blurhash":"UHE.|a~p00E1xt%2xuM{00D%-;s;IVRjIVjY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90420,"triangles":3468,"vertices":3976,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.9750000238418579,-0.0000356979828182169,-0.3799485856024868],"max":[0.9750000238418579,1.4000356748115126,0.405047503019793]},"sizeMeters":[1.95,1.4,0.785],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:47:58.790Z","updatedAt":"2026-09-08T10:47:58.890Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31555/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MembershipReceptionCounterIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31555/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31555/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31555/v1/model.glb\" alt=\"Membership Reception Counter (Indoor Climbing and Bouldering Gym)\" 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/31555/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/31555/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31556","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-e0b2dec9","title":"Shoe Hire Fitting Counter (Indoor Climbing and Bouldering Gym)","summary":"Fitting counter with open ventilated shoe shelves, four stocked pairs and projecting seated fitting ledge.","description":"Fitting counter with open ventilated shoe shelves, four stocked pairs and projecting seated fitting ledge. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-e0b2dec9","cdnUrl":"https://cdn.3dassets.dev/assets/31556/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-e0b2dec9","thumbnailUrl":"https://cdn.3dassets.dev/assets/31556/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31556/v1/poster.webp","blurhash":"UKG8_zRl4ot7~p?HIUM{00xuxuM{9FIVf7Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1129356,"triangles":37428,"vertices":56233,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,-0.00005920465280573328,-0.34995475662397824],"max":[0.949999988079071,0.9600591951160627,0.6449547435109564]},"sizeMeters":[1.9,0.96,0.995],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:00.856Z","updatedAt":"2026-09-08T10:48:00.960Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31556/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoeHireFittingCounterIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31556/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31556/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31556/v1/model.glb\" alt=\"Shoe Hire Fitting Counter (Indoor Climbing and Bouldering Gym)\" 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/31556/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/31556/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31557","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-9fcb454d","title":"Changing Bench (Indoor Climbing and Bouldering Gym)","summary":"Slatted changing bench with braced legs and separate rounded timber seat boards.","description":"Slatted changing bench with braced legs and separate rounded timber seat boards. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9fcb454d","cdnUrl":"https://cdn.3dassets.dev/assets/31557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-9fcb454d","thumbnailUrl":"https://cdn.3dassets.dev/assets/31557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31557/v1/poster.webp","blurhash":"UFBpkGt7D%of~p-;M{M{00?H-pIU00IV-;t6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25252,"triangles":1404,"vertices":1222,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8600000143051147,0.000006942846230354252,-0.23497970909981666],"max":[0.8600000143051147,0.47499716827240535,0.23497970909981666]},"sizeMeters":[1.72,0.475,0.47],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:00.018Z","updatedAt":"2026-09-08T10:48:00.123Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31557/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChangingBenchIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31557/v1/model.glb\" alt=\"Changing Bench (Indoor Climbing and Bouldering Gym)\" 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/31557/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/31557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31558","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-ef2f2520","title":"Belongings Locker (Indoor Climbing and Bouldering Gym)","summary":"Tall belongings locker with hinged door, handle, divided front seams and rear ventilation.","description":"Tall belongings locker with hinged door, handle, divided front seams and rear ventilation. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-ef2f2520","cdnUrl":"https://cdn.3dassets.dev/assets/31558/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-ef2f2520","thumbnailUrl":"https://cdn.3dassets.dev/assets/31558/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31558/v1/poster.webp","blurhash":"UAAwF.~q0000t8kCadf500D*?b_3ogazWBoL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":101624,"triangles":4116,"vertices":4555,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3609767266417579,6.705522803684971e-10,-0.2605243621183688],"max":[0.3609767266417579,1.875,0.3300119999441552]},"sizeMeters":[0.722,1.875,0.591],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:00.175Z","updatedAt":"2026-09-08T10:48:00.267Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31558/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BelongingsLockerIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31558/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31558/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31558/v1/model.glb\" alt=\"Belongings Locker (Indoor Climbing and Bouldering Gym)\" 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/31558/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/31558/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31559","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-fbff159f","title":"Route Setting Plan Board (Indoor Climbing and Bouldering Gym)","summary":"Original route planning board with simple coloured route tokens on a supported frame, without grades.","description":"Original route planning board with simple coloured route tokens on a supported frame, without grades. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-fbff159f","cdnUrl":"https://cdn.3dassets.dev/assets/31559/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-fbff159f","thumbnailUrl":"https://cdn.3dassets.dev/assets/31559/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31559/v1/poster.webp","blurhash":"UICP;Sxu00M{~pxu9FIU4oxt-;IU4.WB?Hof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":43996,"triangles":2592,"vertices":2230,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.6100000143051147,-0.000010147604644076408,-0.2599765068444144],"max":[0.6100000143051147,1.4499809230813159,0.2599765068444144]},"sizeMeters":[1.22,1.45,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:00.595Z","updatedAt":"2026-09-08T10:48:00.700Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31559/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RouteSettingPlanBoardIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31559/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31559/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31559/v1/model.glb\" alt=\"Route Setting Plan Board (Indoor Climbing and Bouldering Gym)\" 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/31559/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/31559/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31560","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-7718104a","title":"Chalk Extraction Vacuum (Indoor Climbing and Bouldering Gym)","summary":"Wheeled chalk vacuum with latched canister, motor lid, flexible hose and seated wide suction foot.","description":"Wheeled chalk vacuum with latched canister, motor lid, flexible hose and seated wide suction foot. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-7718104a","cdnUrl":"https://cdn.3dassets.dev/assets/31560/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-7718104a","thumbnailUrl":"https://cdn.3dassets.dev/assets/31560/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31560/v1/poster.webp","blurhash":"U96Id1jF4Tbv*JRPHro}RjoLt7W;U^e.pcbc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":78720,"triangles":3132,"vertices":3549,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.25,-0.000004611990564395985,-0.25],"max":[0.3826384098531471,0.7519999742507935,0.6100000143051147]},"sizeMeters":[0.633,0.752,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:01.816Z","updatedAt":"2026-09-08T10:48:02.080Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31560/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChalkExtractionVacuumIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31560/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31560/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31560/v1/model.glb\" alt=\"Chalk Extraction Vacuum (Indoor Climbing and Bouldering Gym)\" 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/31560/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/31560/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31561","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-28bda588","title":"Chalk Waste Hopper (Indoor Climbing and Bouldering Gym)","summary":"Stable lidded chalk waste hopper with tapered body, frame and retained lid handle.","description":"Stable lidded chalk waste hopper with tapered body, frame and retained lid handle. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-28bda588","cdnUrl":"https://cdn.3dassets.dev/assets/31561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-28bda588","thumbnailUrl":"https://cdn.3dassets.dev/assets/31561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31561/v1/poster.webp","blurhash":"U46*m:og00WA?wkDD%V?DjjvkBk9Mxjuxvfi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45792,"triangles":1980,"vertices":1925,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.33500000834465027,-0.000013809844117170303,-0.3100132832738679],"max":[0.33500000834465027,0.8320000171661377,0.3100132832738679]},"sizeMeters":[0.67,0.832,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:02.030Z","updatedAt":"2026-09-08T10:48:02.127Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31561/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChalkWasteHopperIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31561/v1/model.glb\" alt=\"Chalk Waste Hopper (Indoor Climbing and Bouldering Gym)\" 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/31561/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/31561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31562","slug":"indoor-climbing-and-bouldering-gym-indoor-climbing-and-480c59b2","title":"Bouldering Gym Floor Base (Indoor Climbing and Bouldering Gym)","summary":"Thick continuous gym foundation with subtle original tiled joints.","description":"Thick continuous gym foundation with subtle original tiled joints. Original indoor climbing gym scenery. Metres, Y up, Z forward, ground-contact origin. Static scenery without climbing physics, route grading or safety certification.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoor-climbing-and-480c59b2","cdnUrl":"https://cdn.3dassets.dev/assets/31562/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoor-climbing-and-480c59b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/31562/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31562/v1/poster.webp","blurhash":"U5ATvE%f00fj%MtRWBNF00My_NRjDjMxahxb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":77764,"triangles":3780,"vertices":3305,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-9.5,-0.000019532740134331483,-7.500671407208472],"max":[9.5,0.1614999994635582,7.500671407208472]},"sizeMeters":[19,0.162,15.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T10:48:02.595Z","updatedAt":"2026-09-08T10:48:02.720Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31562/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoulderingGymFloorBaseIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31562/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31562/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31562/v1/model.glb\" alt=\"Bouldering Gym Floor Base (Indoor Climbing and Bouldering Gym)\" 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/31562/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/31562/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"31563","slug":"indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","title":"Furnished indoor bouldering gym (Indoor Climbing and Bouldering Gym)","summary":"Connected climbing wall run above continuous thick landing mats, top-out descent, shoe fitting reception, separate training and stocked maintenance corners.","description":"Connected climbing wall run above continuous thick landing mats, top-out descent, shoe fitting reception, separate training and stocked maintenance corners.","status":"published","url":"https://3dassets.dev/assets/indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/31563/v1/model.glb","downloadUrl":"https://3dassets.dev/download/indoor-climbing-and-bouldering-gym-indoo-1ef187b1-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/31563/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/31563/v1/poster.webp","blurhash":"U2CP^kIW00-n~XkD9Fem00-:%K9F00-;_24n","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6861256,"triangles":256408,"vertices":345456,"meshes":173,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-9.5,-0.000019532740134331483,-7.500671407208472],"max":[9.5,5.1518350079242525,7.500671407208472]},"sizeMeters":[19,5.152,15.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":2,"publishedAt":"2026-09-08T10:48:04.586Z","updatedAt":"2026-09-08T16:10:50.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/31563/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FurnishedIndoorBoulderingGymIndoorClimbingAndBoulderingGym(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/31563/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/31563/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/31563/v1/model.glb\" alt=\"Furnished indoor bouldering gym (Indoor Climbing and Bouldering Gym)\" 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/31563/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/31563/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}