{"data":{"id":"38","slug":"martial-arts-dojo-and-fight-stages","title":"Martial arts dojo","summary":"Step into a 15 by 13 metre dojo built from the Martial Arts Dojo and Fight Stages pack: mat tiles, walls with weapon racks round a shrine alcove, a mirror wall, makiwara and a wooden dummy, hanging bags, a pull-up rig and conditioning kit.","url":"https://3dassets.dev/demos/martial-arts-dojo-and-fight-stages","coverUrl":"https://cdn.3dassets.dev/media/martial-arts-dojo-and-fight-stages-demo-2.png","featured":false,"pack":{"slug":"martial-arts-dojo-and-fight-stages","title":"Martial Arts Dojo and Fight Stages","url":"https://3dassets.dev/packs/martial-arts-dojo-and-fight-stages","summary":"Low-poly rings and cages, gym and dojo training equipment, dojo architecture, fight-stage backdrops and broadcast kit.","assetCount":69,"totalBytes":3187640,"starterScene":{"slug":"martial-arts-dojo-and-fight-stages-fight-394bf497-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/18095/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-fight-394bf497-starter-scene","fileSize":620492}},"placementCount":65,"assetCount":24,"spawn":{"position":[0,0.1,5.2],"yaw":180},"publishedAt":"2026-09-07T20:30:47.200Z","updatedAt":"2026-09-07T20:30:47.200Z","description":"One dojo from 24 of the pack's 69 models, on its own 2 m mat tiles with the pack's walls, in the room preset with warm light and lamps under a 3.6 m ceiling.\n\nYou come in through the sliding door past the shoe rack and benches. The back wall is weapon-rack wall segments round the shrine alcove with scrolls, a banner, lanterns and the timer clock; the west wall is four mirror panels. Two makiwara, kettlebells and the weight rack stand by the mirrors, the pull-up rig in front of the shrine, the wooden dummy, two heavy bags, the speed bag, a double-end bag and the dojo bell on the east, and plyo boxes and a medicine ball on the mats.\n\nNothing moves: this pack ships without animation clips. The boxing ring, the cage panels and the fight stage sets in the pack are not placed here.","scene":{"version":1,"spawn":{"position":[0,0.1,5.2],"yaw":180},"bounds":{"min":[-7.7,0,-6.7],"max":[7.7,3.6,6.7]},"ground":{"style":"none"},"environment":{"preset":"room","wallHeight":3.6,"wall":"#d9cfbf","light":"warm","lampHeight":3.3,"shadows":true},"placements":[{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-5,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-5,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-5,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-5,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-5,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-3,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-3,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-3,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-3,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-3,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-1,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-1,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-1,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-1,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[-1,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[1,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[1,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[1,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[1,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[1,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[3,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[3,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[3,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[3,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[3,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[5,0,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[5,0,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[5,0,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[5,0,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","position":[5,0,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","position":[-6,0,-6.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","position":[-3,0,-6.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","position":[3,0,-6.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","position":[6,0,-6.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-shrine-alcove-d179d34a","position":[0,0,-6.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","position":[-7.5,0,-4.5],"rotation":90},{"asset":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","position":[-7.5,0,-1.5],"rotation":90},{"asset":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","position":[-7.5,0,1.5],"rotation":90},{"asset":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","position":[-7.5,0,4.5],"rotation":90},{"asset":"martial-arts-dojo-and-fight-stages-dojo-sliding-door-c50f4bbe","position":[0,0,6.5],"rotation":180},{"asset":"martial-arts-dojo-and-fight-stages-hanging-scroll-753df67b","position":[-4.5,1.2,-6.3],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-hanging-scroll-753df67b","position":[4.5,1.2,-6.3],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-banner-frame-6567ddb4","position":[-3,0,-5.9],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-timer-clock-bf09ed53","position":[2.5,2.2,-6.3],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-lantern-6329cde9","position":[-6.5,0,-5.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-lantern-6329cde9","position":[6.5,0,-5.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-bell-226f1823","position":[6.9,0,-3],"rotation":270},{"asset":"martial-arts-dojo-and-fight-stages-makiwara-414e18c4","position":[-5,0.1,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-makiwara-414e18c4","position":[-5,0.1,-2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-wooden-dummy-041f850b","position":[5.5,0.1,-4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-pull-up-rig-cafea1b6","position":[1,0.1,-4.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348","position":[5.5,0.6,0],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348","position":[5.5,0.6,2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-speed-bag-f774d211","position":[6.8,1.2,3.5],"rotation":270},{"asset":"martial-arts-dojo-and-fight-stages-double-end-bag-ec3ab5bc","position":[4,0.1,4],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-dojo-bench-812ae702","position":[-6.5,0,4],"rotation":90},{"asset":"martial-arts-dojo-and-fight-stages-dojo-bench-812ae702","position":[-4,0,5.9],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-shoe-rack-07f16cc1","position":[3,0,5.9],"rotation":180},{"asset":"martial-arts-dojo-and-fight-stages-gear-shelf-d7b5a755","position":[6.9,0,5],"rotation":270},{"asset":"martial-arts-dojo-and-fight-stages-water-bottle-rack-79d10b56","position":[6.9,1,-5],"rotation":270},{"asset":"martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb","position":[-2,0.1,3],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb","position":[-3.1,0.1,3],"rotation":20},{"asset":"martial-arts-dojo-and-fight-stages-medicine-ball-c1cbe95d","position":[-1,0.1,3.2],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-kettlebells-25351387","position":[-4,0.1,-5.5],"rotation":0},{"asset":"martial-arts-dojo-and-fight-stages-weight-rack-046f2413","position":[-6.9,0,-1],"rotation":90}],"points":[{"position":[0,0.1,-2.5],"title":"Shrine","text":"The shrine alcove replaces one 3 m wall segment in the back wall, between walls with weapon racks, hanging scrolls, a banner frame, two lanterns and the timer clock. The pull-up rig stands in front.","asset":"martial-arts-dojo-and-fight-stages-shrine-alcove-d179d34a"},{"position":[-4,0.1,-3],"title":"Striking posts","text":"Two makiwara and a kettlebell set by the mirror wall, with the weight rack behind them.","asset":"martial-arts-dojo-and-fight-stages-makiwara-414e18c4"},{"position":[4,0.1,1],"title":"Bags","text":"Two heavy bags hung at 0.6 m, the speed bag, a double-end bag and the wooden dummy on the east side, with the dojo bell in the corner.","asset":"martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348"},{"position":[-6,0.1,1],"title":"Mirror wall","text":"Four 3 m mirror wall panels make the west wall. The floor is 2 m dojo mat tiles, thirty of them.","asset":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886"},{"position":[-2.5,0.1,1.5],"title":"Conditioning","text":"Two plyo boxes and a medicine ball on the mats.","asset":"martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb"},{"position":[-3,0.1,4.5],"title":"Benches","text":"Two dojo benches, the shoe rack by the sliding door you came in by, the gear shelf and a water bottle rack.","asset":"martial-arts-dojo-and-fight-stages-dojo-bench-812ae702"}],"poster":{"position":[6.8,3,5.8],"lookAt":[-2,0.9,-4]}},"bounds":{"min":[-7.7,0,-6.7],"max":[7.7,3.6,6.7]},"assets":[{"id":"18031","slug":"martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","title":"Dojo Mat Tile (Martial Arts Dojo and Fight Stages)","summary":"Two-metre tatami mat tile with bound edges.","description":"Tatami mat tile 2.0 m square and 0.06 m thick with dark bound edges; tiles edge to edge on a 2.0 m grid. Dimensions 2.00 x 0.06 x 2.00 m (X x Y x Z). Mat tile: origin centred, tiles on a 2.0 m grid; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","cdnUrl":"https://cdn.3dassets.dev/assets/18031/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-dojo-mat-tile-c007736e","thumbnailUrl":"https://cdn.3dassets.dev/assets/18031/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18031/v1/poster.webp","blurhash":"UADSzLxZ00ah%MofRjWB00R*~qWU9FV@t7oN","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":5120,"triangles":72,"vertices":216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0011999607086182,-0.000006806134252627938,-1],"max":[1,0.06200680512097367,1.0011999607086182]},"sizeMeters":[2.001,0.062,2.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:17.425Z","updatedAt":"2026-09-07T16:39:17.537Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18031/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoMatTileMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18031/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18031/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18031/v1/model.glb\" alt=\"Dojo Mat Tile (Martial Arts Dojo and Fight Stages)\" 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/18031/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/18031/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18060","slug":"martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","title":"Dojo Wall With Weapon Rack (Martial Arts Dojo and Fight Stages)","summary":"Dojo wall bay carrying a two-tier rack of training weapons.","description":"Dojo wall bay 3.0 m wide and 3.2 m tall with a timber dado and a two-tier rack holding staves and wooden swords. Dimensions 3.00 x 3.20 x 0.29 m (X x Y x Z). Modular wall bay: origin centred on the module at floor level, 3.0 m between joins; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","cdnUrl":"https://cdn.3dassets.dev/assets/18060/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-wall-weapon-rack-5af602fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/18060/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18060/v1/poster.webp","blurhash":"UBFrnp%L00Rk?v?bM_4o00oz~WM_R4V?X9S5","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17596,"triangles":316,"vertices":948,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0,-0.06003806333108147],"max":[1.5,3.200000047683716,0.22590816731615265]},"sizeMeters":[3,3.2,0.286],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:24.543Z","updatedAt":"2026-09-07T16:39:24.644Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18060/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoWallWithWeaponRackMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18060/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18060/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18060/v1/model.glb\" alt=\"Dojo Wall With Weapon Rack (Martial Arts Dojo and Fight Stages)\" 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/18060/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/18060/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18063","slug":"martial-arts-dojo-and-fight-stages-shrine-alcove-d179d34a","title":"Shrine Alcove (Martial Arts Dojo and Fight Stages)","summary":"Recessed shrine alcove with an offering bowl and two candles.","description":"Shrine alcove 1.6 m wide set into a dojo wall bay, with a raised timber floor, a gilded offering bowl and two candles. Dimensions 3.00 x 3.20 x 0.69 m (X x Y x Z). Modular wall bay: origin centred on the module at floor level, 3.0 m between joins; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-shrine-alcove-d179d34a","cdnUrl":"https://cdn.3dassets.dev/assets/18063/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-shrine-alcove-d179d34a","thumbnailUrl":"https://cdn.3dassets.dev/assets/18063/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18063/v1/poster.webp","blurhash":"U9FYfMD*00ad_4-;D$9F00.8-:D$Dhs.%gIo","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19120,"triangles":332,"vertices":996,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0,-0.05993240835503755],"max":[1.5,3.200000047683716,0.6299661224055719]},"sizeMeters":[3,3.2,0.69],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:25.328Z","updatedAt":"2026-09-07T16:39:25.436Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18063/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShrineAlcoveMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18063/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18063/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18063/v1/model.glb\" alt=\"Shrine Alcove (Martial Arts Dojo and Fight Stages)\" 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/18063/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/18063/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18061","slug":"martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","title":"Mirror Wall (Martial Arts Dojo and Fight Stages)","summary":"Full-height mirrored wall bay with a barre rail.","description":"Mirrored dojo wall bay 3.0 m wide with a 2.4 m mirror panel, timber surround and a chrome barre at 1.00 m. Dimensions 3.00 x 3.20 x 0.17 m (X x Y x Z). Modular wall bay: origin centred on the module at floor level, 3.0 m between joins; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","cdnUrl":"https://cdn.3dassets.dev/assets/18061/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-mirror-wall-f5fc2886","thumbnailUrl":"https://cdn.3dassets.dev/assets/18061/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18061/v1/poster.webp","blurhash":"U9B:gF%M00V@~q%MIUE1ivxuS%IUD%?H%M9G","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6292,"triangles":84,"vertices":252,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.502331841130949,0,-0.059990321653100254],"max":[1.5011317612130413,3.201200008392334,0.10504531817980606]},"sizeMeters":[3.003,3.201,0.165],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:25.223Z","updatedAt":"2026-09-07T16:39:25.326Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18061/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MirrorWallMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18061/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18061/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18061/v1/model.glb\" alt=\"Mirror Wall (Martial Arts Dojo and Fight Stages)\" 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/18061/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/18061/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18064","slug":"martial-arts-dojo-and-fight-stages-dojo-sliding-door-c50f4bbe","title":"Dojo Sliding Door (Martial Arts Dojo and Fight Stages)","summary":"Paired paper-panel sliding doors in a timber wall bay.","description":"Dojo sliding door bay 3.0 m wide with two paper-panel leaves on named pivots, modelled closed in their timber track. Dimensions 3.00 x 3.20 x 0.14 m (X x Y x Z). Modular wall bay: origin centred on the module at floor level, 3.0 m between joins; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Named nodes door-left and door-right slide along the head track; modelled closed. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-dojo-sliding-door-c50f4bbe","cdnUrl":"https://cdn.3dassets.dev/assets/18064/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-dojo-sliding-door-c50f4bbe","thumbnailUrl":"https://cdn.3dassets.dev/assets/18064/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18064/v1/poster.webp","blurhash":"UCEooT%M00IUMx-p%M9Z00M{~q%M?bocD%S5","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":10388,"triangles":240,"vertices":720,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.4999969705007488,0,-0.0699240099533537],"max":[1.4999969705007488,3.200000047683716,0.07501251904659778]},"sizeMeters":[3,3.2,0.145],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:25.345Z","updatedAt":"2026-09-07T16:39:25.451Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18064/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoSlidingDoorMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18064/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18064/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18064/v1/model.glb\" alt=\"Dojo Sliding Door (Martial Arts Dojo and Fight Stages)\" 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/18064/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/18064/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18062","slug":"martial-arts-dojo-and-fight-stages-hanging-scroll-753df67b","title":"Hanging Scroll (Martial Arts Dojo and Fight Stages)","summary":"Hanging paper scroll with a weighted lower rod.","description":"Hanging scroll 0.86 m wide and 1.40 m tall on timber rods, with three blank calligraphy panels. Dimensions 1.29 x 1.59 x 0.08 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-hanging-scroll-753df67b","cdnUrl":"https://cdn.3dassets.dev/assets/18062/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-hanging-scroll-753df67b","thumbnailUrl":"https://cdn.3dassets.dev/assets/18062/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18062/v1/poster.webp","blurhash":"UAC6ruD%00_N?Gt6D*M|00-p~q4o%1%1bcE2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11536,"triangles":188,"vertices":564,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8600227358769275,0,-0.03803595236857046],"max":[0.4300227287243701,1.5880000591278076,0.03803595236857046]},"sizeMeters":[1.29,1.588,0.076],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:25.292Z","updatedAt":"2026-09-07T16:39:25.386Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18062/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HangingScrollMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18062/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18062/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18062/v1/model.glb\" alt=\"Hanging Scroll (Martial Arts Dojo and Fight Stages)\" 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/18062/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/18062/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18067","slug":"martial-arts-dojo-and-fight-stages-banner-frame-6567ddb4","title":"Banner Frame (Martial Arts Dojo and Fight Stages)","summary":"Free-standing banner on a timber pole with a blank field.","description":"Banner frame 2.7 m tall on a weighted base, carrying a red banner with three blank panels. Dimensions 0.86 x 2.74 x 0.44 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-banner-frame-6567ddb4","cdnUrl":"https://cdn.3dassets.dev/assets/18067/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-banner-frame-6567ddb4","thumbnailUrl":"https://cdn.3dassets.dev/assets/18067/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18067/v1/poster.webp","blurhash":"U79ZN4$%005R^Ps:5RI:0xW.}[sWEKWU%3s;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12112,"triangles":180,"vertices":540,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4300000071525574,0.00001098598602632117,-0.2199999988079071],"max":[0.4300000071525574,2.739998117435345,0.2199999988079071]},"sizeMeters":[0.86,2.74,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:26.791Z","updatedAt":"2026-09-07T16:39:26.896Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18067/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BannerFrameMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18067/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18067/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18067/v1/model.glb\" alt=\"Banner Frame (Martial Arts Dojo and Fight Stages)\" 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/18067/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/18067/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18054","slug":"martial-arts-dojo-and-fight-stages-timer-clock-bf09ed53","title":"Timer Clock (Martial Arts Dojo and Fight Stages)","summary":"Wall-mounted round timer with a blank digit panel.","description":"Gym timer clock 0.72 m wide mounted at 1.90 m, with a red face and four blank digit panels. Dimensions 0.72 x 0.86 x 0.30 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-timer-clock-bf09ed53","cdnUrl":"https://cdn.3dassets.dev/assets/18054/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-timer-clock-bf09ed53","thumbnailUrl":"https://cdn.3dassets.dev/assets/18054/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18054/v1/poster.webp","blurhash":"UCAm0k^+0J56~W-pInEL0eNG}[$*0KE1=|-o","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":7676,"triangles":108,"vertices":324,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.36002838820247235,0,-0.20998229669289284],"max":[0.36002838820247235,0.8600000143051147,0.08998230682568245]},"sizeMeters":[0.72,0.86,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:22.558Z","updatedAt":"2026-09-07T16:39:22.657Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18054/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimerClockMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18054/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18054/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18054/v1/model.glb\" alt=\"Timer Clock (Martial Arts Dojo and Fight Stages)\" 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/18054/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/18054/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18068","slug":"martial-arts-dojo-and-fight-stages-dojo-lantern-6329cde9","title":"Dojo Lantern (Martial Arts Dojo and Fight Stages)","summary":"Ribbed paper lantern hanging from a ceiling plate.","description":"Dojo lantern 0.44 m across and 0.50 m tall in ribbed paper, hung from a ceiling plate at 1.85 m. Dimensions 0.44 x 0.84 x 0.44 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-dojo-lantern-6329cde9","cdnUrl":"https://cdn.3dassets.dev/assets/18068/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-dojo-lantern-6329cde9","thumbnailUrl":"https://cdn.3dassets.dev/assets/18068/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18068/v1/poster.webp","blurhash":"U7ATN4s:00Na$%spNGNZ00of~qRj?HoeE2WC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27812,"triangles":528,"vertices":1584,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.22000030682422475,0,-0.22000030682422475],"max":[0.22000030682422475,0.8399999737739563,0.22000030682422475]},"sizeMeters":[0.44,0.84,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:27.876Z","updatedAt":"2026-09-07T16:39:27.966Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18068/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoLanternMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18068/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18068/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18068/v1/model.glb\" alt=\"Dojo Lantern (Martial Arts Dojo and Fight Stages)\" 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/18068/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/18068/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18066","slug":"martial-arts-dojo-and-fight-stages-dojo-bell-226f1823","title":"Dojo Bell (Martial Arts Dojo and Fight Stages)","summary":"Hanging bronze bell on a timber A-frame.","description":"Dojo bell 1.3 m wide and 2.0 m tall: a gilded bell 0.76 m across hung from a timber A-frame. Dimensions 1.30 x 1.97 x 0.74 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-dojo-bell-226f1823","cdnUrl":"https://cdn.3dassets.dev/assets/18066/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-dojo-bell-226f1823","thumbnailUrl":"https://cdn.3dassets.dev/assets/18066/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18066/v1/poster.webp","blurhash":"U4C?Jr_2004.~p?Z4o0200V]^*X3sZ-:%b9G","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17788,"triangles":320,"vertices":960,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.650002605114617,0,-0.37049042779823704],"max":[0.650002605114617,1.965000033378601,0.37049042779823704]},"sizeMeters":[1.3,1.965,0.741],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:25.507Z","updatedAt":"2026-09-07T16:39:25.619Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18066/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoBellMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18066/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18066/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18066/v1/model.glb\" alt=\"Dojo Bell (Martial Arts Dojo and Fight Stages)\" 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/18066/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/18066/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18040","slug":"martial-arts-dojo-and-fight-stages-makiwara-414e18c4","title":"Makiwara (Martial Arts Dojo and Fight Stages)","summary":"Tapered striking post with a bound rope pad.","description":"Makiwara 1.72 m tall: a tapered timber post on a concrete foot with a bound rope striking pad at 1.30 m. Dimensions 0.50 x 1.72 x 0.50 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-makiwara-414e18c4","cdnUrl":"https://cdn.3dassets.dev/assets/18040/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-makiwara-414e18c4","thumbnailUrl":"https://cdn.3dassets.dev/assets/18040/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18040/v1/poster.webp","blurhash":"U3Aw0Q_3000000t8?vD$.At7R3IUD$M{%g?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":8096,"triangles":120,"vertices":360,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.25,6.090290850108149e-7,-0.25],"max":[0.25,1.7200000286102295,0.25]},"sizeMeters":[0.5,1.72,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:19.160Z","updatedAt":"2026-09-07T16:39:19.283Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18040/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MakiwaraMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18040/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18040/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18040/v1/model.glb\" alt=\"Makiwara (Martial Arts Dojo and Fight Stages)\" 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/18040/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/18040/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18041","slug":"martial-arts-dojo-and-fight-stages-wooden-dummy-041f850b","title":"Wooden Dummy (Martial Arts Dojo and Fight Stages)","summary":"Wing chun wooden dummy with three arms and a leg.","description":"Wooden dummy 1.95 m tall on a weighted base: a timber trunk with two upper arms, one lower arm and an angled leg. Dimensions 0.74 x 1.95 x 0.76 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-wooden-dummy-041f850b","cdnUrl":"https://cdn.3dassets.dev/assets/18041/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-wooden-dummy-041f850b","thumbnailUrl":"https://cdn.3dassets.dev/assets/18041/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18041/v1/poster.webp","blurhash":"U3AA5R~B0000J5S0rww~01s:~oNG57tR-pIA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11952,"triangles":212,"vertices":636,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.37003798603513116,0,-0.4627165670931034],"max":[0.37003798603513116,1.9500000476837158,0.30001082636124227]},"sizeMeters":[0.74,1.95,0.763],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:19.173Z","updatedAt":"2026-09-07T16:39:19.297Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18041/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WoodenDummyMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18041/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18041/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18041/v1/model.glb\" alt=\"Wooden Dummy (Martial Arts Dojo and Fight Stages)\" 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/18041/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/18041/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18046","slug":"martial-arts-dojo-and-fight-stages-pull-up-rig-cafea1b6","title":"Pull-Up Rig (Martial Arts Dojo and Fight Stages)","summary":"Free-standing four-post rig with a straight and two angled bars.","description":"Pull-up rig 2.5 m wide and 2.47 m tall on four posts, with a straight chrome bar and two narrow grips. Dimensions 3.57 x 2.47 x 1.44 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-pull-up-rig-cafea1b6","cdnUrl":"https://cdn.3dassets.dev/assets/18046/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-pull-up-rig-cafea1b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/18046/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18046/v1/poster.webp","blurhash":"U16H$K9D00?c~q-=4nD$ROt7a$WBD%_4x]4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13264,"triangles":240,"vertices":720,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2.200000047683716,-0.00003615442723581275,-0.7200579876742118],"max":[1.3700000047683716,2.4700361830374655,0.7200579876742118]},"sizeMeters":[3.57,2.47,1.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:20.845Z","updatedAt":"2026-09-07T16:39:20.944Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18046/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PullUpRigMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18046/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18046/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18046/v1/model.glb\" alt=\"Pull-Up Rig (Martial Arts Dojo and Fight Stages)\" 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/18046/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/18046/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18037","slug":"martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348","title":"Heavy Bag (Martial Arts Dojo and Fight Stages)","summary":"Hanging heavy bag on a ceiling plate and chains.","description":"Heavy bag 0.47 m across and 1.20 m long hung from a ceiling plate at 2.65 m on four chains, with two leather bands. Dimensions 0.62 x 1.69 x 0.62 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348","cdnUrl":"https://cdn.3dassets.dev/assets/18037/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-heavy-bag-ff4eb348","thumbnailUrl":"https://cdn.3dassets.dev/assets/18037/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18037/v1/poster.webp","blurhash":"U55}jmjY00oz?dofD#R*g5ofr;Rj%NayM_oe","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31908,"triangles":600,"vertices":1800,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3100000023841858,0,-0.3100000023841858],"max":[0.3100000023841858,1.6900142127569606,0.3100000023841858]},"sizeMeters":[0.62,1.69,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:19.130Z","updatedAt":"2026-09-07T16:39:19.228Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18037/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeavyBagMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18037/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18037/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18037/v1/model.glb\" alt=\"Heavy Bag (Martial Arts Dojo and Fight Stages)\" 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/18037/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/18037/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18039","slug":"martial-arts-dojo-and-fight-stages-speed-bag-f774d211","title":"Speed Bag (Martial Arts Dojo and Fight Stages)","summary":"Small speed bag under a timber rebound platform.","description":"Speed bag rig: a 0.86 m timber rebound platform at 1.94 m with a leather bag on a swivel below. Dimensions 0.88 x 0.75 x 0.86 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-speed-bag-f774d211","cdnUrl":"https://cdn.3dassets.dev/assets/18039/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-speed-bag-f774d211","thumbnailUrl":"https://cdn.3dassets.dev/assets/18039/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18039/v1/poster.webp","blurhash":"USCimss;4:R*~VofIVayWWa{n%jtD*a{kAWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16240,"triangles":288,"vertices":864,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4399999976158142,0,-0.4289889194565391],"max":[0.4399999976158142,0.7499763420593547,0.4289889194565391]},"sizeMeters":[0.88,0.75,0.858],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:19.155Z","updatedAt":"2026-09-07T16:39:19.286Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18039/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpeedBagMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18039/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18039/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18039/v1/model.glb\" alt=\"Speed Bag (Martial Arts Dojo and Fight Stages)\" 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/18039/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/18039/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18038","slug":"martial-arts-dojo-and-fight-stages-double-end-bag-ec3ab5bc","title":"Double-End Bag (Martial Arts Dojo and Fight Stages)","summary":"Small bag tethered top and bottom for timing work.","description":"Double-end bag 0.34 m across, tethered between a ceiling plate at 2.35 m and a weighted floor anchor. Dimensions 0.33 x 2.35 x 0.32 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-double-end-bag-ec3ab5bc","cdnUrl":"https://cdn.3dassets.dev/assets/18038/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-double-end-bag-ec3ab5bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/18038/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18038/v1/poster.webp","blurhash":"U37dqO%M004n-=oeD~WC0MRj~BxuOFa#wcoc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15516,"triangles":272,"vertices":816,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.16573900362721083,0,-0.1576210802084621],"max":[0.16573900362721083,2.3499999046325684,0.1576210802084621]},"sizeMeters":[0.331,2.35,0.315],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:19.157Z","updatedAt":"2026-09-07T16:39:19.288Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18038/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DoubleEndBagMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18038/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18038/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18038/v1/model.glb\" alt=\"Double-End Bag (Martial Arts Dojo and Fight Stages)\" 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/18038/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/18038/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18069","slug":"martial-arts-dojo-and-fight-stages-dojo-bench-812ae702","title":"Dojo Bench (Martial Arts Dojo and Fight Stages)","summary":"Long low timber bench on shaped end supports.","description":"Dojo bench 2.4 m long with a seat at 0.50 m on two shaped timber supports. Dimensions 2.42 x 0.50 x 0.42 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-dojo-bench-812ae702","cdnUrl":"https://cdn.3dassets.dev/assets/18069/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-dojo-bench-812ae702","thumbnailUrl":"https://cdn.3dassets.dev/assets/18069/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18069/v1/poster.webp","blurhash":"U9CPeMt69G-o_2~URkIo00-p?HE1010L%L%2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":4040,"triangles":48,"vertices":144,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.2100000381469727,-0.000043044276777676194,-0.20991852392111146],"max":[1.2100000381469727,0.4999914498499534,0.20991852392111146]},"sizeMeters":[2.42,0.5,0.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:28.463Z","updatedAt":"2026-09-07T16:39:28.560Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18069/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DojoBenchMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18069/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18069/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18069/v1/model.glb\" alt=\"Dojo Bench (Martial Arts Dojo and Fight Stages)\" 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/18069/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/18069/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18073","slug":"martial-arts-dojo-and-fight-stages-shoe-rack-07f16cc1","title":"Shoe Rack (Martial Arts Dojo and Fight Stages)","summary":"Four-tier timber shoe rack with paired shoes.","description":"Shoe rack 1.6 m wide and 1.0 m tall in timber with four tiers and ten pairs of shoes. Dimensions 1.60 x 1.00 x 0.36 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-shoe-rack-07f16cc1","cdnUrl":"https://cdn.3dassets.dev/assets/18073/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-shoe-rack-07f16cc1","thumbnailUrl":"https://cdn.3dassets.dev/assets/18073/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18073/v1/poster.webp","blurhash":"UCHBbw_N00t,%g~Vx]RQ00RPo}i_iwxti_9u","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":83392,"triangles":1672,"vertices":5016,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8011999726295471,-0.00003172216785907178,-0.181136185712445],"max":[0.8011999726295471,1.0000317221678592,0.181136185712445]},"sizeMeters":[1.602,1,0.362],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:28.791Z","updatedAt":"2026-09-07T16:39:28.913Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18073/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoeRackMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18073/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18073/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18073/v1/model.glb\" alt=\"Shoe Rack (Martial Arts Dojo and Fight Stages)\" 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/18073/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/18073/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18059","slug":"martial-arts-dojo-and-fight-stages-gear-shelf-d7b5a755","title":"Gear Shelf (Martial Arts Dojo and Fight Stages)","summary":"Wall shelf over four hooks with hanging wraps.","description":"Gear shelf 1.4 m wide at 1.55 m over four chrome hooks carrying folded hand wraps. Dimensions 1.40 x 1.61 x 0.34 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-gear-shelf-d7b5a755","cdnUrl":"https://cdn.3dassets.dev/assets/18059/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-gear-shelf-d7b5a755","thumbnailUrl":"https://cdn.3dassets.dev/assets/18059/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18059/v1/poster.webp","blurhash":"UF9G~;of00WB~pt79FM{${t6NfM|i]xao~Ip","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12304,"triangles":192,"vertices":576,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.699999988079071,0,-0.1699636800792593],"max":[0.699999988079071,1.6099935739129216,0.1699636800792593]},"sizeMeters":[1.4,1.61,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:23.424Z","updatedAt":"2026-09-07T16:39:23.536Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18059/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GearShelfMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18059/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18059/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18059/v1/model.glb\" alt=\"Gear Shelf (Martial Arts Dojo and Fight Stages)\" 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/18059/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/18059/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18056","slug":"martial-arts-dojo-and-fight-stages-water-bottle-rack-79d10b56","title":"Water Bottle Rack (Martial Arts Dojo and Fight Stages)","summary":"Steel rack holding five squeeze bottles.","description":"Water bottle rack 0.66 m wide and 1.25 m tall in painted steel, holding five blue squeeze bottles. Dimensions 0.66 x 1.25 x 0.22 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-water-bottle-rack-79d10b56","cdnUrl":"https://cdn.3dassets.dev/assets/18056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-water-bottle-rack-79d10b56","thumbnailUrl":"https://cdn.3dassets.dev/assets/18056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18056/v1/poster.webp","blurhash":"UA6uCgt74TM{?wt7DhM{%NozIUM{xYt7R,M_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21432,"triangles":396,"vertices":1188,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32999664296395764,0,-0.10998870815149388],"max":[0.32999664296395764,1.2500043268821046,0.10998870815149388]},"sizeMeters":[0.66,1.25,0.22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:22.612Z","updatedAt":"2026-09-07T16:39:22.722Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterBottleRackMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18056/v1/model.glb\" alt=\"Water Bottle Rack (Martial Arts Dojo and Fight Stages)\" 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/18056/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/18056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18047","slug":"martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb","title":"Plyo Box (Martial Arts Dojo and Fight Stages)","summary":"Timber plyometric jump box with a bound top.","description":"Plyo box 0.9 m wide and 0.65 m tall in timber with reinforced corners and a hand cut-out. Dimensions 0.94 x 0.65 x 0.82 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb","cdnUrl":"https://cdn.3dassets.dev/assets/18047/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-plyo-box-cc2104eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/18047/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18047/v1/poster.webp","blurhash":"UGFhnu~B4pIB%1aekCxb029uJ8bvt5tQNGIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":4632,"triangles":60,"vertices":180,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4699999988079071,-0.000018291236985601422,-0.39501045333135665],"max":[0.4699999988079071,0.6499995294771105,0.43001044975507796]},"sizeMeters":[0.94,0.65,0.825],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:20.858Z","updatedAt":"2026-09-07T16:39:20.975Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18047/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlyoBoxMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18047/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18047/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18047/v1/model.glb\" alt=\"Plyo Box (Martial Arts Dojo and Fight Stages)\" 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/18047/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/18047/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18048","slug":"martial-arts-dojo-and-fight-stages-medicine-ball-c1cbe95d","title":"Medicine Ball (Martial Arts Dojo and Fight Stages)","summary":"Leather medicine ball with stitched seams.","description":"Medicine ball 0.34 m across in leather with three stitched seam bands. Dimensions 0.36 x 0.36 x 0.35 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-medicine-ball-c1cbe95d","cdnUrl":"https://cdn.3dassets.dev/assets/18048/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-medicine-ball-c1cbe95d","thumbnailUrl":"https://cdn.3dassets.dev/assets/18048/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18048/v1/poster.webp","blurhash":"U9AJA:%L00E1?HofELV@01NG}[xa56WB-Vof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25964,"triangles":504,"vertices":1512,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.17900000512599945,0,-0.17452049817683354],"max":[0.17900000512599945,0.3580000102519989,0.17452049817683354]},"sizeMeters":[0.358,0.358,0.349],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:20.877Z","updatedAt":"2026-09-07T16:39:20.971Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18048/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MedicineBallMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18048/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18048/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18048/v1/model.glb\" alt=\"Medicine Ball (Martial Arts Dojo and Fight Stages)\" 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/18048/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/18048/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18052","slug":"martial-arts-dojo-and-fight-stages-kettlebells-25351387","title":"Kettlebells (Martial Arts Dojo and Fight Stages)","summary":"Three cast kettlebells in a row.","description":"Set of three kettlebells 0.44 m tall at the largest, standing in a row. Dimensions 0.84 x 0.36 x 0.28 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-kettlebells-25351387","cdnUrl":"https://cdn.3dassets.dev/assets/18052/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-kettlebells-25351387","thumbnailUrl":"https://cdn.3dassets.dev/assets/18052/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18052/v1/poster.webp","blurhash":"U14xoP-;009E?c_4M_8_00t7_4j]IS00-=_4","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28728,"triangles":576,"vertices":1728,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.4399999976158142,0.000012857707072766456,-0.13999865915183238],"max":[0.3952000141143799,0.356987135617207,0.13999865915183238]},"sizeMeters":[0.835,0.357,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:21.803Z","updatedAt":"2026-09-07T16:39:21.901Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18052/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KettlebellsMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18052/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18052/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18052/v1/model.glb\" alt=\"Kettlebells (Martial Arts Dojo and Fight Stages)\" 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/18052/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/18052/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"18050","slug":"martial-arts-dojo-and-fight-stages-weight-rack-046f2413","title":"Weight Rack (Martial Arts Dojo and Fight Stages)","summary":"Three-tier rack holding fifteen pairs of dumbbells.","description":"Weight rack 1.9 m wide and 1.45 m tall in painted steel, holding fifteen dumbbells on three tiers. Dimensions 1.97 x 1.45 x 0.60 m (X x Y x Z). Footprint-centred origin resting on the ground; metre units, +Y up, +Z forward. Dojo low-poly palette of tatami, timber, canvas and painted steel, no textures. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/martial-arts-dojo-and-fight-stages-weight-rack-046f2413","cdnUrl":"https://cdn.3dassets.dev/assets/18050/v1/model.glb","downloadUrl":"https://3dassets.dev/download/martial-arts-dojo-and-fight-stages-weight-rack-046f2413","thumbnailUrl":"https://cdn.3dassets.dev/assets/18050/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/18050/v1/poster.webp","blurhash":"U27K#j-=00jEV}-=-;M_00oh-=Rix^?djq8^","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":97388,"triangles":1992,"vertices":5976,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.0188000202178955,-0.000017515203319495853,-0.300044248073681],"max":[0.949999988079071,1.4500175628870353,0.300044248073681]},"sizeMeters":[1.969,1.45,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T16:39:20.992Z","updatedAt":"2026-09-07T16:39:21.118Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/18050/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeightRackMartialArtsDojoAndFightStages(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/18050/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/18050/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/18050/v1/model.glb\" alt=\"Weight Rack (Martial Arts Dojo and Fight Stages)\" 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/18050/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/18050/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}