{"data":{"id":82,"slug":"fps-weapon-set-and-firing-range","title":"FPS Guns and Shooting Range","summary":"Original socketed firearms, detailed attachments, four-lane range and gunsmith equipment.","description":"High-density original models in metres, +Y up and +Z forward. Magazines, stocks, pistol slides, revolver cylinders and bipod legs each work on their own named pivot, and range and armoury doors, lids and poppers open, close and fall: rigid node-transform clips only, with no skinning and no collision data. Weapons and attachment sockets support visual assembly. Built via Codex from the recovered Claude brief and geometry helpers.","url":"https://3dassets.dev/packs/fps-weapon-set-and-firing-range","coverUrl":"https://cdn.3dassets.dev/assets/19544/v1/poster.webp","assetCount":105,"aiGenerated":true,"aiGeneratedAssetCount":105,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":17055820,"totalTriangles":375320,"starterScene":{"id":"19544","slug":"fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","title":"Four-lane range (FPS Guns and Shooting Range)","summary":"Four booths with targets at 10, 25 and 50 metres downrange; sparse long-distance demonstration.","description":"Four booths with targets at 10, 25 and 50 metres downrange; sparse long-distance demonstration.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/19544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/19544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19544/v1/poster.webp","blurhash":"UAAwF;kD4nt7WB9Fax%M00ae?baet7~qWXD$","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":599476,"triangles":21356,"vertices":27280,"meshes":23,"materials":7,"textures":3,"animations":[],"boundingBox":{"min":[-7.0015259254738,0.0002240056360363965,-2],"max":[7.0015259254738,3.3039875073257274,52]},"sizeMeters":[14.003,3.304,54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:59:25.923Z","updatedAt":"2026-10-05T17:59:44.508Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourLaneRangeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19544/v1/model.glb\" alt=\"Four-lane range (FPS Guns and Shooting Range)\" 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/19544/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/19544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"19430","slug":"fps-weapon-set-and-firing-range-compact-pistol-1ac660a7","title":"Compact pistol (FPS Guns and Shooting Range)","summary":"Compact pistol with original detailed construction in metres.","description":"Compact pistol Dimensions 0.04 × 0.22 × 0.19 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips magazine-open, magazine-close, slide-open, slide-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-compact-pistol-1ac660a7","cdnUrl":"https://cdn.3dassets.dev/assets/19430/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-compact-pistol-1ac660a7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19430/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19430/v1/poster.webp","blurhash":"U44ef[a|00ay~qay4nj[%MRjIUxuRjM{kC%M","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":487132,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":["magazine-open","magazine-close","slide-open","slide-close"],"boundingBox":{"min":[-0.020747927010148492,0,-0.09250368125797878],"max":[0.020747927010148492,0.21850000321865082,0.09251047477482427]},"sizeMeters":[0.041,0.219,0.185],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:58:42.853Z","updatedAt":"2026-10-12T13:45:03.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19430/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CompactPistolFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19430/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19430/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19430/v1/model.glb\" alt=\"Compact pistol (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19430/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19430/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19434","slug":"fps-weapon-set-and-firing-range-service-pistol-e6a0f894","title":"Service pistol (FPS Guns and Shooting Range)","summary":"Service pistol with original detailed construction in metres.","description":"Service pistol Dimensions 0.04 × 0.22 × 0.22 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips magazine-open, magazine-close, slide-open, slide-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-service-pistol-e6a0f894","cdnUrl":"https://cdn.3dassets.dev/assets/19434/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-service-pistol-e6a0f894","thumbnailUrl":"https://cdn.3dassets.dev/assets/19434/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19434/v1/poster.webp","blurhash":"U655LTof4nV@_4fk9FWB%3RjM{t8M{M{og%M","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":487132,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":["magazine-open","magazine-close","slide-open","slide-close"],"boundingBox":{"min":[-0.02074835492864128,0,-0.11150368250967632],"max":[0.02074835492864128,0.21850570769308697,0.11150597035884857]},"sizeMeters":[0.041,0.219,0.223],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":17,"publishedAt":"2026-09-07T16:58:39.248Z","updatedAt":"2026-10-08T14:44:34.640Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19434/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ServicePistolFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19434/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19434/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19434/v1/model.glb\" alt=\"Service pistol (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19434/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19434/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19432","slug":"fps-weapon-set-and-firing-range-revolver-ac72e5a4","title":"Six-chamber revolver (FPS Guns and Shooting Range)","summary":"Six-chamber revolver with original detailed construction in metres.","description":"Six-chamber revolver Dimensions 0.06 × 0.22 × 0.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips spin work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-revolver-ac72e5a4","cdnUrl":"https://cdn.3dassets.dev/assets/19432/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-revolver-ac72e5a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19432/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19432/v1/poster.webp","blurhash":"U23+DwRP00x^~qRP9Ex^M{M{tQxwD%Ri-;xc","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":414660,"triangles":8548,"vertices":25644,"meshes":5,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.03099999949336052,0,-0.13050368003608356],"max":[0.03099999949336052,0.21849648166507793,0.13050596415996552]},"sizeMeters":[0.062,0.218,0.261],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":18,"publishedAt":"2026-09-07T16:58:38.948Z","updatedAt":"2026-10-12T09:58:27.191Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19432/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SixChamberRevolverFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19432/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19432/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19432/v1/model.glb\" alt=\"Six-chamber revolver (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19432/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19432/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19433","slug":"fps-weapon-set-and-firing-range-smg-e216f9a5","title":"Compact submachine gun (FPS Guns and Shooting Range)","summary":"Compact submachine gun with original detailed construction in metres.","description":"Compact submachine gun Dimensions 0.07 × 0.26 × 0.56 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-smg-e216f9a5","cdnUrl":"https://cdn.3dassets.dev/assets/19433/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smg-e216f9a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19433/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19433/v1/poster.webp","blurhash":"U34.9?-;4m9F~qodD$M|D$D%t7-=4TIU-;?b","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":550152,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close"],"boundingBox":{"min":[-0.03549573128029945,0,-0.28049765193635545],"max":[0.03549573128029945,0.2604942019845447,0.28049999475479126]},"sizeMeters":[0.071,0.26,0.561],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":29,"publishedAt":"2026-09-07T16:58:39.125Z","updatedAt":"2026-10-08T16:52:59.924Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19433/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CompactSubmachineGunFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19433/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19433/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19433/v1/model.glb\" alt=\"Compact submachine gun (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19433/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19433/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19431","slug":"fps-weapon-set-and-firing-range-pdw-554b106e","title":"Bullpup personal defence weapon (FPS Guns and Shooting Range)","summary":"Bullpup personal defence weapon with original detailed construction in metres.","description":"Bullpup personal defence weapon Dimensions 0.07 × 0.26 × 0.49 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pdw-554b106e","cdnUrl":"https://cdn.3dassets.dev/assets/19431/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pdw-554b106e","thumbnailUrl":"https://cdn.3dassets.dev/assets/19431/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19431/v1/poster.webp","blurhash":"U34U~R-=9EDi?wozITM_9FD%t7%g8^IT%N.8","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":550184,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close"],"boundingBox":{"min":[-0.03550217261475778,0,-0.24549764806205354],"max":[0.03550217261475778,0.26050789405364094,0.24549999833106995]},"sizeMeters":[0.071,0.261,0.491],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T16:58:38.923Z","updatedAt":"2026-10-08T04:29:55.934Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19431/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BullpupPersonalDefenceWeaponFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19431/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19431/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19431/v1/model.glb\" alt=\"Bullpup personal defence weapon (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19431/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19431/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19436","slug":"fps-weapon-set-and-firing-range-assault-carbine-5a5b3ffe","title":"Assault carbine (FPS Guns and Shooting Range)","summary":"Assault carbine with original detailed construction in metres.","description":"Assault carbine Dimensions 0.07 × 0.26 × 0.89 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-assault-carbine-5a5b3ffe","cdnUrl":"https://cdn.3dassets.dev/assets/19436/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-assault-carbine-5a5b3ffe","thumbnailUrl":"https://cdn.3dassets.dev/assets/19436/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19436/v1/poster.webp","blurhash":"U24B^4%3I99F?wMxM_M|009Ex]?c00t7-=.8","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":550288,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close"],"boundingBox":{"min":[-0.03548446273361319,0,-0.4454976435917052],"max":[0.03548446273361319,0.2604908547554464,0.445499986410141]},"sizeMeters":[0.071,0.26,0.891],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":19,"publishedAt":"2026-09-07T16:58:39.311Z","updatedAt":"2026-10-12T22:52:24.258Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19436/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function AssaultCarbineFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19436/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19436/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19436/v1/model.glb\" alt=\"Assault carbine (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19436/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19436/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19437","slug":"fps-weapon-set-and-firing-range-battle-rifle-5ba2a611","title":"Battle rifle (FPS Guns and Shooting Range)","summary":"Battle rifle with original detailed construction in metres.","description":"Battle rifle Dimensions 0.07 × 0.26 × 1.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-battle-rifle-5ba2a611","cdnUrl":"https://cdn.3dassets.dev/assets/19437/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-battle-rifle-5ba2a611","thumbnailUrl":"https://cdn.3dassets.dev/assets/19437/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19437/v1/poster.webp","blurhash":"U13[xW?c4n00_4RjIUM{0000?b~q00M__3?b","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":550236,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close"],"boundingBox":{"min":[-0.035482905354669934,0,-0.5254976418035658],"max":[0.035482905354669934,0.2604987416030428,0.5254999995231628]},"sizeMeters":[0.071,0.26,1.051],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":18,"publishedAt":"2026-09-07T16:58:39.325Z","updatedAt":"2026-10-08T14:44:52.233Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19437/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BattleRifleFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19437/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19437/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19437/v1/model.glb\" alt=\"Battle rifle (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19437/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19437/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19435","slug":"fps-weapon-set-and-firing-range-dmr-1075e574","title":"Designated marksman rifle (FPS Guns and Shooting Range)","summary":"Designated marksman rifle with original detailed construction in metres.","description":"Designated marksman rifle Dimensions 0.21 × 0.33 × 1.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close, bipod-open, bipod-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-dmr-1075e574","cdnUrl":"https://cdn.3dassets.dev/assets/19435/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dmr-1075e574","thumbnailUrl":"https://cdn.3dassets.dev/assets/19435/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19435/v1/poster.webp","blurhash":"U34.C{_3IA4mRkD%M{xu4mD$xv?bob%M%NRj","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":571224,"triangles":11708,"vertices":35124,"meshes":9,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close","bipod-open","bipod-close"],"boundingBox":{"min":[-0.10573982743829924,5.81145287448237e-9,-0.5554976727979811],"max":[0.10573982743829924,0.3331021649534641,0.5555000305175781]},"sizeMeters":[0.211,0.333,1.111],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:58:39.250Z","updatedAt":"2026-10-08T14:45:36.088Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19435/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DesignatedMarksmanRifleFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19435/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19435/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19435/v1/model.glb\" alt=\"Designated marksman rifle (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19435/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19435/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19438","slug":"fps-weapon-set-and-firing-range-bolt-sniper-b3944481","title":"Bolt-action precision rifle (FPS Guns and Shooting Range)","summary":"Bolt-action precision rifle with original detailed construction in metres.","description":"Bolt-action precision rifle Dimensions 0.21 × 0.33 × 1.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, bipod-open, bipod-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-bolt-sniper-b3944481","cdnUrl":"https://cdn.3dassets.dev/assets/19438/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bolt-sniper-b3944481","thumbnailUrl":"https://cdn.3dassets.dev/assets/19438/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19438/v1/poster.webp","blurhash":"U35#Y5?vD$00$*9ZV?%M004n%M?cNG-:%gM{","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":521608,"triangles":10560,"vertices":31680,"meshes":8,"materials":6,"textures":1,"animations":["stock-open","stock-close","bipod-open","bipod-close"],"boundingBox":{"min":[-0.1057363606259556,2.086162576020456e-9,-0.6304976621376502],"max":[0.1057363606259556,0.3332068847237273,0.6305000185966492]},"sizeMeters":[0.211,0.333,1.261],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":39,"publishedAt":"2026-09-07T16:58:42.391Z","updatedAt":"2026-10-25T13:16:18.162Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19438/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BoltActionPrecisionRifleFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19438/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19438/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19438/v1/model.glb\" alt=\"Bolt-action precision rifle (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19438/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19438/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19439","slug":"fps-weapon-set-and-firing-range-pump-shotgun-2eb64e5c","title":"Pump shotgun (FPS Guns and Shooting Range)","summary":"Pump shotgun with original detailed construction in metres.","description":"Pump shotgun Dimensions 0.07 × 0.21 × 1.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pump-shotgun-2eb64e5c","cdnUrl":"https://cdn.3dassets.dev/assets/19439/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pump-shotgun-2eb64e5c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19439/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19439/v1/poster.webp","blurhash":"U13[PR5lVWxu~D5Qn3xa0dIn%Nsm0J=|-?NG","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":490600,"triangles":9984,"vertices":29952,"meshes":7,"materials":6,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.033241097313193135,0,-0.5304976367200447],"max":[0.033241097313193135,0.2084716329137955,0.5304999947547913]},"sizeMeters":[0.066,0.208,1.061],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":19,"publishedAt":"2026-09-07T16:58:42.425Z","updatedAt":"2026-10-11T11:35:32.856Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19439/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PumpShotgunFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19439/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19439/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19439/v1/model.glb\" alt=\"Pump shotgun (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19439/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19439/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19440","slug":"fps-weapon-set-and-firing-range-lmg-d458abb4","title":"Light machine gun (FPS Guns and Shooting Range)","summary":"Light machine gun with original detailed construction in metres.","description":"Light machine gun Dimensions 0.21 × 0.40 × 1.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close, bipod-open, bipod-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-lmg-d458abb4","cdnUrl":"https://cdn.3dassets.dev/assets/19440/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lmg-d458abb4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19440/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19440/v1/poster.webp","blurhash":"U24xoM~qD$00IU9Fae?b009F%g?v-p?btR9F","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":576400,"triangles":11816,"vertices":35448,"meshes":9,"materials":5,"textures":0,"animations":["stock-open","stock-close","magazine-open","magazine-close","bipod-open","bipod-close"],"boundingBox":{"min":[-0.10574345060379223,-2.5704502970569365e-9,-0.5654976620006398],"max":[0.10574345060379223,0.39714268124711655,0.565500020980835]},"sizeMeters":[0.211,0.397,1.131],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":21,"publishedAt":"2026-09-07T16:58:42.604Z","updatedAt":"2026-10-09T03:08:39.153Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19440/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LightMachineGunFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19440/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19440/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19440/v1/model.glb\" alt=\"Light machine gun (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19440/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19440/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19442","slug":"fps-weapon-set-and-firing-range-launcher-bc2996a2","title":"Shoulder launcher (FPS Guns and Shooting Range)","summary":"Shoulder launcher with original detailed construction in metres.","description":"Shoulder launcher Dimensions 0.16 × 0.21 × 0.94 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-launcher-bc2996a2","cdnUrl":"https://cdn.3dassets.dev/assets/19442/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-launcher-bc2996a2","thumbnailUrl":"https://cdn.3dassets.dev/assets/19442/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19442/v1/poster.webp","blurhash":"U13[#exu4mRn?wD$D$%N00D$?c-;00-=_4M_","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":413124,"triangles":8540,"vertices":25620,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.08000432178898807,-0.000002596933439812099,-0.4699999988079071],"max":[0.08000432178898807,0.20848450263656948,0.4699999988079071]},"sizeMeters":[0.16,0.208,0.94],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:58:42.771Z","updatedAt":"2026-10-25T13:50:38.514Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19442/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoulderLauncherFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19442/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19442/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19442/v1/model.glb\" alt=\"Shoulder launcher (FPS Guns and Shooting Range)\" 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/19442/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/19442/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19441","slug":"fps-weapon-set-and-firing-range-service-pistol-slide-o-2fbb31f1","title":"Service pistol with slide open (FPS Guns and Shooting Range)","summary":"Service pistol with slide open with original detailed construction in metres.","description":"Service pistol with slide open Dimensions 0.04 × 0.22 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips magazine-open, magazine-close, slide-open, slide-close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-service-pistol-slide-o-2fbb31f1","cdnUrl":"https://cdn.3dassets.dev/assets/19441/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-service-pistol-slide-o-2fbb31f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19441/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19441/v1/poster.webp","blurhash":"U75hc7Ri9Exu~qM{D$xu-;MxM{%Mj]IUj[%N","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":487264,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":["magazine-open","magazine-close","slide-open","slide-close"],"boundingBox":{"min":[-0.020746751923503906,0,-0.12679999923706053],"max":[0.020746751923503906,0.21849729422220995,0.12680000066757202]},"sizeMeters":[0.041,0.218,0.254],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:58:42.724Z","updatedAt":"2026-10-25T12:27:18.144Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19441/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ServicePistolWithSlideOpenFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19441/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19441/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19441/v1/model.glb\" alt=\"Service pistol with slide open (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19441/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19441/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19444","slug":"fps-weapon-set-and-firing-range-carbine-stock-removed-f18797db","title":"Carbine with stock removed (FPS Guns and Shooting Range)","summary":"Carbine with stock removed with original detailed construction in metres.","description":"Carbine with stock removed Dimensions 0.07 × 0.26 × 0.71 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-carbine-stock-removed-f18797db","cdnUrl":"https://cdn.3dassets.dev/assets/19444/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-carbine-stock-removed-f18797db","thumbnailUrl":"https://cdn.3dassets.dev/assets/19444/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19444/v1/poster.webp","blurhash":"U34o7wx[4mIA_4RiD%ah9FD$xv-=4mM_?b-=","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":540444,"triangles":11160,"vertices":33480,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.03548446273361319,0,-0.3536251187324524],"max":[0.03548446273361319,0.2604908547554464,0.3536251187324524]},"sizeMeters":[0.071,0.26,0.707],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:43.025Z","updatedAt":"2026-10-12T04:41:10.413Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19444/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CarbineWithStockRemovedFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19444/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19444/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19444/v1/model.glb\" alt=\"Carbine with stock removed (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19444/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19444/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19443","slug":"fps-weapon-set-and-firing-range-red-dot-sight-4fa59203","title":"Red dot sight (FPS Guns and Shooting Range)","summary":"Red dot sight with original detailed construction in metres.","description":"Red dot sight Dimensions 0.05 × 0.08 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-red-dot-sight-4fa59203","cdnUrl":"https://cdn.3dassets.dev/assets/19443/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-red-dot-sight-4fa59203","thumbnailUrl":"https://cdn.3dassets.dev/assets/19443/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19443/v1/poster.webp","blurhash":"U77nXjxu00IU_Nog4mM{M{a|tRjZDioL.8bI","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":60968,"triangles":1256,"vertices":3768,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.02400230541704783,0,-0.027000000700354576],"max":[0.02400230541704783,0.0755000039935112,0.027000000700354576]},"sizeMeters":[0.048,0.076,0.054],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T16:58:42.835Z","updatedAt":"2026-10-05T17:15:28.978Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19443/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RedDotSightFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19443/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19443/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19443/v1/model.glb\" alt=\"Red dot sight (FPS Guns and Shooting Range)\" 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/19443/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/19443/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19445","slug":"fps-weapon-set-and-firing-range-holographic-sight-fb57b146","title":"Holographic sight (FPS Guns and Shooting Range)","summary":"Holographic sight with original detailed construction in metres.","description":"Holographic sight Dimensions 0.05 × 0.08 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-holographic-sight-fb57b146","cdnUrl":"https://cdn.3dassets.dev/assets/19445/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-holographic-sight-fb57b146","thumbnailUrl":"https://cdn.3dassets.dev/assets/19445/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19445/v1/poster.webp","blurhash":"U571p2?b0000_Nxv9ED$D$WB%Mt78_WA?bx]","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":68896,"triangles":1364,"vertices":4092,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.02400230541704783,0,-0.03550000116229057],"max":[0.02400230541704783,0.0755000039935112,0.03550000116229057]},"sizeMeters":[0.048,0.076,0.071],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:45.667Z","updatedAt":"2026-10-06T04:18:02.659Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19445/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolographicSightFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19445/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19445/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19445/v1/model.glb\" alt=\"Holographic sight (FPS Guns and Shooting Range)\" 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/19445/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/19445/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19446","slug":"fps-weapon-set-and-firing-range-four-power-scope-4250b364","title":"Four power scope (FPS Guns and Shooting Range)","summary":"Four power scope with original detailed construction in metres.","description":"Four power scope Dimensions 0.07 × 0.09 × 0.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-four-power-scope-4250b364","cdnUrl":"https://cdn.3dassets.dev/assets/19446/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-power-scope-4250b364","thumbnailUrl":"https://cdn.3dassets.dev/assets/19446/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19446/v1/poster.webp","blurhash":"U57UPH%N00Rh_4IURh%L008_xu-;M_oyWAa#","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":112328,"triangles":2284,"vertices":6852,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.03250001554175605,-0.000002925375983370282,-0.07500000298023224],"max":[0.03250001554175605,0.09049798477997928,0.07500000298023224]},"sizeMeters":[0.065,0.091,0.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":15,"publishedAt":"2026-09-07T16:58:48.981Z","updatedAt":"2026-10-13T03:15:19.433Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19446/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourPowerScopeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19446/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19446/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19446/v1/model.glb\" alt=\"Four power scope (FPS Guns and Shooting Range)\" 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/19446/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/19446/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19448","slug":"fps-weapon-set-and-firing-range-precision-scope-46e1918e","title":"Precision scope (FPS Guns and Shooting Range)","summary":"Precision scope with original detailed construction in metres.","description":"Precision scope Dimensions 0.07 × 0.09 × 0.31 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-precision-scope-46e1918e","cdnUrl":"https://cdn.3dassets.dev/assets/19448/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-precision-scope-46e1918e","thumbnailUrl":"https://cdn.3dassets.dev/assets/19448/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19448/v1/poster.webp","blurhash":"U47BDyof9G%M~q9EIUxu004m-;t84n.8?vaz","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":112292,"triangles":2284,"vertices":6852,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.03700015291416543,-0.000006386382703067739,-0.1550000011920929],"max":[0.03700015291416543,0.0905039809686515,0.1550000011920929]},"sizeMeters":[0.074,0.091,0.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:58:46.279Z","updatedAt":"2026-10-10T22:03:25.174Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19448/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PrecisionScopeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19448/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19448/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19448/v1/model.glb\" alt=\"Precision scope (FPS Guns and Shooting Range)\" 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/19448/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/19448/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19447","slug":"fps-weapon-set-and-firing-range-suppressor-8c7615c0","title":"Suppressor (FPS Guns and Shooting Range)","summary":"Suppressor with original detailed construction in metres.","description":"Suppressor Dimensions 0.05 × 0.05 × 0.19 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-suppressor-8c7615c0","cdnUrl":"https://cdn.3dassets.dev/assets/19447/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-suppressor-8c7615c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19447/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19447/v1/poster.webp","blurhash":"U14V2Xa64nkC?vDjIn-p00Mw%g%M0J%2?HNt","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49012,"triangles":984,"vertices":2952,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.02310414476842611,-0.000004144893595865035,-0.0949999988079071],"max":[0.02310414476842611,0.046204144643256354,0.0949999988079071]},"sizeMeters":[0.046,0.046,0.19],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:46.047Z","updatedAt":"2026-10-06T04:18:24.791Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19447/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SuppressorFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19447/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19447/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19447/v1/model.glb\" alt=\"Suppressor (FPS Guns and Shooting Range)\" 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/19447/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/19447/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19449","slug":"fps-weapon-set-and-firing-range-compensator-38f6b5e4","title":"Compensator (FPS Guns and Shooting Range)","summary":"Compensator with original detailed construction in metres.","description":"Compensator Dimensions 0.03 × 0.03 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-compensator-38f6b5e4","cdnUrl":"https://cdn.3dassets.dev/assets/19449/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-compensator-38f6b5e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19449/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19449/v1/poster.webp","blurhash":"U25r0*xv00D$~qM{D$xa00IT?b-;00NF?b-=","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":39816,"triangles":792,"vertices":2376,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01575000025331974,0,-0.027499999850988388],"max":[0.01575000025331974,0.03150000050663948,0.027499999850988388]},"sizeMeters":[0.032,0.032,0.055],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:58:46.345Z","updatedAt":"2026-10-10T01:36:54.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19449/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompensatorFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19449/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19449/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19449/v1/model.glb\" alt=\"Compensator (FPS Guns and Shooting Range)\" 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/19449/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/19449/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19451","slug":"fps-weapon-set-and-firing-range-flash-hider-0f396ad0","title":"Flash hider (FPS Guns and Shooting Range)","summary":"Flash hider with original detailed construction in metres.","description":"Flash hider Dimensions 0.03 × 0.03 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-flash-hider-0f396ad0","cdnUrl":"https://cdn.3dassets.dev/assets/19451/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-flash-hider-0f396ad0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19451/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19451/v1/poster.webp","blurhash":"U13bjzofITt8~qM_Rixv8_D%ogt84mM{kCoM","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16044,"triangles":312,"vertices":936,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.015001907678985014,-0.0000019080142611409973,-0.028750000521540642],"max":[0.015001907678985014,0.03000190734370889,0.028750000521540642]},"sizeMeters":[0.03,0.03,0.058],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:46.395Z","updatedAt":"2026-10-06T04:18:33.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19451/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlashHiderFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19451/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19451/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19451/v1/model.glb\" alt=\"Flash hider (FPS Guns and Shooting Range)\" 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/19451/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/19451/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19450","slug":"fps-weapon-set-and-firing-range-vertical-foregrip-3d061064","title":"Vertical foregrip (FPS Guns and Shooting Range)","summary":"Vertical foregrip with original detailed construction in metres.","description":"Vertical foregrip Dimensions 0.03 × 0.12 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-vertical-foregrip-3d061064","cdnUrl":"https://cdn.3dassets.dev/assets/19450/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-vertical-foregrip-3d061064","thumbnailUrl":"https://cdn.3dassets.dev/assets/19450/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19450/v1/poster.webp","blurhash":"U85r0*of4mWA_4fR9Ejr?cayD$oe-;RkIUt7","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":245296,"triangles":5072,"vertices":15216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.016500136964485834,0,-0.029999999329447746],"max":[0.016500136964485834,0.12250114636260427,0.029999999329447746]},"sizeMeters":[0.033,0.123,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:46.415Z","updatedAt":"2026-10-06T20:19:26.786Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19450/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VerticalForegripFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19450/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19450/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19450/v1/model.glb\" alt=\"Vertical foregrip (FPS Guns and Shooting Range)\" 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/19450/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/19450/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19452","slug":"fps-weapon-set-and-firing-range-angled-foregrip-8c65065e","title":"Angled foregrip (FPS Guns and Shooting Range)","summary":"Angled foregrip with original detailed construction in metres.","description":"Angled foregrip Dimensions 0.03 × 0.10 × 0.12 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-angled-foregrip-8c65065e","cdnUrl":"https://cdn.3dassets.dev/assets/19452/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-angled-foregrip-8c65065e","thumbnailUrl":"https://cdn.3dassets.dev/assets/19452/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19452/v1/poster.webp","blurhash":"UF7UPGkBD%j[_4WUITof%NM{M{xua#IUWB%M","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":9704,"triangles":164,"vertices":492,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.017001861249056813,-0.000004103592692643321,-0.05999999865889549],"max":[0.017001861249056813,0.09999871859515969,0.05999999865889549]},"sizeMeters":[0.034,0.1,0.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:46.497Z","updatedAt":"2026-10-06T12:32:58.535Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19452/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AngledForegripFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19452/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19452/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19452/v1/model.glb\" alt=\"Angled foregrip (FPS Guns and Shooting Range)\" 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/19452/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/19452/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19453","slug":"fps-weapon-set-and-firing-range-laser-module-2b1f1a47","title":"Laser module (FPS Guns and Shooting Range)","summary":"Laser module with original detailed construction in metres.","description":"Laser module Dimensions 0.04 × 0.04 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-laser-module-2b1f1a47","cdnUrl":"https://cdn.3dassets.dev/assets/19453/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-laser-module-2b1f1a47","thumbnailUrl":"https://cdn.3dassets.dev/assets/19453/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19453/v1/poster.webp","blurhash":"U15hS*=x005;?vofRjRj0157-9^O-pMxD$tR","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":42152,"triangles":824,"vertices":2472,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.022001251082357027,7.82203752717342e-7,-0.03525000065565109],"max":[0.022001251082357027,0.04249864234471797,0.03524983280382146]},"sizeMeters":[0.044,0.042,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:48.996Z","updatedAt":"2026-10-05T20:41:27.719Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19453/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaserModuleFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19453/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19453/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19453/v1/model.glb\" alt=\"Laser module (FPS Guns and Shooting Range)\" 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/19453/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/19453/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19454","slug":"fps-weapon-set-and-firing-range-weapon-flashlight-1fb1f57d","title":"Weapon flashlight (FPS Guns and Shooting Range)","summary":"Weapon flashlight with original detailed construction in metres.","description":"Weapon flashlight Dimensions 0.04 × 0.06 × 0.10 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-weapon-flashlight-1fb1f57d","cdnUrl":"https://cdn.3dassets.dev/assets/19454/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-weapon-flashlight-1fb1f57d","thumbnailUrl":"https://cdn.3dassets.dev/assets/19454/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19454/v1/poster.webp","blurhash":"U15X_h?w00RPWUaxxuMx008^?bog_4M{9F?c","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55832,"triangles":1108,"vertices":3324,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.019997253632129456,7.82203752717342e-7,-0.05000000074505806],"max":[0.019997253632129456,0.06049725375133874,0.05000004541687889]},"sizeMeters":[0.04,0.06,0.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:49.794Z","updatedAt":"2026-10-06T16:47:41.107Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19454/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeaponFlashlightFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19454/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19454/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19454/v1/model.glb\" alt=\"Weapon flashlight (FPS Guns and Shooting Range)\" 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/19454/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/19454/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19457","slug":"fps-weapon-set-and-firing-range-folding-bipod-acb5ce48","title":"Folding bipod (FPS Guns and Shooting Range)","summary":"Folding bipod with original detailed construction in metres.","description":"Folding bipod Dimensions 0.26 × 0.17 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-folding-bipod-acb5ce48","cdnUrl":"https://cdn.3dassets.dev/assets/19457/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-folding-bipod-acb5ce48","thumbnailUrl":"https://cdn.3dassets.dev/assets/19457/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19457/v1/poster.webp","blurhash":"U34_wtIU00?a~qa~00odM{t6RjM{D$WB?bWC","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":57056,"triangles":1092,"vertices":3276,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.1274999976158142,0.000007690828595181484,-0.03749694684526901],"max":[0.1274999976158142,0.16500160551859358,0.037504118749634295]},"sizeMeters":[0.255,0.165,0.075],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:50.140Z","updatedAt":"2026-10-06T03:13:38.389Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19457/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FoldingBipodFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19457/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19457/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19457/v1/model.glb\" alt=\"Folding bipod (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19457/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19457/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19455","slug":"fps-weapon-set-and-firing-range-extended-magazine-dcc61f57","title":"Extended magazine (FPS Guns and Shooting Range)","summary":"Extended magazine with original detailed construction in metres.","description":"Extended magazine Dimensions 0.03 × 0.22 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-extended-magazine-dcc61f57","cdnUrl":"https://cdn.3dassets.dev/assets/19455/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-extended-magazine-dcc61f57","thumbnailUrl":"https://cdn.3dassets.dev/assets/19455/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19455/v1/poster.webp","blurhash":"U02iIX%2004.?wi_DOb^.SsADOJR.Si_DOXm","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":97808,"triangles":2000,"vertices":6000,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01549742044592497,0,-0.029496925055642338],"max":[0.01549742044592497,0.22349999845027924,0.029496925055642338]},"sizeMeters":[0.031,0.223,0.059],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:49.990Z","updatedAt":"2026-10-07T11:00:17.139Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19455/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExtendedMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19455/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19455/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19455/v1/model.glb\" alt=\"Extended magazine (FPS Guns and Shooting Range)\" 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/19455/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/19455/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19458","slug":"fps-weapon-set-and-firing-range-drum-magazine-1be04f58","title":"Drum magazine (FPS Guns and Shooting Range)","summary":"Drum magazine with original detailed construction in metres.","description":"Drum magazine Dimensions 0.13 × 0.18 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-drum-magazine-1be04f58","cdnUrl":"https://cdn.3dassets.dev/assets/19458/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-drum-magazine-1be04f58","thumbnailUrl":"https://cdn.3dassets.dev/assets/19458/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19458/v1/poster.webp","blurhash":"U03bjy%M004nIUt7t7Rj00D%~q_3~qxv4nD$","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":14548,"triangles":300,"vertices":900,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06499999761581421,0,-0.02524824257261664],"max":[0.06499999761581421,0.17999999225139618,0.025252518283708766]},"sizeMeters":[0.13,0.18,0.051],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:52.259Z","updatedAt":"2026-10-06T04:21:06.248Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19458/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrumMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19458/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19458/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19458/v1/model.glb\" alt=\"Drum magazine (FPS Guns and Shooting Range)\" 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/19458/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/19458/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19456","slug":"fps-weapon-set-and-firing-range-telescopic-stock-da88bb89","title":"Telescopic stock (FPS Guns and Shooting Range)","summary":"Telescopic stock with original detailed construction in metres.","description":"Telescopic stock Dimensions 0.05 × 0.14 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-telescopic-stock-da88bb89","cdnUrl":"https://cdn.3dassets.dev/assets/19456/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-telescopic-stock-da88bb89","thumbnailUrl":"https://cdn.3dassets.dev/assets/19456/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19456/v1/poster.webp","blurhash":"U96ked%MDiRj_4t7D%f6RPIUM{xu9FITt8xv","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12744,"triangles":324,"vertices":972,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.023997009288238013,0,-0.09999786732318101],"max":[0.023997009288238013,0.14000000059604645,0.10000000149011612]},"sizeMeters":[0.048,0.14,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:58:50.033Z","updatedAt":"2026-10-06T16:47:46.902Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19456/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TelescopicStockFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19456/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19456/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19456/v1/model.glb\" alt=\"Telescopic stock (FPS Guns and Shooting Range)\" 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/19456/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/19456/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19459","slug":"fps-weapon-set-and-firing-range-skeleton-stock-cbcbaa73","title":"Skeleton stock (FPS Guns and Shooting Range)","summary":"Skeleton stock with original detailed construction in metres.","description":"Skeleton stock Dimensions 0.05 × 0.14 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-skeleton-stock-cbcbaa73","cdnUrl":"https://cdn.3dassets.dev/assets/19459/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-skeleton-stock-cbcbaa73","thumbnailUrl":"https://cdn.3dassets.dev/assets/19459/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19459/v1/poster.webp","blurhash":"U871sA%M8_Rj_Nt7D%jZIUIUV@xv9FIAof%M","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30624,"triangles":600,"vertices":1800,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.023997009288238013,0,-0.09999786732318101],"max":[0.023997009288238013,0.14000000059604645,0.10000000149011612]},"sizeMeters":[0.048,0.14,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":5,"publishedAt":"2026-09-07T16:58:50.343Z","updatedAt":"2026-10-06T16:47:49.163Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19459/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SkeletonStockFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19459/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19459/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19459/v1/model.glb\" alt=\"Skeleton stock (FPS Guns and Shooting Range)\" 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/19459/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/19459/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19460","slug":"fps-weapon-set-and-firing-range-replacement-grip-2d83c2ba","title":"Replacement grip (FPS Guns and Shooting Range)","summary":"Replacement grip with original detailed construction in metres.","description":"Replacement grip Dimensions 0.03 × 0.12 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-replacement-grip-2d83c2ba","cdnUrl":"https://cdn.3dassets.dev/assets/19460/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-replacement-grip-2d83c2ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/19460/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19460/v1/poster.webp","blurhash":"U75OTxxu4nIU_Nxu9FM_-=ofITRjxtWBM{t7","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":245308,"triangles":5072,"vertices":15216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.016500136964485834,0,-0.03990555559181669],"max":[0.016500136964485834,0.12250114636260427,0.03990362212061882]},"sizeMeters":[0.033,0.123,0.08],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:53.409Z","updatedAt":"2026-10-05T21:28:25.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19460/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReplacementGripFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19460/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19460/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19460/v1/model.glb\" alt=\"Replacement grip (FPS Guns and Shooting Range)\" 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/19460/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/19460/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19461","slug":"fps-weapon-set-and-firing-range-woven-sling-b39bb00f","title":"Woven sling (FPS Guns and Shooting Range)","summary":"Woven sling with original detailed construction in metres.","description":"Woven sling Dimensions 0.34 × 0.04 × 0.38 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-woven-sling-b39bb00f","cdnUrl":"https://cdn.3dassets.dev/assets/19461/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-woven-sling-b39bb00f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19461/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19461/v1/poster.webp","blurhash":"U268Ns%L00M_%MW-W-jZ00M}~pn-D$s=V[R*","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":49012,"triangles":984,"vertices":2952,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.17202583268941019,0.00000195341179562436,-0.18971192630413566],"max":[0.17202583268941019,0.03922938046982097,0.1897093951702118]},"sizeMeters":[0.344,0.039,0.379],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:58:52.515Z","updatedAt":"2026-10-10T01:37:03.702Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19461/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WovenSlingFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19461/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19461/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19461/v1/model.glb\" alt=\"Woven sling (FPS Guns and Shooting Range)\" 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/19461/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/19461/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19462","slug":"fps-weapon-set-and-firing-range-pistol-magazine-38e358a2","title":"Pistol magazine (FPS Guns and Shooting Range)","summary":"Pistol magazine with original detailed construction in metres.","description":"Pistol magazine Dimensions 0.03 × 0.10 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pistol-magazine-38e358a2","cdnUrl":"https://cdn.3dassets.dev/assets/19462/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pistol-magazine-38e358a2","thumbnailUrl":"https://cdn.3dassets.dev/assets/19462/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19462/v1/poster.webp","blurhash":"U038;k_30000_3WA9EofofRjM{t7-;WBD%of","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":70916,"triangles":1440,"vertices":4320,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.015499527489479241,0,-0.02949877745888655],"max":[0.015499527489479241,0.10349999368190765,0.02949877745888655]},"sizeMeters":[0.031,0.103,0.059],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:53.339Z","updatedAt":"2026-10-06T04:18:25.077Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19462/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PistolMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19462/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19462/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19462/v1/model.glb\" alt=\"Pistol magazine (FPS Guns and Shooting Range)\" 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/19462/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/19462/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19463","slug":"fps-weapon-set-and-firing-range-revolver-speedloader-373e96db","title":"Revolver speedloader (FPS Guns and Shooting Range)","summary":"Revolver speedloader with original detailed construction in metres.","description":"Revolver speedloader Dimensions 0.06 × 0.04 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-revolver-speedloader-373e96db","cdnUrl":"https://cdn.3dassets.dev/assets/19463/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-revolver-speedloader-373e96db","thumbnailUrl":"https://cdn.3dassets.dev/assets/19463/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19463/v1/poster.webp","blurhash":"U87-G{kD02jY~UbI9aocE2f6xZj?9bjZ%1a|","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":34056,"triangles":672,"vertices":2016,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.02800000086426735,-0.0000010682558980457113,-0.02800000086426735],"max":[0.02800000086426735,0.03900025949233349,0.02800000086426735]},"sizeMeters":[0.056,0.039,0.056],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:53.466Z","updatedAt":"2026-10-06T16:09:35.155Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19463/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RevolverSpeedloaderFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19463/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19463/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19463/v1/model.glb\" alt=\"Revolver speedloader (FPS Guns and Shooting Range)\" 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/19463/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/19463/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19464","slug":"fps-weapon-set-and-firing-range-smg-magazine-bba3d184","title":"SMG magazine (FPS Guns and Shooting Range)","summary":"SMG magazine with original detailed construction in metres.","description":"SMG magazine Dimensions 0.03 × 0.22 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-smg-magazine-bba3d184","cdnUrl":"https://cdn.3dassets.dev/assets/19464/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smg-magazine-bba3d184","thumbnailUrl":"https://cdn.3dassets.dev/assets/19464/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19464/v1/poster.webp","blurhash":"U02FfC%M004n%MR*IUxaofWBRjt7-;oeIAR*","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":97800,"triangles":2000,"vertices":6000,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01549742044592497,0,-0.03427154583005548],"max":[0.01549742044592497,0.22349999845027924,0.03427154583005548]},"sizeMeters":[0.031,0.223,0.069],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:53.681Z","updatedAt":"2026-10-06T04:14:07.550Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19464/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SMGMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19464/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19464/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19464/v1/model.glb\" alt=\"SMG magazine (FPS Guns and Shooting Range)\" 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/19464/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/19464/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19467","slug":"fps-weapon-set-and-firing-range-pdw-magazine-88668017","title":"PDW magazine (FPS Guns and Shooting Range)","summary":"PDW magazine with original detailed construction in metres.","description":"PDW magazine Dimensions 0.03 × 0.16 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pdw-magazine-88668017","cdnUrl":"https://cdn.3dassets.dev/assets/19467/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pdw-magazine-88668017","thumbnailUrl":"https://cdn.3dassets.dev/assets/19467/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19467/v1/poster.webp","blurhash":"U02=+N_30000?vWB9FofoeM{IUxu.8WBD%t7","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":84340,"triangles":1720,"vertices":5160,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01550145036547946,0,-0.036996698853013994],"max":[0.01550145036547946,0.16350001096725464,0.036996698853013994]},"sizeMeters":[0.031,0.164,0.074],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:53.837Z","updatedAt":"2026-10-06T16:47:30.070Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19467/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PDWMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19467/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19467/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19467/v1/model.glb\" alt=\"PDW magazine (FPS Guns and Shooting Range)\" 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/19467/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/19467/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19468","slug":"fps-weapon-set-and-firing-range-carbine-magazine-40651fe8","title":"Carbine magazine (FPS Guns and Shooting Range)","summary":"Carbine magazine with original detailed construction in metres.","description":"Carbine magazine Dimensions 0.03 × 0.17 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-carbine-magazine-40651fe8","cdnUrl":"https://cdn.3dassets.dev/assets/19468/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-carbine-magazine-40651fe8","thumbnailUrl":"https://cdn.3dassets.dev/assets/19468/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19468/v1/poster.webp","blurhash":"U02iCI%M008_%NM{IA-;RjM{of%M-;a#IUof","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":87072,"triangles":1776,"vertices":5328,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.015499070876860333,0,-0.04080562031996328],"max":[0.015499070876860333,0.17350000143051147,0.04080562031996328]},"sizeMeters":[0.031,0.174,0.082],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:58:53.860Z","updatedAt":"2026-10-12T07:22:19.189Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19468/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarbineMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19468/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19468/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19468/v1/model.glb\" alt=\"Carbine magazine (FPS Guns and Shooting Range)\" 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/19468/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/19468/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19475","slug":"fps-weapon-set-and-firing-range-battle-rifle-magazine-dc361243","title":"Battle rifle magazine (FPS Guns and Shooting Range)","summary":"Battle rifle magazine with original detailed construction in metres.","description":"Battle rifle magazine Dimensions 0.04 × 0.14 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-battle-rifle-magazine-dc361243","cdnUrl":"https://cdn.3dassets.dev/assets/19475/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-battle-rifle-magazine-dc361243","thumbnailUrl":"https://cdn.3dassets.dev/assets/19475/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19475/v1/poster.webp","blurhash":"U03IbS%g004n~qWA00s;?bR%9Ft8~qWB4nt7","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":79016,"triangles":1608,"vertices":4824,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01900005343895929,0,-0.02950186930772139],"max":[0.01900005343895929,0.14350000023841858,0.02950186930772139]},"sizeMeters":[0.038,0.144,0.059],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:58:56.688Z","updatedAt":"2026-10-13T11:03:19.387Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19475/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BattleRifleMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19475/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19475/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19475/v1/model.glb\" alt=\"Battle rifle magazine (FPS Guns and Shooting Range)\" 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/19475/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/19475/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19476","slug":"fps-weapon-set-and-firing-range-dmr-magazine-e7d9624b","title":"DMR magazine (FPS Guns and Shooting Range)","summary":"DMR magazine with original detailed construction in metres.","description":"DMR magazine Dimensions 0.03 × 0.12 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-dmr-magazine-e7d9624b","cdnUrl":"https://cdn.3dassets.dev/assets/19476/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dmr-magazine-e7d9624b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19476/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19476/v1/poster.webp","blurhash":"U02$Ko-;004n-;RjD$xuxua#RPs:-;RjIUxu","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":76300,"triangles":1552,"vertices":4656,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01700023610000353,0,-0.02949835890404116],"max":[0.01700023610000353,0.12349999696016312,0.02949835890404116]},"sizeMeters":[0.034,0.123,0.059],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:55.779Z","updatedAt":"2026-10-06T16:47:30.890Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19476/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DMRMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19476/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19476/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19476/v1/model.glb\" alt=\"DMR magazine (FPS Guns and Shooting Range)\" 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/19476/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/19476/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19477","slug":"fps-weapon-set-and-firing-range-sniper-magazine-9b706edf","title":"Sniper magazine (FPS Guns and Shooting Range)","summary":"Sniper magazine with original detailed construction in metres.","description":"Sniper magazine Dimensions 0.03 × 0.08 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-sniper-magazine-9b706edf","cdnUrl":"https://cdn.3dassets.dev/assets/19477/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-sniper-magazine-9b706edf","thumbnailUrl":"https://cdn.3dassets.dev/assets/19477/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19477/v1/poster.webp","blurhash":"U03l8X_30000~qWA00kDxvWAIUog-;M_IU%N","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":65548,"triangles":1328,"vertices":3984,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.015499527489479241,0,-0.039502402317495945],"max":[0.015499527489479241,0.08349999785423279,0.039502402317495945]},"sizeMeters":[0.031,0.083,0.079],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:58:56.648Z","updatedAt":"2026-10-06T16:47:31.279Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19477/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SniperMagazineFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19477/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19477/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19477/v1/model.glb\" alt=\"Sniper magazine (FPS Guns and Shooting Range)\" 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/19477/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/19477/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19478","slug":"fps-weapon-set-and-firing-range-shotgun-shell-carrier-858daaa0","title":"Shotgun shell carrier (FPS Guns and Shooting Range)","summary":"Shotgun shell carrier with original detailed construction in metres.","description":"Shotgun shell carrier Dimensions 0.16 × 0.06 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-shotgun-shell-carrier-858daaa0","cdnUrl":"https://cdn.3dassets.dev/assets/19478/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shotgun-shell-carrier-858daaa0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19478/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19478/v1/poster.webp","blurhash":"U9B.fM}n9b=a=y^N$fM}05Ek=^I;9]13Ej$|","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":41168,"triangles":876,"vertices":2628,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.07999999821186066,-0.0000033570359673253114,-0.018000228463201536],"max":[0.07999999821186066,0.06199954274541823,0.017995163021330023]},"sizeMeters":[0.16,0.062,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:58:56.882Z","updatedAt":"2026-10-25T14:30:04.201Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19478/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotgunShellCarrierFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19478/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19478/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19478/v1/model.glb\" alt=\"Shotgun shell carrier (FPS Guns and Shooting Range)\" 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/19478/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/19478/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19479","slug":"fps-weapon-set-and-firing-range-lmg-belt-box-8f48722a","title":"LMG belt box (FPS Guns and Shooting Range)","summary":"LMG belt box with original detailed construction in metres.","description":"LMG belt box Dimensions 0.22 × 0.17 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-lmg-belt-box-8f48722a","cdnUrl":"https://cdn.3dassets.dev/assets/19479/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lmg-belt-box-8f48722a","thumbnailUrl":"https://cdn.3dassets.dev/assets/19479/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19479/v1/poster.webp","blurhash":"U3A15~8}00n%~V?a9Z4V00-..7oy02Rj-:XR","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":111092,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.10999999940395355,-0.0000010661158493449618,-0.08763339507855433],"max":[0.10999999940395355,0.17300288617259857,0.0876267289459568]},"sizeMeters":[0.22,0.173,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:58.145Z","updatedAt":"2026-10-10T19:44:06.950Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19479/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LMGBeltBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19479/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19479/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19479/v1/model.glb\" alt=\"LMG belt box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19479/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19479/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19480","slug":"fps-weapon-set-and-firing-range-launcher-round-case-b2aca6bb","title":"Launcher round case (FPS Guns and Shooting Range)","summary":"Launcher round case with original detailed construction in metres.","description":"Launcher round case Dimensions 0.48 × 0.20 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-launcher-round-case-b2aca6bb","cdnUrl":"https://cdn.3dassets.dev/assets/19480/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-launcher-round-case-b2aca6bb","thumbnailUrl":"https://cdn.3dassets.dev/assets/19480/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19480/v1/poster.webp","blurhash":"U9EVf=W=00xa-:~VM|9G00s:^*Io9Z0M%1-:","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":102024,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.23999999463558197,-0.000009155552638154263,-0.08761691415234098],"max":[0.23999999463558197,0.20300410071062563,0.08763191644822563]},"sizeMeters":[0.48,0.203,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:58:57.193Z","updatedAt":"2026-10-25T13:13:04.540Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19480/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LauncherRoundCaseFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19480/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19480/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19480/v1/model.glb\" alt=\"Launcher round case (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19480/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19480/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19481","slug":"fps-weapon-set-and-firing-range-pistol-ammo-box-e3b9201d","title":"Pistol ammo box (FPS Guns and Shooting Range)","summary":"Pistol ammo box with original detailed construction in metres.","description":"Pistol ammo box Dimensions 0.15 × 0.17 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pistol-ammo-box-e3b9201d","cdnUrl":"https://cdn.3dassets.dev/assets/19481/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pistol-ammo-box-e3b9201d","thumbnailUrl":"https://cdn.3dassets.dev/assets/19481/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19481/v1/poster.webp","blurhash":"U5D]PB0000nf-.^*D+4:00~V_2x^4o9Z^+xa","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":101952,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.07500000298023224,-0.000004119998942973824,-0.08762698867521555],"max":[0.07500000298023224,0.1730020314565994,0.08762500435113907]},"sizeMeters":[0.15,0.173,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:57.311Z","updatedAt":"2026-10-10T19:45:10.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19481/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PistolAmmoBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19481/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19481/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19481/v1/model.glb\" alt=\"Pistol ammo box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19481/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19481/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19483","slug":"fps-weapon-set-and-firing-range-intermediate-ammo-box-14840d01","title":"Intermediate ammo box (FPS Guns and Shooting Range)","summary":"Intermediate ammo box with original detailed construction in metres.","description":"Intermediate ammo box Dimensions 0.15 × 0.19 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-intermediate-ammo-box-14840d01","cdnUrl":"https://cdn.3dassets.dev/assets/19483/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-intermediate-ammo-box-14840d01","thumbnailUrl":"https://cdn.3dassets.dev/assets/19483/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19483/v1/poster.webp","blurhash":"U5E2,x0200=_-:-pIV9a00-.~pn+4.V]-:xt","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":102028,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.07500000298023224,-0.0000019861867216336426,-0.08762698867521555],"max":[0.07500000298023224,0.19300203473485486,0.08762500435113907]},"sizeMeters":[0.15,0.193,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:57.365Z","updatedAt":"2026-10-10T19:43:44.665Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19483/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function IntermediateAmmoBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19483/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19483/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19483/v1/model.glb\" alt=\"Intermediate ammo box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19483/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19483/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19486","slug":"fps-weapon-set-and-firing-range-full-power-ammo-box-a1dcf7e3","title":"Full-power ammo box (FPS Guns and Shooting Range)","summary":"Full-power ammo box with original detailed construction in metres.","description":"Full-power ammo box Dimensions 0.15 × 0.21 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-full-power-ammo-box-a1dcf7e3","cdnUrl":"https://cdn.3dassets.dev/assets/19486/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-full-power-ammo-box-a1dcf7e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/19486/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19486/v1/poster.webp","blurhash":"U5D]M10f00-mxa-.Si4o00%2~poz4nai-:s:","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":102000,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.07500000298023224,-0.000002141262801944044,-0.08762698867521555],"max":[0.07500000298023224,0.21300203056252973,0.08762500435113907]},"sizeMeters":[0.15,0.213,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:00.195Z","updatedAt":"2026-10-10T17:41:19.495Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19486/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FullPowerAmmoBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19486/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19486/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19486/v1/model.glb\" alt=\"Full-power ammo box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19486/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19486/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19487","slug":"fps-weapon-set-and-firing-range-precision-ammo-box-15eb02e4","title":"Precision ammo box (FPS Guns and Shooting Range)","summary":"Precision ammo box with original detailed construction in metres.","description":"Precision ammo box Dimensions 0.15 × 0.23 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-precision-ammo-box-15eb02e4","cdnUrl":"https://cdn.3dassets.dev/assets/19487/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-precision-ammo-box-15eb02e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19487/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19487/v1/poster.webp","blurhash":"U5D]M00400-Aoz%KWGE100^}~WocD$V{-oS5","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":101988,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.07500000298023224,0,-0.08762698867521555],"max":[0.07500000298023224,0.2330020338407852,0.08762500435113907]},"sizeMeters":[0.15,0.233,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:58:59.983Z","updatedAt":"2026-10-10T19:44:54.210Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19487/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PrecisionAmmoBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19487/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19487/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19487/v1/model.glb\" alt=\"Precision ammo box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19487/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19487/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19488","slug":"fps-weapon-set-and-firing-range-shotgun-shell-box-d98dc4b0","title":"Shotgun shell box (FPS Guns and Shooting Range)","summary":"Shotgun shell box with original detailed construction in metres.","description":"Shotgun shell box Dimensions 0.15 × 0.16 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-shotgun-shell-box-d98dc4b0","cdnUrl":"https://cdn.3dassets.dev/assets/19488/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shotgun-shell-box-d98dc4b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19488/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19488/v1/poster.webp","blurhash":"U7Eoe^0200-S~B%L9y9G00-.%NkD4.jcxtxu","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":87940,"triangles":1612,"vertices":4836,"meshes":5,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.07500000298023224,-0.000004119998942973824,-0.08762698867521555],"max":[0.07500000298023224,0.1599968094814712,0.08762500435113907]},"sizeMeters":[0.15,0.16,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:58:59.993Z","updatedAt":"2026-10-10T19:44:24.015Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19488/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ShotgunShellBoxFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19488/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19488/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19488/v1/model.glb\" alt=\"Shotgun shell box (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19488/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19488/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19489","slug":"fps-weapon-set-and-firing-range-fragmentation-grenade-ca6b2562","title":"Fragmentation grenade (FPS Guns and Shooting Range)","summary":"Fragmentation grenade with original detailed construction in metres.","description":"Fragmentation grenade Dimensions 0.08 × 0.11 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-fragmentation-grenade-ca6b2562","cdnUrl":"https://cdn.3dassets.dev/assets/19489/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-fragmentation-grenade-ca6b2562","thumbnailUrl":"https://cdn.3dassets.dev/assets/19489/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19489/v1/poster.webp","blurhash":"U35E,1xu00IU~qt74nRjIARjt8xu4nM{-=%M","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":96896,"triangles":1964,"vertices":5892,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.03799999877810478,0,-0.04399999976158142],"max":[0.03799999877810478,0.10999786257609681,0.04399999976158142]},"sizeMeters":[0.076,0.11,0.088],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:00.143Z","updatedAt":"2026-10-05T20:40:29.661Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19489/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FragmentationGrenadeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19489/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19489/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19489/v1/model.glb\" alt=\"Fragmentation grenade (FPS Guns and Shooting Range)\" 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/19489/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/19489/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19490","slug":"fps-weapon-set-and-firing-range-smoke-grenade-fea9f379","title":"Smoke grenade (FPS Guns and Shooting Range)","summary":"Smoke grenade with original detailed construction in metres.","description":"Smoke grenade Dimensions 0.06 × 0.15 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-smoke-grenade-fea9f379","cdnUrl":"https://cdn.3dassets.dev/assets/19490/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smoke-grenade-fea9f379","thumbnailUrl":"https://cdn.3dassets.dev/assets/19490/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19490/v1/poster.webp","blurhash":"U47ndlk800RW_4R*9Ext4XWC?Yt7M|jZt6f*","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":45896,"triangles":812,"vertices":2436,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.029499693977732565,0,-0.03899969460358134],"max":[0.02950026748186515,0.14999786540731744,0.039000000804662704]},"sizeMeters":[0.059,0.15,0.078],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:00.448Z","updatedAt":"2026-10-06T04:17:52.958Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19490/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmokeGrenadeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19490/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19490/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19490/v1/model.glb\" alt=\"Smoke grenade (FPS Guns and Shooting Range)\" 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/19490/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/19490/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19492","slug":"fps-weapon-set-and-firing-range-flash-grenade-6663588b","title":"Flash grenade (FPS Guns and Shooting Range)","summary":"Flash grenade with original detailed construction in metres.","description":"Flash grenade Dimensions 0.06 × 0.15 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-flash-grenade-6663588b","cdnUrl":"https://cdn.3dassets.dev/assets/19492/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-flash-grenade-6663588b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19492/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19492/v1/poster.webp","blurhash":"U27d,$M{00-q_4V@4-tRIpa|nhoMIUj[x[kC","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":40028,"triangles":812,"vertices":2436,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.02950148131999308,0,-0.03899807888354737],"max":[0.02950148131999308,0.15000000596046448,0.03899807888354737]},"sizeMeters":[0.059,0.15,0.078],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:00.896Z","updatedAt":"2026-10-06T04:17:54.032Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19492/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlashGrenadeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19492/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19492/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19492/v1/model.glb\" alt=\"Flash grenade (FPS Guns and Shooting Range)\" 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/19492/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/19492/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19491","slug":"fps-weapon-set-and-firing-range-lane-booth-81401825","title":"Lane booth (FPS Guns and Shooting Range)","summary":"Lane booth with original detailed construction in metres.","description":"Lane booth Dimensions 1.40 × 2.24 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-lane-booth-81401825","cdnUrl":"https://cdn.3dassets.dev/assets/19491/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lane-booth-81401825","thumbnailUrl":"https://cdn.3dassets.dev/assets/19491/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19491/v1/poster.webp","blurhash":"UGC~^@t84:oJ_Nt7DiR+TKazDhV@xuofNGRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":230088,"triangles":4568,"vertices":13704,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6999530044405169,1.1175860237244706e-10,-0.6500491375353917],"max":[0.6999530044405169,2.240000009536743,0.6500491375353917]},"sizeMeters":[1.4,2.24,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:00.674Z","updatedAt":"2026-10-06T08:33:54.155Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19491/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneBoothFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19491/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19491/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19491/v1/model.glb\" alt=\"Lane booth (FPS Guns and Shooting Range)\" 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/19491/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/19491/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19493","slug":"fps-weapon-set-and-firing-range-lane-divider-79c8ff39","title":"Lane divider (FPS Guns and Shooting Range)","summary":"Lane divider with original detailed construction in metres.","description":"Lane divider Dimensions 1.38 × 1.85 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-lane-divider-79c8ff39","cdnUrl":"https://cdn.3dassets.dev/assets/19493/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lane-divider-79c8ff39","thumbnailUrl":"https://cdn.3dassets.dev/assets/19493/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19493/v1/poster.webp","blurhash":"U3A]Z:#h00Bs#%^j9Z0M3EI@{ev~x]-;My8{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":142168,"triangles":2776,"vertices":8328,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.6920178414768334,-7.450584593726717e-11,-0.249965951474753],"max":[0.6920178414768334,1.851199984550476,0.249965951474753]},"sizeMeters":[1.384,1.851,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:01.478Z","updatedAt":"2026-10-25T14:20:39.283Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19493/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneDividerFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19493/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19493/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19493/v1/model.glb\" alt=\"Lane divider (FPS Guns and Shooting Range)\" 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/19493/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/19493/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19495","slug":"fps-weapon-set-and-firing-range-bench-rest-927c5d39","title":"Bench rest (FPS Guns and Shooting Range)","summary":"Bench rest with original detailed construction in metres.","description":"Bench rest Dimensions 1.50 × 0.92 × 0.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-bench-rest-927c5d39","cdnUrl":"https://cdn.3dassets.dev/assets/19495/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bench-rest-927c5d39","thumbnailUrl":"https://cdn.3dassets.dev/assets/19495/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19495/v1/poster.webp","blurhash":"U5B3mIaw9|~qUu~WE24n00H?8_IoGaD%~V%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":341112,"triangles":6596,"vertices":19788,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.75,0.000008335028828965196,-0.40005188146610926],"max":[0.75,0.9171002204325156,0.40005188146610926]},"sizeMeters":[1.5,0.917,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:03.538Z","updatedAt":"2026-10-13T11:27:11.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19495/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchRestFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19495/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19495/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19495/v1/model.glb\" alt=\"Bench rest (FPS Guns and Shooting Range)\" 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/19495/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/19495/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19494","slug":"fps-weapon-set-and-firing-range-target-carrier-rail-51dffb77","title":"Target carrier rail (FPS Guns and Shooting Range)","summary":"Target carrier rail with original detailed construction in metres.","description":"Target carrier rail Dimensions 0.14 × 2.20 × 5.10 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-target-carrier-rail-51dffb77","cdnUrl":"https://cdn.3dassets.dev/assets/19494/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-target-carrier-rail-51dffb77","thumbnailUrl":"https://cdn.3dassets.dev/assets/19494/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19494/v1/poster.webp","blurhash":"U77_1fkB?bt7_N9FIUIUIUIUMxx]9FRixu%g","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":114148,"triangles":2272,"vertices":6816,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.0700042753730465,0.00006834336696637244,-2.5480000972747803],"max":[0.0700042753730465,2.200000047683716,2.5480000972747803]},"sizeMeters":[0.14,2.2,5.096],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:03.510Z","updatedAt":"2026-10-06T08:33:54.310Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19494/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TargetCarrierRailFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19494/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19494/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19494/v1/model.glb\" alt=\"Target carrier rail (FPS Guns and Shooting Range)\" 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/19494/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/19494/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19497","slug":"fps-weapon-set-and-firing-range-paper-target-frame-89407822","title":"Paper target frame (FPS Guns and Shooting Range)","summary":"Paper target frame with original detailed construction in metres.","description":"Paper target frame Dimensions 0.68 × 1.70 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-paper-target-frame-89407822","cdnUrl":"https://cdn.3dassets.dev/assets/19497/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-paper-target-frame-89407822","thumbnailUrl":"https://cdn.3dassets.dev/assets/19497/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19497/v1/poster.webp","blurhash":"U4AJ{1%M004o^+t601IUIVay%Lay0Kof~pae","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":182268,"triangles":3652,"vertices":10956,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.34202857493350247,-7.450584593726717e-11,-0.2499908514701679],"max":[0.34202857493350247,1.7000000476837158,0.2499908514701679]},"sizeMeters":[0.684,1.7,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:03.808Z","updatedAt":"2026-10-06T08:33:54.321Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19497/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PaperTargetFrameFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19497/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19497/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19497/v1/model.glb\" alt=\"Paper target frame (FPS Guns and Shooting Range)\" 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/19497/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/19497/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19496","slug":"fps-weapon-set-and-firing-range-steel-popper-7447d855","title":"Steel popper (FPS Guns and Shooting Range)","summary":"Steel popper with original detailed construction in metres.","description":"Steel popper Dimensions 0.30 × 0.86 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips trigger work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-steel-popper-7447d855","cdnUrl":"https://cdn.3dassets.dev/assets/19496/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-steel-popper-7447d855","thumbnailUrl":"https://cdn.3dassets.dev/assets/19496/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19496/v1/poster.webp","blurhash":"UBAcoA]~9YS$F#4;V@-p01E2-;xu]y~BtRE1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":16768,"triangles":236,"vertices":708,"meshes":3,"materials":3,"textures":1,"animations":["trigger"],"boundingBox":{"min":[-0.1500137333292642,0.000010376069704415292,-0.25],"max":[0.1500137333292642,0.8600000071525573,0.25]},"sizeMeters":[0.3,0.86,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:03.710Z","updatedAt":"2026-10-07T02:43:55.813Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19496/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SteelPopperFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19496/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19496/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19496/v1/model.glb\" alt=\"Steel popper (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19496/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19496/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19500","slug":"fps-weapon-set-and-firing-range-plate-rack-ea308d85","title":"Plate rack (FPS Guns and Shooting Range)","summary":"Plate rack with original detailed construction in metres.","description":"Plate rack Dimensions 2.28 × 1.15 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-plate-rack-ea308d85","cdnUrl":"https://cdn.3dassets.dev/assets/19500/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-plate-rack-ea308d85","thumbnailUrl":"https://cdn.3dassets.dev/assets/19500/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19500/v1/poster.webp","blurhash":"UABM_Qj]Rjx[~q_39FM{4nxuof9F00%M?vM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":147208,"triangles":2860,"vertices":8580,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.1419999599456787,2.2429191381956315e-7,-0.24995952368939506],"max":[1.1419999599456787,1.149978932845355,0.24995952368939506]},"sizeMeters":[2.284,1.15,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:06.468Z","updatedAt":"2026-10-25T13:44:41.243Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19500/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlateRackFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19500/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19500/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19500/v1/model.glb\" alt=\"Plate rack (FPS Guns and Shooting Range)\" 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/19500/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/19500/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19498","slug":"fps-weapon-set-and-firing-range-dueling-tree-58f7dcac","title":"Dueling tree (FPS Guns and Shooting Range)","summary":"Dueling tree with original detailed construction in metres.","description":"Dueling tree Dimensions 0.68 × 1.65 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-dueling-tree-58f7dcac","cdnUrl":"https://cdn.3dassets.dev/assets/19498/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dueling-tree-58f7dcac","thumbnailUrl":"https://cdn.3dassets.dev/assets/19498/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19498/v1/poster.webp","blurhash":"U08XLS%M004n00?vOX00.7V@j0tS8wbH?vV?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":170120,"triangles":3508,"vertices":10524,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3400143436994537,-7.450584593726717e-11,-0.2499900778834492],"max":[0.3400143436994537,1.649999976158142,0.2499900778834492]},"sizeMeters":[0.68,1.65,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:04.173Z","updatedAt":"2026-10-07T02:43:55.282Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19498/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DuelingTreeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19498/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19498/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19498/v1/model.glb\" alt=\"Dueling tree (FPS Guns and Shooting Range)\" 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/19498/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/19498/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19499","slug":"fps-weapon-set-and-firing-range-silhouette-target-69632afb","title":"Silhouette target (FPS Guns and Shooting Range)","summary":"Silhouette target with original detailed construction in metres.","description":"Silhouette target Dimensions 0.68 × 1.70 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-silhouette-target-69632afb","cdnUrl":"https://cdn.3dassets.dev/assets/19499/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-silhouette-target-69632afb","thumbnailUrl":"https://cdn.3dassets.dev/assets/19499/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19499/v1/poster.webp","blurhash":"U28|*D-:004:mjoHElNL.TfRHrR%t.xvrCIA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":125140,"triangles":2420,"vertices":7260,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.34202857493350247,-7.450584593726717e-11,-0.2499908514701679],"max":[0.34202857493350247,1.7000000476837158,0.2499908514701679]},"sizeMeters":[0.684,1.7,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:04.389Z","updatedAt":"2026-10-06T08:33:54.285Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19499/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SilhouetteTargetFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19499/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19499/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19499/v1/model.glb\" alt=\"Silhouette target (FPS Guns and Shooting Range)\" 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/19499/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/19499/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19501","slug":"fps-weapon-set-and-firing-range-moving-target-track-6b1982a4","title":"Moving target track (FPS Guns and Shooting Range)","summary":"Moving target track with original detailed construction in metres.","description":"Moving target track Dimensions 0.58 × 1.30 × 4.10 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-moving-target-track-6b1982a4","cdnUrl":"https://cdn.3dassets.dev/assets/19501/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-moving-target-track-6b1982a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19501/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19501/v1/poster.webp","blurhash":"U78z=Ot700M{M{IUIoof00%M~qayRk-;-:Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":226988,"triangles":4664,"vertices":13992,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.29200892527444605,-0.00008081771079671007,-2.0480000972747803],"max":[0.29200892527444605,1.2999999523162842,2.0480000972747803]},"sizeMeters":[0.584,1.3,4.096],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:05.020Z","updatedAt":"2026-10-12T00:33:26.702Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19501/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MovingTargetTrackFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19501/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19501/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19501/v1/model.glb\" alt=\"Moving target track (FPS Guns and Shooting Range)\" 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/19501/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/19501/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19504","slug":"fps-weapon-set-and-firing-range-earth-berm-e0cbf1cc","title":"Earth berm (FPS Guns and Shooting Range)","summary":"Earth berm with original detailed construction in metres.","description":"Earth berm Dimensions 4.00 × 2.00 × 2.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-earth-berm-e0cbf1cc","cdnUrl":"https://cdn.3dassets.dev/assets/19504/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-earth-berm-e0cbf1cc","thumbnailUrl":"https://cdn.3dassets.dev/assets/19504/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19504/v1/poster.webp","blurhash":"UDFFpj~q00M{IU-;%MM{00D%%MWBxuM{t7Rj","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":46100,"triangles":660,"vertices":1980,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.00015259254737998162,-1.2001098666341137],"max":[2,2.00015259254738,1.2001098666341137]},"sizeMeters":[4,2,2.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:07.153Z","updatedAt":"2026-10-06T23:23:40.886Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19504/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EarthBermFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19504/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19504/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19504/v1/model.glb\" alt=\"Earth berm (FPS Guns and Shooting Range)\" 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/19504/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/19504/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19505","slug":"fps-weapon-set-and-firing-range-overhead-baffle-78c286d8","title":"Overhead baffle (FPS Guns and Shooting Range)","summary":"Overhead baffle with original detailed construction in metres.","description":"Overhead baffle Dimensions 3.17 × 2.80 × 0.17 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-overhead-baffle-78c286d8","cdnUrl":"https://cdn.3dassets.dev/assets/19505/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-overhead-baffle-78c286d8","thumbnailUrl":"https://cdn.3dassets.dev/assets/19505/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19505/v1/poster.webp","blurhash":"U15}s,~q%M-;00?bM{4n0000ITxu~q?bxuIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":101048,"triangles":2068,"vertices":6204,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5839999914169312,-0.000089754156044064,-0.08392052934659237],"max":[1.5839999914169312,2.8012896672927052,0.08392052934659237]},"sizeMeters":[3.168,2.801,0.168],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:07.235Z","updatedAt":"2026-10-07T02:43:04.275Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19505/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OverheadBaffleFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19505/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19505/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19505/v1/model.glb\" alt=\"Overhead baffle (FPS Guns and Shooting Range)\" 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/19505/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/19505/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19502","slug":"fps-weapon-set-and-firing-range-angled-backstop-79a13e20","title":"Angled backstop (FPS Guns and Shooting Range)","summary":"Angled backstop with original detailed construction in metres.","description":"Angled backstop Dimensions 3.00 × 2.10 × 0.67 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-angled-backstop-79a13e20","cdnUrl":"https://cdn.3dassets.dev/assets/19502/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-angled-backstop-79a13e20","thumbnailUrl":"https://cdn.3dassets.dev/assets/19502/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19502/v1/poster.webp","blurhash":"U68}3?WB4mWB~q?bIUIU00-;%NIUITt6xvRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":102312,"triangles":2080,"vertices":6240,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5011999607086182,-0.00007553033072085769,-0.3360568926617843],"max":[1.5,2.1000359067073235,0.33593589467921847]},"sizeMeters":[3.001,2.1,0.672],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:07.047Z","updatedAt":"2026-10-06T12:33:00.543Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19502/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AngledBackstopFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19502/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19502/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19502/v1/model.glb\" alt=\"Angled backstop (FPS Guns and Shooting Range)\" 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/19502/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/19502/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19503","slug":"fps-weapon-set-and-firing-range-range-flag-fb6c5398","title":"Range flag (FPS Guns and Shooting Range)","summary":"Range flag with original detailed construction in metres.","description":"Range flag Dimensions 0.74 × 2.26 × 0.36 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-range-flag-fb6c5398","cdnUrl":"https://cdn.3dassets.dev/assets/19503/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-flag-fb6c5398","thumbnailUrl":"https://cdn.3dassets.dev/assets/19503/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19503/v1/poster.webp","blurhash":"U37dg?yE008w}+EM0-^i-.ofE3V@AIxZ,.E3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":30560,"triangles":300,"vertices":900,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.37250000424683094,0.000006407024599475175,-0.18000000715255737],"max":[0.3725000023841858,2.259999990463257,0.18000000715255737]},"sizeMeters":[0.745,2.26,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:07.076Z","updatedAt":"2026-10-25T07:00:03.466Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19503/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeFlagFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19503/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19503/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19503/v1/model.glb\" alt=\"Range flag (FPS Guns and Shooting Range)\" 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/19503/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/19503/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19506","slug":"fps-weapon-set-and-firing-range-shooting-mat-0daf18eb","title":"Shooting mat (FPS Guns and Shooting Range)","summary":"Shooting mat with original detailed construction in metres.","description":"Shooting mat Dimensions 0.75 × 0.04 × 1.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-shooting-mat-0daf18eb","cdnUrl":"https://cdn.3dassets.dev/assets/19506/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shooting-mat-0daf18eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/19506/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19506/v1/poster.webp","blurhash":"UCCP*6t601f6xuD*Rk%L00Rj_2ofIU~pxaD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":17284,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3750022789540426,0.000031205675957136914,-0.8999999761581421],"max":[0.3750022789540426,0.04001960781172009,0.8999999761581421]},"sizeMeters":[0.75,0.04,1.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:10.782Z","updatedAt":"2026-10-06T04:43:15.100Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19506/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShootingMatFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19506/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19506/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19506/v1/model.glb\" alt=\"Shooting mat (FPS Guns and Shooting Range)\" 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/19506/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/19506/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19507","slug":"fps-weapon-set-and-firing-range-ammo-can-88f7c12d","title":"Ammo can (FPS Guns and Shooting Range)","summary":"Ammo can with original detailed construction in metres.","description":"Ammo can Dimensions 0.30 × 0.23 × 0.23 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-ammo-can-88f7c12d","cdnUrl":"https://cdn.3dassets.dev/assets/19507/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ammo-can-88f7c12d","thumbnailUrl":"https://cdn.3dassets.dev/assets/19507/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19507/v1/poster.webp","blurhash":"U1Am-XRs004o~o~o4;4U00fk_K%L8{%M%f9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":72020,"triangles":1228,"vertices":3684,"meshes":4,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.15000000596046448,-0.000006106185664614405,-0.11263537707159894],"max":[0.15000000596046448,0.23500541817806958,0.11263115170829321]},"sizeMeters":[0.3,0.235,0.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:07.902Z","updatedAt":"2026-10-10T19:45:01.209Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19507/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function AmmoCanFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19507/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19507/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19507/v1/model.glb\" alt=\"Ammo can (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19507/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19507/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19508","slug":"fps-weapon-set-and-firing-range-ear-defender-rack-c609e0cc","title":"Ear defender rack (FPS Guns and Shooting Range)","summary":"Ear defender rack with original detailed construction in metres.","description":"Ear defender rack Dimensions 1.18 × 1.50 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-ear-defender-rack-c609e0cc","cdnUrl":"https://cdn.3dassets.dev/assets/19508/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ear-defender-rack-c609e0cc","thumbnailUrl":"https://cdn.3dassets.dev/assets/19508/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19508/v1/poster.webp","blurhash":"U39QgY-n00O[}o?a0f00N1IoQ,xv1%.8]~00","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":238980,"triangles":4684,"vertices":14052,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5919751579626902,-7.450584593726717e-11,-0.24996948150294013],"max":[0.5919751579626902,1.5,0.24996948150294013]},"sizeMeters":[1.184,1.5,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:59:08.486Z","updatedAt":"2026-10-05T22:38:52.456Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19508/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EarDefenderRackFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19508/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19508/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19508/v1/model.glb\" alt=\"Ear defender rack (FPS Guns and Shooting Range)\" 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/19508/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/19508/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19509","slug":"fps-weapon-set-and-firing-range-safety-sign-3156e80c","title":"Safety sign (FPS Guns and Shooting Range)","summary":"Safety sign with original detailed construction in metres.","description":"Safety sign Dimensions 0.75 × 1.60 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-safety-sign-3156e80c","cdnUrl":"https://cdn.3dassets.dev/assets/19509/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-safety-sign-3156e80c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19509/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19509/v1/poster.webp","blurhash":"U5AJ~E%h009D~px[0K9FjBxTohE94oxu?bD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":140000,"triangles":2824,"vertices":8472,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.375,-7.450584593726717e-11,-0.25003204817236063],"max":[0.375,1.600000023841858,0.25003204817236063]},"sizeMeters":[0.75,1.6,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:09.876Z","updatedAt":"2026-10-06T21:16:34.225Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19509/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SafetySignFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19509/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19509/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19509/v1/model.glb\" alt=\"Safety sign (FPS Guns and Shooting Range)\" 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/19509/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/19509/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19510","slug":"fps-weapon-set-and-firing-range-shot-timer-42f01b88","title":"Shot timer (FPS Guns and Shooting Range)","summary":"Shot timer with original detailed construction in metres.","description":"Shot timer Dimensions 0.09 × 0.13 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-shot-timer-42f01b88","cdnUrl":"https://cdn.3dassets.dev/assets/19510/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shot-timer-42f01b88","thumbnailUrl":"https://cdn.3dassets.dev/assets/19510/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19510/v1/poster.webp","blurhash":"U04eZv^*0000LNb_+Em%00E2_N^*{a#j7j75","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":23052,"triangles":408,"vertices":1224,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.045002287237536576,0,-0.017496795416207772],"max":[0.045002287237536576,0.12999999523162842,0.01749861161532787]},"sizeMeters":[0.09,0.13,0.035],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":5,"publishedAt":"2026-09-07T16:59:10.458Z","updatedAt":"2026-10-06T08:36:40.398Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19510/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotTimerFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19510/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19510/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19510/v1/model.glb\" alt=\"Shot timer (FPS Guns and Shooting Range)\" 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/19510/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/19510/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19512","slug":"fps-weapon-set-and-firing-range-spotting-scope-6417a1f1","title":"Spotting scope (FPS Guns and Shooting Range)","summary":"Spotting scope with original detailed construction in metres.","description":"Spotting scope Dimensions 0.47 × 0.78 × 0.54 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-spotting-scope-6417a1f1","cdnUrl":"https://cdn.3dassets.dev/assets/19512/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-spotting-scope-6417a1f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19512/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19512/v1/poster.webp","blurhash":"U484i7_N00IU9ZM|IUDi00IU_M%M%Moexu?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":45992,"triangles":888,"vertices":2664,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.23614863259284377,0,-0.2707515832940685],"max":[0.23614863259284377,0.7796508531223797,0.2707515832940685]},"sizeMeters":[0.472,0.78,0.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":5,"publishedAt":"2026-09-07T16:59:10.645Z","updatedAt":"2026-10-06T07:59:04.448Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19512/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpottingScopeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19512/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19512/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19512/v1/model.glb\" alt=\"Spotting scope (FPS Guns and Shooting Range)\" 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/19512/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/19512/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19511","slug":"fps-weapon-set-and-firing-range-sandbag-rest-31f6a8b3","title":"Sandbag rest (FPS Guns and Shooting Range)","summary":"Sandbag rest with original detailed construction in metres.","description":"Sandbag rest Dimensions 0.51 × 0.17 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-sandbag-rest-31f6a8b3","cdnUrl":"https://cdn.3dassets.dev/assets/19511/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-sandbag-rest-31f6a8b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/19511/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19511/v1/poster.webp","blurhash":"U9EyPX-:00M{.7-pRjIV00M|~pWB8_D%jYxt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":98388,"triangles":2028,"vertices":6084,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.25342488288879395,-0.000007245640402608888,-0.1602979864727666],"max":[0.25342488288879395,0.1674370951458271,0.1602979864727666]},"sizeMeters":[0.507,0.167,0.321],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:10.468Z","updatedAt":"2026-10-06T16:50:56.949Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19511/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SandbagRestFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19511/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19511/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19511/v1/model.glb\" alt=\"Sandbag rest (FPS Guns and Shooting Range)\" 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/19511/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/19511/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19513","slug":"fps-weapon-set-and-firing-range-shooting-stick-fef64d2f","title":"Shooting stick (FPS Guns and Shooting Range)","summary":"Shooting stick with original detailed construction in metres.","description":"Shooting stick Dimensions 0.42 × 1.26 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-shooting-stick-fef64d2f","cdnUrl":"https://cdn.3dassets.dev/assets/19513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shooting-stick-fef64d2f","thumbnailUrl":"https://cdn.3dassets.dev/assets/19513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19513/v1/poster.webp","blurhash":"U03kK9s.0NI;Fxso#SJ7AXS3,?w{w]sUWrNv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":51840,"triangles":768,"vertices":2304,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.21182629583112364,0,-0.020001068445870802],"max":[0.21182629583112364,1.2554783821105957,0.020001068445870802]},"sizeMeters":[0.424,1.255,0.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:10.797Z","updatedAt":"2026-10-06T04:43:15.538Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19513/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShootingStickFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19513/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19513/v1/model.glb\" alt=\"Shooting stick (FPS Guns and Shooting Range)\" 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/19513/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/19513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19514","slug":"fps-weapon-set-and-firing-range-brass-bucket-c1eb6edc","title":"Brass bucket (FPS Guns and Shooting Range)","summary":"Brass bucket with original detailed construction in metres.","description":"Brass bucket Dimensions 0.40 × 0.47 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-brass-bucket-c1eb6edc","cdnUrl":"https://cdn.3dassets.dev/assets/19514/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-brass-bucket-c1eb6edc","thumbnailUrl":"https://cdn.3dassets.dev/assets/19514/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19514/v1/poster.webp","blurhash":"U6AAdk%M00IUt7ayWAog00V@_NWBD$t7%MM_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":35548,"triangles":704,"vertices":2112,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.20123516023159027,-0.000005332224118081985,-0.17499999701976776],"max":[0.20123516023159027,0.4707595355274163,0.17499999701976776]},"sizeMeters":[0.402,0.471,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:11.296Z","updatedAt":"2026-10-10T04:06:04.063Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19514/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrassBucketFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19514/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19514/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19514/v1/model.glb\" alt=\"Brass bucket (FPS Guns and Shooting Range)\" 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/19514/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/19514/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19515","slug":"fps-weapon-set-and-firing-range-range-officer-tower-47d35249","title":"Range officer tower (FPS Guns and Shooting Range)","summary":"Range officer tower with original detailed construction in metres.","description":"Range officer tower Dimensions 1.70 × 3.26 × 1.73 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-range-officer-tower-47d35249","cdnUrl":"https://cdn.3dassets.dev/assets/19515/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-officer-tower-47d35249","thumbnailUrl":"https://cdn.3dassets.dev/assets/19515/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19515/v1/poster.webp","blurhash":"U5A,j~-;009Z~SWA9IxvGXRjQmxaPBoz#,Vr","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":468040,"triangles":9568,"vertices":28704,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0,-0.8650000095367432],"max":[0.8500000238418579,3.2599875073257274,0.8650606973218093]},"sizeMeters":[1.7,3.26,1.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:59:14.195Z","updatedAt":"2026-10-25T06:52:47.077Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19515/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeOfficerTowerFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19515/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19515/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19515/v1/model.glb\" alt=\"Range officer tower (FPS Guns and Shooting Range)\" 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/19515/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/19515/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19516","slug":"fps-weapon-set-and-firing-range-gun-rest-4e912fc5","title":"Gun rest (FPS Guns and Shooting Range)","summary":"Gun rest with original detailed construction in metres.","description":"Gun rest Dimensions 0.28 × 0.29 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-gun-rest-4e912fc5","cdnUrl":"https://cdn.3dassets.dev/assets/19516/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-rest-4e912fc5","thumbnailUrl":"https://cdn.3dassets.dev/assets/19516/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19516/v1/poster.webp","blurhash":"U56RM.xu00M|00Rj-;s:IAocxuR+_NbJM_t6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":30888,"triangles":516,"vertices":1548,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.14000000059604645,-0.000004275877583059806,-0.14000000059604645],"max":[0.14000000059604645,0.28879938829066854,0.14000000059604645]},"sizeMeters":[0.28,0.289,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:13.361Z","updatedAt":"2026-10-06T04:32:06.005Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19516/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunRestFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19516/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19516/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19516/v1/model.glb\" alt=\"Gun rest (FPS Guns and Shooting Range)\" 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/19516/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/19516/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19517","slug":"fps-weapon-set-and-firing-range-range-bench-0486b3d8","title":"Range bench (FPS Guns and Shooting Range)","summary":"Range bench with original detailed construction in metres.","description":"Range bench Dimensions 1.70 × 0.45 × 0.45 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-range-bench-0486b3d8","cdnUrl":"https://cdn.3dassets.dev/assets/19517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-bench-0486b3d8","thumbnailUrl":"https://cdn.3dassets.dev/assets/19517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19517/v1/poster.webp","blurhash":"U37wZ-s..m?H]~~WIpSO00rqH=9u1h00={Mx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":217104,"triangles":4352,"vertices":13056,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8500000238418579,0.000017333423376203472,-0.22498398409315576],"max":[0.8500000238418579,0.4500068643858236,0.22498398409315576]},"sizeMeters":[1.7,0.45,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:13.912Z","updatedAt":"2026-10-06T03:13:44.522Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19517/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeBenchFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19517/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19517/v1/model.glb\" alt=\"Range bench (FPS Guns and Shooting Range)\" 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/19517/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/19517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19518","slug":"fps-weapon-set-and-firing-range-traffic-cone-bb9ee65b","title":"Traffic cone (FPS Guns and Shooting Range)","summary":"Traffic cone with original detailed construction in metres.","description":"Traffic cone Dimensions 0.35 × 0.54 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-traffic-cone-bb9ee65b","cdnUrl":"https://cdn.3dassets.dev/assets/19518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-traffic-cone-bb9ee65b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19518/v1/poster.webp","blurhash":"UCAvLD%0039vRkayoekB0MRk~A%1%0oLNHWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":30164,"triangles":460,"vertices":1380,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.17499999701976776,0.000004272708334425446,-0.17499999701976776],"max":[0.17499999701976776,0.5400000214576721,0.17499999701976776]},"sizeMeters":[0.35,0.54,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:14.079Z","updatedAt":"2026-10-06T21:28:33.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrafficConeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19518/v1/model.glb\" alt=\"Traffic cone (FPS Guns and Shooting Range)\" 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/19518/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/19518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19519","slug":"fps-weapon-set-and-firing-range-barricade-wall-34c33bcd","title":"Barricade wall (FPS Guns and Shooting Range)","summary":"Barricade wall with original detailed construction in metres.","description":"Barricade wall Dimensions 1.58 × 1.80 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-barricade-wall-34c33bcd","cdnUrl":"https://cdn.3dassets.dev/assets/19519/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-barricade-wall-34c33bcd","thumbnailUrl":"https://cdn.3dassets.dev/assets/19519/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19519/v1/poster.webp","blurhash":"U4BVnm{J00Cm=Z^k9Z0K1PKj|Eq]%g-;Rj9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":123044,"triangles":2392,"vertices":7176,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7920010777182596,-7.450584593726717e-11,-0.24997405265524122],"max":[0.7920010777182596,1.7999999523162842,0.24997405265524122]},"sizeMeters":[1.584,1.8,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:14.134Z","updatedAt":"2026-10-06T14:35:54.539Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19519/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarricadeWallFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19519/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19519/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19519/v1/model.glb\" alt=\"Barricade wall (FPS Guns and Shooting Range)\" 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/19519/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/19519/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19520","slug":"fps-weapon-set-and-firing-range-multi-port-training-wa-bd47398d","title":"Multi-port training wall (FPS Guns and Shooting Range)","summary":"Multi-port training wall with original detailed construction in metres.","description":"Multi-port training wall Dimensions 1.58 × 1.80 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-multi-port-training-wa-bd47398d","cdnUrl":"https://cdn.3dassets.dev/assets/19520/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-multi-port-training-wa-bd47398d","thumbnailUrl":"https://cdn.3dassets.dev/assets/19520/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19520/v1/poster.webp","blurhash":"U5B37@{K00Cl=d^kD%0e5?Ki#QmlpI-;r?9Z","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":174948,"triangles":3256,"vertices":9768,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7920010777182596,-7.450584593726717e-11,-0.24997405265524122],"max":[0.7920010777182596,1.7999999523162842,0.24997405265524122]},"sizeMeters":[1.584,1.8,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:16.374Z","updatedAt":"2026-10-11T22:24:36.984Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19520/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MultiPortTrainingWallFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19520/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19520/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19520/v1/model.glb\" alt=\"Multi-port training wall (FPS Guns and Shooting Range)\" 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/19520/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/19520/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19521","slug":"fps-weapon-set-and-firing-range-range-lane-foundation-c7f462da","title":"Range lane foundation (FPS Guns and Shooting Range)","summary":"Range lane foundation with original detailed construction in metres.","description":"Range lane foundation Dimensions 14.00 × 0.04 × 54.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-range-lane-foundation-c7f462da","cdnUrl":"https://cdn.3dassets.dev/assets/19521/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-lane-foundation-c7f462da","thumbnailUrl":"https://cdn.3dassets.dev/assets/19521/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19521/v1/poster.webp","blurhash":"UBAmrEt7D%oft7D%R%xu00M{-;j[M{~qxuIU","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":19636,"triangles":72,"vertices":216,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-7.0015259254738,0.0002240056360363965,-27],"max":[7.0015259254738,0.04517392441925958,27]},"sizeMeters":[14.003,0.045,54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:14.437Z","updatedAt":"2026-10-05T17:59:32.949Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19521/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeLaneFoundationFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19521/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19521/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19521/v1/model.glb\" alt=\"Range lane foundation (FPS Guns and Shooting Range)\" 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/19521/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/19521/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19522","slug":"fps-weapon-set-and-firing-range-gun-safe-a56b99f2","title":"Gun safe (FPS Guns and Shooting Range)","summary":"Gun safe with original detailed construction in metres.","description":"Gun safe Dimensions 0.80 × 1.80 × 0.61 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-gun-safe-a56b99f2","cdnUrl":"https://cdn.3dassets.dev/assets/19522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-safe-a56b99f2","thumbnailUrl":"https://cdn.3dassets.dev/assets/19522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19522/v1/poster.webp","blurhash":"U17UPCRj00Rk~qM{D$-;RXxtRzM}%ht6ITog","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":96040,"triangles":1644,"vertices":4932,"meshes":4,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.39994200423715043,0,-0.3075236433671123],"max":[0.39994200423715043,1.7999999523162842,0.3074896958633786]},"sizeMeters":[0.8,1.8,0.615],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:14.779Z","updatedAt":"2026-10-06T04:32:05.807Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19522/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function GunSafeFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19522/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19522/v1/model.glb\" alt=\"Gun safe (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19522/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19523","slug":"fps-weapon-set-and-firing-range-wall-weapon-rack-319c25b3","title":"Wall weapon rack (FPS Guns and Shooting Range)","summary":"Wall weapon rack with original detailed construction in metres.","description":"Wall weapon rack Dimensions 1.20 × 1.10 × 0.17 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-wall-weapon-rack-319c25b3","cdnUrl":"https://cdn.3dassets.dev/assets/19523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-wall-weapon-rack-319c25b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/19523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19523/v1/poster.webp","blurhash":"U27UM7M_00-=~q-=IT9FIUxuM{D*WA?bM{4m","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":184040,"triangles":3416,"vertices":10248,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6000000238418579,0.00002593079997792458,-0.08680717212036851],"max":[0.6000000238418579,1.09997409304188,0.08678975914978919]},"sizeMeters":[1.2,1.1,0.174],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:16.762Z","updatedAt":"2026-10-25T10:57:28.821Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19523/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallWeaponRackFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19523/v1/model.glb\" alt=\"Wall weapon rack (FPS Guns and Shooting Range)\" 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/19523/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/19523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19524","slug":"fps-weapon-set-and-firing-range-cleaning-bench-c46ea77b","title":"Cleaning bench (FPS Guns and Shooting Range)","summary":"Cleaning bench with original detailed construction in metres.","description":"Cleaning bench Dimensions 1.80 × 0.94 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-cleaning-bench-c46ea77b","cdnUrl":"https://cdn.3dassets.dev/assets/19524/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-cleaning-bench-c46ea77b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19524/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19524/v1/poster.webp","blurhash":"U27^lQawF|?H:i-qS~IU00xa00D*ClIT-qNZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":226004,"triangles":4568,"vertices":13704,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000018379318380057352,-0.6500259235132478],"max":[0.8999999761581421,0.9400024490307768,0.6500259235132478]},"sizeMeters":[1.8,0.94,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:17.330Z","updatedAt":"2026-10-13T11:28:13.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19524/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CleaningBenchFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19524/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19524/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19524/v1/model.glb\" alt=\"Cleaning bench (FPS Guns and Shooting Range)\" 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/19524/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/19524/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19526","slug":"fps-weapon-set-and-firing-range-bench-vice-0836ca04","title":"Bench vice (FPS Guns and Shooting Range)","summary":"Bench vice with original detailed construction in metres.","description":"Bench vice Dimensions 0.22 × 0.20 × 0.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-bench-vice-0836ca04","cdnUrl":"https://cdn.3dassets.dev/assets/19526/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bench-vice-0836ca04","thumbnailUrl":"https://cdn.3dassets.dev/assets/19526/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19526/v1/poster.webp","blurhash":"U6AK5T?b00aK_Nt7D%s:4nR%IUn*D%oMxut7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":35548,"triangles":624,"vertices":1872,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.10999999940395355,-0.000005266136169856939,-0.12849999964237213],"max":[0.10999999940395355,0.19499690484361398,0.12849999964237213]},"sizeMeters":[0.22,0.195,0.257],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:18.610Z","updatedAt":"2026-10-13T03:07:58.113Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19526/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchViceFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19526/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19526/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19526/v1/model.glb\" alt=\"Bench vice (FPS Guns and Shooting Range)\" 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/19526/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/19526/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19525","slug":"fps-weapon-set-and-firing-range-tool-roll-64381a70","title":"Tool roll (FPS Guns and Shooting Range)","summary":"Tool roll with original detailed construction in metres.","description":"Tool roll Dimensions 0.55 × 0.04 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-tool-roll-64381a70","cdnUrl":"https://cdn.3dassets.dev/assets/19525/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-tool-roll-64381a70","thumbnailUrl":"https://cdn.3dassets.dev/assets/19525/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19525/v1/poster.webp","blurhash":"U4Bz5$k900xZtR^+R*9F00t8~pIUM{00xa?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":95548,"triangles":1980,"vertices":5940,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.2750000059604645,-0.000009094593913398785,-0.1512591576121108],"max":[0.2750000059604645,0.03900320509051129,0.15124678435921943]},"sizeMeters":[0.55,0.039,0.303],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:17.441Z","updatedAt":"2026-10-03T23:37:27.399Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19525/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ToolRollFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19525/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19525/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19525/v1/model.glb\" alt=\"Tool roll (FPS Guns and Shooting Range)\" 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/19525/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/19525/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19527","slug":"fps-weapon-set-and-firing-range-cleaning-kit-38af9e89","title":"Cleaning kit (FPS Guns and Shooting Range)","summary":"Cleaning kit with original detailed construction in metres.","description":"Cleaning kit Dimensions 0.30 × 0.28 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-cleaning-kit-38af9e89","cdnUrl":"https://cdn.3dassets.dev/assets/19527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-cleaning-kit-38af9e89","thumbnailUrl":"https://cdn.3dassets.dev/assets/19527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19527/v1/poster.webp","blurhash":"U14B:.Rj00t8j]RPWAog4mRjoft8_3xuD%Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":75872,"triangles":1516,"vertices":4548,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0.0000039649228626634225,-0.14787899528119802],"max":[0.15000000596046448,0.27886413639577345,0.14788415526466608]},"sizeMeters":[0.3,0.279,0.296],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:17.645Z","updatedAt":"2026-10-06T20:59:24.703Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19527/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CleaningKitFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19527/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19527/v1/model.glb\" alt=\"Cleaning kit (FPS Guns and Shooting Range)\" 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/19527/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/19527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19528","slug":"fps-weapon-set-and-firing-range-parts-tray-f9987f09","title":"Parts tray (FPS Guns and Shooting Range)","summary":"Parts tray with original detailed construction in metres.","description":"Parts tray Dimensions 0.30 × 0.04 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-parts-tray-f9987f09","cdnUrl":"https://cdn.3dassets.dev/assets/19528/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-parts-tray-f9987f09","thumbnailUrl":"https://cdn.3dassets.dev/assets/19528/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19528/v1/poster.webp","blurhash":"U49jyCxu00xu~q%NM{IU00t7_4IU00Dioyxv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":42512,"triangles":864,"vertices":2592,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.15049999952316284,-0.000007263826152948544,-0.10050480634680774],"max":[0.15049999952316284,0.04000726285757747,0.10050480634680774]},"sizeMeters":[0.301,0.04,0.201],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:17.824Z","updatedAt":"2026-10-06T13:55:38.886Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19528/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PartsTrayFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19528/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19528/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19528/v1/model.glb\" alt=\"Parts tray (FPS Guns and Shooting Range)\" 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/19528/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/19528/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19529","slug":"fps-weapon-set-and-firing-range-gun-case-58a57a5a","title":"Gun case (FPS Guns and Shooting Range)","summary":"Gun case with original detailed construction in metres.","description":"Gun case Dimensions 1.10 × 0.42 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-gun-case-58a57a5a","cdnUrl":"https://cdn.3dassets.dev/assets/19529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-case-58a57a5a","thumbnailUrl":"https://cdn.3dassets.dev/assets/19529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19529/v1/poster.webp","blurhash":"U03up0t800M_%M%NRlIU00og%NM{t8oeRjIT","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":61984,"triangles":1228,"vertices":3684,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.550000011920929,-0.000023807079476710624,-0.1978848881496258],"max":[0.550000011920929,0.4151956707642879,0.1978563799027099]},"sizeMeters":[1.1,0.415,0.396],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:18.238Z","updatedAt":"2026-10-05T21:20:01.510Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19529/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunCaseFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19529/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19529/v1/model.glb\" alt=\"Gun case (FPS Guns and Shooting Range)\" 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/19529/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/19529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19530","slug":"fps-weapon-set-and-firing-range-holster-d9a29c31","title":"Holster (FPS Guns and Shooting Range)","summary":"Holster with original detailed construction in metres.","description":"Holster Dimensions 0.07 × 0.25 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-holster-d9a29c31","cdnUrl":"https://cdn.3dassets.dev/assets/19530/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-holster-d9a29c31","thumbnailUrl":"https://cdn.3dassets.dev/assets/19530/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19530/v1/poster.webp","blurhash":"U49GdQ};0015$+R6R*yC0LNI-or?E2W=%LxW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":14848,"triangles":272,"vertices":816,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.03499481237485241,0,-0.10183389085812322],"max":[0.03499481237485241,0.2472783327102661,0.10183311503620537]},"sizeMeters":[0.07,0.247,0.204],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:20.046Z","updatedAt":"2026-10-08T01:25:29.249Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19530/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolsterFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19530/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19530/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19530/v1/model.glb\" alt=\"Holster (FPS Guns and Shooting Range)\" 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/19530/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/19530/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19531","slug":"fps-weapon-set-and-firing-range-chest-rig-daf8ecb1","title":"Chest rig (FPS Guns and Shooting Range)","summary":"Chest rig with original detailed construction in metres.","description":"Chest rig Dimensions 0.40 × 0.45 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-chest-rig-daf8ecb1","cdnUrl":"https://cdn.3dassets.dev/assets/19531/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-chest-rig-daf8ecb1","thumbnailUrl":"https://cdn.3dassets.dev/assets/19531/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19531/v1/poster.webp","blurhash":"U39@kj~q00IU~q%NM|M{00IU%yE18{IUM{IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":76676,"triangles":1560,"vertices":4680,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.19751359536349328,0,-0.14900972034572868],"max":[0.19751359536349328,0.4516506493091583,0.14899840113909624]},"sizeMeters":[0.395,0.452,0.298],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:23.383Z","updatedAt":"2026-10-10T04:05:12.539Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19531/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChestRigFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19531/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19531/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19531/v1/model.glb\" alt=\"Chest rig (FPS Guns and Shooting Range)\" 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/19531/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/19531/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19532","slug":"fps-weapon-set-and-firing-range-plate-carrier-beeb0c3c","title":"Plate carrier (FPS Guns and Shooting Range)","summary":"Plate carrier with original detailed construction in metres.","description":"Plate carrier Dimensions 0.40 × 0.45 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-plate-carrier-beeb0c3c","cdnUrl":"https://cdn.3dassets.dev/assets/19532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-plate-carrier-beeb0c3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/19532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19532/v1/poster.webp","blurhash":"U5Am*d~W004:_2%MM|M{00E1^*xD4oIUoIn$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":82604,"triangles":1668,"vertices":5004,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.19751359536349328,0,-0.14900972034572868],"max":[0.19751359536349328,0.4516506493091583,0.14899840113909624]},"sizeMeters":[0.395,0.452,0.298],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:59:20.739Z","updatedAt":"2026-10-06T08:03:02.790Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlateCarrierFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19532/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19532/v1/model.glb\" alt=\"Plate carrier (FPS Guns and Shooting Range)\" 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/19532/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/19532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19533","slug":"fps-weapon-set-and-firing-range-ballistic-helmet-ecff617d","title":"Ballistic helmet (FPS Guns and Shooting Range)","summary":"Ballistic helmet with original detailed construction in metres.","description":"Ballistic helmet Dimensions 0.27 × 0.27 × 0.31 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-ballistic-helmet-ecff617d","cdnUrl":"https://cdn.3dassets.dev/assets/19533/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ballistic-helmet-ecff617d","thumbnailUrl":"https://cdn.3dassets.dev/assets/19533/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19533/v1/poster.webp","blurhash":"UACGA7-:009Z_2WBD*t700IU~V%L0Kof-pRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":73956,"triangles":1488,"vertices":4464,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.13699999451637268,-0.00000443934353338421,-0.15399999916553497],"max":[0.13699999451637268,0.27099581966779474,0.15399999916553497]},"sizeMeters":[0.274,0.271,0.308],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:20.987Z","updatedAt":"2026-10-10T04:05:18.057Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19533/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallisticHelmetFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19533/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19533/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19533/v1/model.glb\" alt=\"Ballistic helmet (FPS Guns and Shooting Range)\" 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/19533/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/19533/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19534","slug":"fps-weapon-set-and-firing-range-magazine-pouch-set-7b039d7a","title":"Magazine pouch set (FPS Guns and Shooting Range)","summary":"Magazine pouch set with original detailed construction in metres.","description":"Magazine pouch set Dimensions 0.28 × 0.17 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-magazine-pouch-set-7b039d7a","cdnUrl":"https://cdn.3dassets.dev/assets/19534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-magazine-pouch-set-7b039d7a","thumbnailUrl":"https://cdn.3dassets.dev/assets/19534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19534/v1/poster.webp","blurhash":"U6Awba_3DQ?b_2_MxuR800NFoyIUWAt6M{IV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":48500,"triangles":972,"vertices":2916,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14249999821186066,-0.0000033550753211347706,-0.0274889512879979],"max":[0.14249999821186066,0.17000335686346046,0.02750213627976373]},"sizeMeters":[0.285,0.17,0.055],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:59:21.110Z","updatedAt":"2026-10-07T07:03:55.901Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagazinePouchSetFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19534/v1/model.glb\" alt=\"Magazine pouch set (FPS Guns and Shooting Range)\" 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/19534/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/19534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19535","slug":"fps-weapon-set-and-firing-range-drop-leg-holster-7b47ffe0","title":"Drop leg holster (FPS Guns and Shooting Range)","summary":"Drop leg holster with original detailed construction in metres.","description":"Drop leg holster Dimensions 0.14 × 0.31 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-drop-leg-holster-7b47ffe0","cdnUrl":"https://cdn.3dassets.dev/assets/19535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-drop-leg-holster-7b47ffe0","thumbnailUrl":"https://cdn.3dassets.dev/assets/19535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19535/v1/poster.webp","blurhash":"U49Z+R+a007g_MRj8{t70gK5-Q+]kBR*azxb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":20084,"triangles":380,"vertices":1140,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.06998962453242843,0,-0.1018224461996228],"max":[0.06998962453242843,0.30799999833106995,0.10183311503620537]},"sizeMeters":[0.14,0.308,0.204],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:21.188Z","updatedAt":"2026-10-06T03:22:07.910Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DropLegHolsterFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19535/v1/model.glb\" alt=\"Drop leg holster (FPS Guns and Shooting Range)\" 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/19535/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/19535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19536","slug":"fps-weapon-set-and-firing-range-equipment-belt-77b76825","title":"Equipment belt (FPS Guns and Shooting Range)","summary":"Equipment belt with original detailed construction in metres.","description":"Equipment belt Dimensions 0.40 × 0.05 × 0.24 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-equipment-belt-77b76825","cdnUrl":"https://cdn.3dassets.dev/assets/19536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-equipment-belt-77b76825","thumbnailUrl":"https://cdn.3dassets.dev/assets/19536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19536/v1/poster.webp","blurhash":"U36*s_V{00x@xb%LWnMy00tP_MMzEKDjnm%L","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":34632,"triangles":684,"vertices":2052,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.20100000500679016,0.0000016794493062355365,-0.12156104205595923],"max":[0.20100000500679016,0.049998321295751824,0.1215502296271685]},"sizeMeters":[0.402,0.05,0.243],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:21.684Z","updatedAt":"2026-10-05T23:15:41.543Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EquipmentBeltFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19536/v1/model.glb\" alt=\"Equipment belt (FPS Guns and Shooting Range)\" 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/19536/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/19536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19537","slug":"fps-weapon-set-and-firing-range-backpack-cfdca16b","title":"Backpack (FPS Guns and Shooting Range)","summary":"Backpack with original detailed construction in metres.","description":"Backpack Dimensions 0.32 × 0.48 × 0.38 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-backpack-cfdca16b","cdnUrl":"https://cdn.3dassets.dev/assets/19537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-backpack-cfdca16b","thumbnailUrl":"https://cdn.3dassets.dev/assets/19537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19537/v1/poster.webp","blurhash":"U38#7$~q0000?aW-D%RQ00W=?bj?MytRxuRi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":50172,"triangles":1008,"vertices":3024,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.16000976234653536,0,-0.18970542096931053],"max":[0.16000976234653536,0.47999998927116394,0.18971558200323277]},"sizeMeters":[0.32,0.48,0.379],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:22.154Z","updatedAt":"2026-10-10T04:05:32.312Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19537/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BackpackFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19537/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19537/v1/model.glb\" alt=\"Backpack (FPS Guns and Shooting Range)\" 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/19537/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/19537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19538","slug":"fps-weapon-set-and-firing-range-ammo-shelf-ede2c0cc","title":"Ammo shelf (FPS Guns and Shooting Range)","summary":"Ammo shelf with original detailed construction in metres.","description":"Ammo shelf Dimensions 1.28 × 1.80 × 0.53 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-ammo-shelf-ede2c0cc","cdnUrl":"https://cdn.3dassets.dev/assets/19538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ammo-shelf-ede2c0cc","thumbnailUrl":"https://cdn.3dassets.dev/assets/19538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19538/v1/poster.webp","blurhash":"U4Bg9z-.00D,~p%M4o9G4pNF-nogXSx[a1IB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":250176,"triangles":5000,"vertices":15000,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.6420056593955593,1.1175871339474952e-10,-0.2670033804647999],"max":[0.6420056593955593,1.7999999523162842,0.2670033804647999]},"sizeMeters":[1.284,1.8,0.534],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:23.285Z","updatedAt":"2026-10-10T19:43:12.703Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19538/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmmoShelfFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19538/v1/model.glb\" alt=\"Ammo shelf (FPS Guns and Shooting Range)\" 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/19538/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/19538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19539","slug":"fps-weapon-set-and-firing-range-workbench-light-e40b67cf","title":"Workbench light (FPS Guns and Shooting Range)","summary":"Workbench light with original detailed construction in metres.","description":"Workbench light Dimensions 0.56 × 0.47 × 0.22 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-workbench-light-e40b67cf","cdnUrl":"https://cdn.3dassets.dev/assets/19539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-workbench-light-e40b67cf","thumbnailUrl":"https://cdn.3dassets.dev/assets/19539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19539/v1/poster.webp","blurhash":"U25OZ^?I009F%hDi9E.800M_-;%hIA?v-=4T","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":48816,"triangles":888,"vertices":2664,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2800000011920929,-0.000012819902771799008,-0.11000213676399462],"max":[0.2800000011920929,0.46899473667144775,0.11000213676399462]},"sizeMeters":[0.56,0.469,0.22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:24.252Z","updatedAt":"2026-10-10T04:05:29.695Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19539/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WorkbenchLightFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19539/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19539/v1/model.glb\" alt=\"Workbench light (FPS Guns and Shooting Range)\" 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/19539/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/19539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19540","slug":"fps-weapon-set-and-firing-range-gun-oil-bottle-492d40bd","title":"Gun oil bottle (FPS Guns and Shooting Range)","summary":"Gun oil bottle with original detailed construction in metres.","description":"Gun oil bottle Dimensions 0.06 × 0.14 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-gun-oil-bottle-492d40bd","cdnUrl":"https://cdn.3dassets.dev/assets/19540/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-oil-bottle-492d40bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/19540/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19540/v1/poster.webp","blurhash":"U8BpFC-p004.IAWAtlo#00Rj_MxutPofjHWA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":27168,"triangles":480,"vertices":1440,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.03000160222174749,0,-0.03000160222174749],"max":[0.03000160222174749,0.13800054621476096,0.03000160222174749]},"sizeMeters":[0.06,0.138,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:59:24.437Z","updatedAt":"2026-10-06T04:32:08.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19540/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunOilBottleFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19540/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19540/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19540/v1/model.glb\" alt=\"Gun oil bottle (FPS Guns and Shooting Range)\" 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/19540/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/19540/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19542","slug":"fps-weapon-set-and-firing-range-armourer-cabinet-a11c76c7","title":"Armourer cabinet (FPS Guns and Shooting Range)","summary":"Armourer cabinet with original detailed construction in metres.","description":"Armourer cabinet Dimensions 1.20 × 1.80 × 0.61 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips open, close work the named parts on their own pivots; there is no skinning. +Z faces front.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-armourer-cabinet-a11c76c7","cdnUrl":"https://cdn.3dassets.dev/assets/19542/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-armourer-cabinet-a11c76c7","thumbnailUrl":"https://cdn.3dassets.dev/assets/19542/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19542/v1/poster.webp","blurhash":"U284oM9F00%M_Nt6D$Rl9H%ftJM*.9xtMwM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":96104,"triangles":1644,"vertices":4932,"meshes":4,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.6000366063158291,0,-0.3075236433671123],"max":[0.6000366063158291,1.7999999523162842,0.3074896958633786]},"sizeMeters":[1.2,1.8,0.615],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:25.689Z","updatedAt":"2026-10-06T13:08:20.118Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19542/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ArmourerCabinetFPSGunsAndShootingRange(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/19542/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19542/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19542/v1/model.glb\" alt=\"Armourer cabinet (FPS Guns and Shooting Range)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/19542/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/19542/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"19541","slug":"fps-weapon-set-and-firing-range-reloading-press-0c978db4","title":"Reloading press (FPS Guns and Shooting Range)","summary":"Reloading press with original detailed construction in metres.","description":"Reloading press Dimensions 0.19 × 0.39 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-reloading-press-0c978db4","cdnUrl":"https://cdn.3dassets.dev/assets/19541/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-reloading-press-0c978db4","thumbnailUrl":"https://cdn.3dassets.dev/assets/19541/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19541/v1/poster.webp","blurhash":"U27-f-_20000W6t5RXIV00og~pNF90IV.6-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":47148,"triangles":804,"vertices":2412,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.09650213590826495,-3.81481374133949e-7,-0.10000000149011612],"max":[0.09650000184774399,0.38499899964654444,0.10000000149011612]},"sizeMeters":[0.193,0.385,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:59:24.625Z","updatedAt":"2026-10-10T04:05:07.406Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19541/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReloadingPressFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19541/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19541/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19541/v1/model.glb\" alt=\"Reloading press (FPS Guns and Shooting Range)\" 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/19541/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/19541/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19543","slug":"fps-weapon-set-and-firing-range-chronograph-e340e385","title":"Chronograph (FPS Guns and Shooting Range)","summary":"Chronograph with original detailed construction in metres.","description":"Chronograph Dimensions 0.26 × 0.25 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Static visual asset only; no working mechanism. +Z faces front. Named parts have pivots.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-chronograph-e340e385","cdnUrl":"https://cdn.3dassets.dev/assets/19543/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-chronograph-e340e385","thumbnailUrl":"https://cdn.3dassets.dev/assets/19543/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19543/v1/poster.webp","blurhash":"ULCsmrxu9Fja~qRjM{xuM{M{bH%MD*M{M{xu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":62308,"triangles":1232,"vertices":3696,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.1299926044268939,-9.155552638147324e-7,-0.1614999920129776],"max":[0.1299926044268939,0.2520014644712805,0.16149978378508698]},"sizeMeters":[0.26,0.252,0.323],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:59:25.525Z","updatedAt":"2026-10-12T11:08:08.758Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19543/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChronographFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19543/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19543/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19543/v1/model.glb\" alt=\"Chronograph (FPS Guns and Shooting Range)\" 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/19543/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/19543/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19544","slug":"fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","title":"Four-lane range (FPS Guns and Shooting Range)","summary":"Four booths with targets at 10, 25 and 50 metres downrange; sparse long-distance demonstration.","description":"Four booths with targets at 10, 25 and 50 metres downrange; sparse long-distance demonstration.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/19544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-lan-04475886-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/19544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19544/v1/poster.webp","blurhash":"UAAwF;kD4nt7WB9Fax%M00ae?baet7~qWXD$","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":599476,"triangles":21356,"vertices":27280,"meshes":23,"materials":7,"textures":3,"animations":[],"boundingBox":{"min":[-7.0015259254738,0.0002240056360363965,-2],"max":[7.0015259254738,3.3039875073257274,52]},"sizeMeters":[14.003,3.304,54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:59:25.923Z","updatedAt":"2026-10-05T17:59:44.508Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourLaneRangeFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19544/v1/model.glb\" alt=\"Four-lane range (FPS Guns and Shooting Range)\" 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/19544/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/19544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"19545","slug":"fps-weapon-set-and-firing-range-gunsmith-attachment-as-0ecfd1ef","title":"Gunsmith attachment assembly (FPS Guns and Shooting Range)","summary":"Three weapons fitted with optic, muzzle and stock attachments beside a cleaning bench.","description":"Three weapons fitted with optic, muzzle and stock attachments beside a cleaning bench.","status":"published","url":"https://3dassets.dev/assets/fps-weapon-set-and-firing-range-gunsmith-attachment-as-0ecfd1ef","cdnUrl":"https://cdn.3dassets.dev/assets/19545/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gunsmith-attachment-as-0ecfd1ef","thumbnailUrl":"https://cdn.3dassets.dev/assets/19545/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/19545/v1/poster.webp","blurhash":"U38ga2%M%#%giI-;IoE100IA009ZTyE0_Ni_","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":904700,"triangles":42168,"vertices":39506,"meshes":37,"materials":7,"textures":2,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000018379318380057352,-0.6500259235132478],"max":[0.8999999761581421,1.264804770162088,0.8204999975860119]},"sizeMeters":[1.8,1.265,1.471],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:59:26.825Z","updatedAt":"2026-10-10T01:35:12.313Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/19545/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunsmithAttachmentAssemblyFPSGunsAndShootingRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/19545/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/19545/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/19545/v1/model.glb\" alt=\"Gunsmith attachment assembly (FPS Guns and Shooting Range)\" 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/19545/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/19545/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"fps-weapon-set-and-firing-range","title":"Indoor shooting range","url":"https://3dassets.dev/demos/fps-weapon-set-and-firing-range"}}}