{"data":{"id":82,"slug":"fps-weapon-set-and-firing-range","title":"FPS Weapon Set and Firing Range","summary":"Original socketed firearms, detailed attachments, four-lane range and gunsmith equipment.","description":"Static high-density original models in metres, +Y up and +Z forward. No working mechanisms, animation or collision. 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/5330/v1/poster.webp","assetCount":105,"aiGenerated":true,"aiGeneratedAssetCount":105,"aiModels":["GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":17024512,"totalTriangles":375320,"starterScene":{"id":"5330","slug":"fps-weapon-set-and-firing-range-four-lan-adb77361-starter-scene","title":"Four-lane range (FPS Weapon Set and Firing Range)","summary":"Composed example for FPS Weapon Set and Firing Range.","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-adb77361-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/5330/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-lan-adb77361-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/5330/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5330/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":599484,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:55.257Z","updatedAt":"2026-09-06T06:08:55.712Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5330/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourLaneRangeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5330/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5330/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5330/v1/model.glb\" alt=\"Four-lane range (FPS Weapon Set and Firing 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/5330/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/5330/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"5224","slug":"fps-weapon-set-and-firing-range-compact-pistol-4925af35","title":"Compact pistol (FPS Weapon Set and Firing Range)","summary":"Compact pistol with original detailed static 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. 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-compact-pistol-4925af35","cdnUrl":"https://cdn.3dassets.dev/assets/5224/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-compact-pistol-4925af35","thumbnailUrl":"https://cdn.3dassets.dev/assets/5224/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5224/v1/poster.webp","blurhash":"U54xoOof4mWA_4j]9Fax%MWBM{t7RPRiof%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":485636,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:31.730Z","updatedAt":"2026-09-06T06:08:32.186Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5224/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompactPistolFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5224/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5224/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5224/v1/model.glb\" alt=\"Compact pistol (FPS Weapon Set and Firing 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/5224/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/5224/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5225","slug":"fps-weapon-set-and-firing-range-service-pistol-580e3b1a","title":"Service pistol (FPS Weapon Set and Firing Range)","summary":"Service pistol with original detailed static 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. 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-service-pistol-580e3b1a","cdnUrl":"https://cdn.3dassets.dev/assets/5225/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-service-pistol-580e3b1a","thumbnailUrl":"https://cdn.3dassets.dev/assets/5225/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5225/v1/poster.webp","blurhash":"U64_wta#4nj?_4WCDioexuRjM{xuM{M{t7%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":485632,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:36.062Z","updatedAt":"2026-09-06T06:08:36.344Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5225/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServicePistolFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5225/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5225/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5225/v1/model.glb\" alt=\"Service pistol (FPS Weapon Set and Firing 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/5225/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/5225/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5226","slug":"fps-weapon-set-and-firing-range-revolver-5d38ea51","title":"Six-chamber revolver (FPS Weapon Set and Firing Range)","summary":"Six-chamber revolver with original detailed static 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. 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-5d38ea51","cdnUrl":"https://cdn.3dassets.dev/assets/5226/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-revolver-5d38ea51","thumbnailUrl":"https://cdn.3dassets.dev/assets/5226/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5226/v1/poster.webp","blurhash":"U34U{HWB4Tog~qRjDit7jYM{t7xvD%IU%M%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":414128,"triangles":8548,"vertices":25644,"meshes":5,"materials":4,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:31.554Z","updatedAt":"2026-09-06T06:08:32.414Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5226/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SixChamberRevolverFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5226/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5226/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5226/v1/model.glb\" alt=\"Six-chamber revolver (FPS Weapon Set and Firing 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/5226/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/5226/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5227","slug":"fps-weapon-set-and-firing-range-smg-b9a55a3b","title":"Compact submachine gun (FPS Weapon Set and Firing Range)","summary":"Compact submachine gun with original detailed static 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. 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-b9a55a3b","cdnUrl":"https://cdn.3dassets.dev/assets/5227/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smg-b9a55a3b","thumbnailUrl":"https://cdn.3dassets.dev/assets/5227/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5227/v1/poster.webp","blurhash":"U24U~R?c4m4T~qogD%M{4T9Exu?v00D$-;?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":548652,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:31.566Z","updatedAt":"2026-09-06T06:08:32.532Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5227/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompactSubmachineGunFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5227/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5227/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5227/v1/model.glb\" alt=\"Compact submachine gun (FPS Weapon Set and Firing 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/5227/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/5227/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5228","slug":"fps-weapon-set-and-firing-range-pdw-d9bd91dc","title":"Bullpup personal defence weapon (FPS Weapon Set and Firing Range)","summary":"Bullpup personal defence weapon with original detailed static 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. 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-d9bd91dc","cdnUrl":"https://cdn.3dassets.dev/assets/5228/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pdw-d9bd91dc","thumbnailUrl":"https://cdn.3dassets.dev/assets/5228/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5228/v1/poster.webp","blurhash":"U34ec.-=9ED$_4ogD%M_DiD%oe%N8_IU%g?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":548664,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:31.754Z","updatedAt":"2026-09-06T06:08:32.643Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5228/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BullpupPersonalDefenceWeaponFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5228/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5228/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5228/v1/model.glb\" alt=\"Bullpup personal defence weapon (FPS Weapon Set and Firing 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/5228/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/5228/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5230","slug":"fps-weapon-set-and-firing-range-assault-carbine-372c463e","title":"Assault carbine (FPS Weapon Set and Firing Range)","summary":"Assault carbine with original detailed static 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. 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-assault-carbine-372c463e","cdnUrl":"https://cdn.3dassets.dev/assets/5230/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-assault-carbine-372c463e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5230/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5230/v1/poster.webp","blurhash":"U13+J=?v4m9F_3M{D%R*004m-;_300bH_4?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":548768,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:32.329Z","updatedAt":"2026-09-06T06:08:33.126Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5230/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssaultCarbineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5230/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5230/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5230/v1/model.glb\" alt=\"Assault carbine (FPS Weapon Set and Firing 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/5230/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/5230/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5231","slug":"fps-weapon-set-and-firing-range-battle-rifle-5d007f4e","title":"Battle rifle (FPS Weapon Set and Firing Range)","summary":"Battle rifle with original detailed static 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. 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-5d007f4e","cdnUrl":"https://cdn.3dassets.dev/assets/5231/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-battle-rifle-5d007f4e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5231/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5231/v1/poster.webp","blurhash":"U142SL?v004n~qRjD%WC004T?b_N00RP~q-;","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":548736,"triangles":11324,"vertices":33972,"meshes":7,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.091Z","updatedAt":"2026-09-06T06:08:34.240Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5231/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BattleRifleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5231/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5231/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5231/v1/model.glb\" alt=\"Battle rifle (FPS Weapon Set and Firing 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/5231/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/5231/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5232","slug":"fps-weapon-set-and-firing-range-dmr-79268274","title":"Designated marksman rifle (FPS Weapon Set and Firing Range)","summary":"Designated marksman rifle with original detailed static 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. 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-79268274","cdnUrl":"https://cdn.3dassets.dev/assets/5232/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dmr-79268274","thumbnailUrl":"https://cdn.3dassets.dev/assets/5232/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5232/v1/poster.webp","blurhash":"U25E$^~q4m00oiD$M_-;008_-;_4IT%M?ca$","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":568288,"triangles":11708,"vertices":35124,"meshes":9,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.141Z","updatedAt":"2026-09-06T06:08:34.819Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5232/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DesignatedMarksmanRifleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5232/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5232/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5232/v1/model.glb\" alt=\"Designated marksman rifle (FPS Weapon Set and Firing 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/5232/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/5232/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5233","slug":"fps-weapon-set-and-firing-range-bolt-sniper-5da40c17","title":"Bolt-action precision rifle (FPS Weapon Set and Firing Range)","summary":"Bolt-action precision rifle with original detailed static 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. 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-bolt-sniper-5da40c17","cdnUrl":"https://cdn.3dassets.dev/assets/5233/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bolt-sniper-5da40c17","thumbnailUrl":"https://cdn.3dassets.dev/assets/5233/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5233/v1/poster.webp","blurhash":"U25X#~?^Dh00-V9ZROxu004n-;_4E1=}?bR%","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":519320,"triangles":10560,"vertices":31680,"meshes":8,"materials":6,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.130Z","updatedAt":"2026-09-06T06:08:35.028Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5233/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoltActionPrecisionRifleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5233/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5233/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5233/v1/model.glb\" alt=\"Bolt-action precision rifle (FPS Weapon Set and Firing 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/5233/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/5233/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5234","slug":"fps-weapon-set-and-firing-range-pump-shotgun-e3766835","title":"Pump shotgun (FPS Weapon Set and Firing Range)","summary":"Pump shotgun with original detailed static 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. 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-pump-shotgun-e3766835","cdnUrl":"https://cdn.3dassets.dev/assets/5234/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pump-shotgun-e3766835","thumbnailUrl":"https://cdn.3dassets.dev/assets/5234/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5234/v1/poster.webp","blurhash":"U13kybR%D$T0^lEKM_t70KEL-p$N0K-p?cV?","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":489752,"triangles":9984,"vertices":29952,"meshes":7,"materials":6,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.335Z","updatedAt":"2026-09-06T06:08:35.075Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5234/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PumpShotgunFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5234/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5234/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5234/v1/model.glb\" alt=\"Pump shotgun (FPS Weapon Set and Firing 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/5234/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/5234/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5235","slug":"fps-weapon-set-and-firing-range-lmg-8a3f2038","title":"Light machine gun (FPS Weapon Set and Firing Range)","summary":"Light machine gun with original detailed static 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. 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-lmg-8a3f2038","cdnUrl":"https://cdn.3dassets.dev/assets/5235/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lmg-8a3f2038","thumbnailUrl":"https://cdn.3dassets.dev/assets/5235/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5235/v1/poster.webp","blurhash":"U24ei}~q9F00IVD%WA-;009F-;_3xu.8xvD%","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":573460,"triangles":11816,"vertices":35448,"meshes":9,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.165Z","updatedAt":"2026-09-06T06:08:35.164Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5235/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LightMachineGunFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5235/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5235/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5235/v1/model.glb\" alt=\"Light machine gun (FPS Weapon Set and Firing 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/5235/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/5235/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5236","slug":"fps-weapon-set-and-firing-range-launcher-74ee0063","title":"Shoulder launcher (FPS Weapon Set and Firing Range)","summary":"Shoulder launcher with original detailed static 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-74ee0063","cdnUrl":"https://cdn.3dassets.dev/assets/5236/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-launcher-74ee0063","thumbnailUrl":"https://cdn.3dassets.dev/assets/5236/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5236/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":413132,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:34.243Z","updatedAt":"2026-09-06T06:08:34.344Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5236/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoulderLauncherFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5236/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5236/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5236/v1/model.glb\" alt=\"Shoulder launcher (FPS Weapon Set and Firing 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/5236/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/5236/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5237","slug":"fps-weapon-set-and-firing-range-service-pistol-slide-o-9f66c7b6","title":"Service pistol with slide open (FPS Weapon Set and Firing Range)","summary":"Service pistol with slide open with original detailed static 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. 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-service-pistol-slide-o-9f66c7b6","cdnUrl":"https://cdn.3dassets.dev/assets/5237/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-service-pistol-slide-o-9f66c7b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/5237/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5237/v1/poster.webp","blurhash":"U75X[YRj8_t8~qRjD$xu%MM{M{%MWAM{og%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":485744,"triangles":10024,"vertices":30072,"meshes":6,"materials":4,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:35.240Z","updatedAt":"2026-09-06T06:08:36.235Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5237/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ServicePistolWithSlideOpenFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5237/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5237/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5237/v1/model.glb\" alt=\"Service pistol with slide open (FPS Weapon Set and Firing 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/5237/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/5237/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5238","slug":"fps-weapon-set-and-firing-range-carbine-stock-removed-b17cf8fb","title":"Carbine with stock removed (FPS Weapon Set and Firing Range)","summary":"Carbine with stock removed with original detailed static 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. 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-stock-removed-b17cf8fb","cdnUrl":"https://cdn.3dassets.dev/assets/5238/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-carbine-stock-removed-b17cf8fb","thumbnailUrl":"https://cdn.3dassets.dev/assets/5238/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5238/v1/poster.webp","blurhash":"U34xoNof9EIU~qM_IUWCD$9F%g-=4nIU?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":539604,"triangles":11160,"vertices":33480,"meshes":5,"materials":4,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:35.759Z","updatedAt":"2026-09-06T06:08:36.767Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5238/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarbineWithStockRemovedFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5238/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5238/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5238/v1/model.glb\" alt=\"Carbine with stock removed (FPS Weapon Set and Firing 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/5238/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/5238/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5239","slug":"fps-weapon-set-and-firing-range-red-dot-sight-2da33d1f","title":"Red dot sight (FPS Weapon Set and Firing Range)","summary":"Red dot sight with original detailed static 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-2da33d1f","cdnUrl":"https://cdn.3dassets.dev/assets/5239/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-red-dot-sight-2da33d1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5239/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5239/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":60976,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:35.798Z","updatedAt":"2026-09-06T06:08:36.781Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5239/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RedDotSightFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5239/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5239/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5239/v1/model.glb\" alt=\"Red dot sight (FPS Weapon Set and Firing 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/5239/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/5239/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5240","slug":"fps-weapon-set-and-firing-range-holographic-sight-07753bad","title":"Holographic sight (FPS Weapon Set and Firing Range)","summary":"Holographic sight with original detailed static 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-07753bad","cdnUrl":"https://cdn.3dassets.dev/assets/5240/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-holographic-sight-07753bad","thumbnailUrl":"https://cdn.3dassets.dev/assets/5240/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5240/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":68904,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:36.274Z","updatedAt":"2026-09-06T06:08:36.314Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5240/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolographicSightFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5240/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5240/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5240/v1/model.glb\" alt=\"Holographic sight (FPS Weapon Set and Firing 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/5240/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/5240/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5241","slug":"fps-weapon-set-and-firing-range-four-power-scope-c29e8023","title":"Four power scope (FPS Weapon Set and Firing Range)","summary":"Four power scope with original detailed static 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-c29e8023","cdnUrl":"https://cdn.3dassets.dev/assets/5241/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-power-scope-c29e8023","thumbnailUrl":"https://cdn.3dassets.dev/assets/5241/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5241/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":112332,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:36.356Z","updatedAt":"2026-09-06T06:08:36.500Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5241/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourPowerScopeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5241/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5241/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5241/v1/model.glb\" alt=\"Four power scope (FPS Weapon Set and Firing 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/5241/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/5241/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5242","slug":"fps-weapon-set-and-firing-range-precision-scope-b3067ff6","title":"Precision scope (FPS Weapon Set and Firing Range)","summary":"Precision scope with original detailed static 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-b3067ff6","cdnUrl":"https://cdn.3dassets.dev/assets/5242/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-precision-scope-b3067ff6","thumbnailUrl":"https://cdn.3dassets.dev/assets/5242/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5242/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":112300,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:36.367Z","updatedAt":"2026-09-06T06:08:36.562Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5242/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PrecisionScopeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5242/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5242/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5242/v1/model.glb\" alt=\"Precision scope (FPS Weapon Set and Firing 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/5242/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/5242/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5243","slug":"fps-weapon-set-and-firing-range-suppressor-1e51b410","title":"Suppressor (FPS Weapon Set and Firing Range)","summary":"Suppressor with original detailed static 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-1e51b410","cdnUrl":"https://cdn.3dassets.dev/assets/5243/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-suppressor-1e51b410","thumbnailUrl":"https://cdn.3dassets.dev/assets/5243/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5243/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":49020,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:36.437Z","updatedAt":"2026-09-06T06:08:36.614Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5243/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SuppressorFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5243/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5243/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5243/v1/model.glb\" alt=\"Suppressor (FPS Weapon Set and Firing 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/5243/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/5243/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5244","slug":"fps-weapon-set-and-firing-range-compensator-1c3d4244","title":"Compensator (FPS Weapon Set and Firing Range)","summary":"Compensator with original detailed static 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-1c3d4244","cdnUrl":"https://cdn.3dassets.dev/assets/5244/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-compensator-1c3d4244","thumbnailUrl":"https://cdn.3dassets.dev/assets/5244/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5244/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":39820,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.673Z","updatedAt":"2026-09-06T06:08:37.715Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5244/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompensatorFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5244/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5244/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5244/v1/model.glb\" alt=\"Compensator (FPS Weapon Set and Firing 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/5244/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/5244/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5245","slug":"fps-weapon-set-and-firing-range-flash-hider-2875d969","title":"Flash hider (FPS Weapon Set and Firing Range)","summary":"Flash hider with original detailed static 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-2875d969","cdnUrl":"https://cdn.3dassets.dev/assets/5245/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-flash-hider-2875d969","thumbnailUrl":"https://cdn.3dassets.dev/assets/5245/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5245/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":16048,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.650Z","updatedAt":"2026-09-06T06:08:37.808Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5245/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlashHiderFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5245/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5245/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5245/v1/model.glb\" alt=\"Flash hider (FPS Weapon Set and Firing 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/5245/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/5245/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5246","slug":"fps-weapon-set-and-firing-range-vertical-foregrip-ff5fb095","title":"Vertical foregrip (FPS Weapon Set and Firing Range)","summary":"Vertical foregrip with original detailed static 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-ff5fb095","cdnUrl":"https://cdn.3dassets.dev/assets/5246/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-vertical-foregrip-ff5fb095","thumbnailUrl":"https://cdn.3dassets.dev/assets/5246/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5246/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":245300,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.751Z","updatedAt":"2026-09-06T06:08:37.882Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5246/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VerticalForegripFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5246/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5246/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5246/v1/model.glb\" alt=\"Vertical foregrip (FPS Weapon Set and Firing 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/5246/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/5246/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5247","slug":"fps-weapon-set-and-firing-range-angled-foregrip-a0cc5580","title":"Angled foregrip (FPS Weapon Set and Firing Range)","summary":"Angled foregrip with original detailed static 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-a0cc5580","cdnUrl":"https://cdn.3dassets.dev/assets/5247/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-angled-foregrip-a0cc5580","thumbnailUrl":"https://cdn.3dassets.dev/assets/5247/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5247/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":9712,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.776Z","updatedAt":"2026-09-06T06:08:37.933Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5247/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AngledForegripFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5247/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5247/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5247/v1/model.glb\" alt=\"Angled foregrip (FPS Weapon Set and Firing 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/5247/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/5247/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5248","slug":"fps-weapon-set-and-firing-range-laser-module-3489100c","title":"Laser module (FPS Weapon Set and Firing Range)","summary":"Laser module with original detailed static 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-3489100c","cdnUrl":"https://cdn.3dassets.dev/assets/5248/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-laser-module-3489100c","thumbnailUrl":"https://cdn.3dassets.dev/assets/5248/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5248/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":42156,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.865Z","updatedAt":"2026-09-06T06:08:38.012Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5248/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaserModuleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5248/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5248/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5248/v1/model.glb\" alt=\"Laser module (FPS Weapon Set and Firing 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/5248/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/5248/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5249","slug":"fps-weapon-set-and-firing-range-weapon-flashlight-f638daad","title":"Weapon flashlight (FPS Weapon Set and Firing Range)","summary":"Weapon flashlight with original detailed static 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-f638daad","cdnUrl":"https://cdn.3dassets.dev/assets/5249/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-weapon-flashlight-f638daad","thumbnailUrl":"https://cdn.3dassets.dev/assets/5249/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5249/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":55836,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:37.971Z","updatedAt":"2026-09-06T06:08:38.095Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5249/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeaponFlashlightFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5249/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5249/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5249/v1/model.glb\" alt=\"Weapon flashlight (FPS Weapon Set and Firing 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/5249/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/5249/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5250","slug":"fps-weapon-set-and-firing-range-folding-bipod-134092d8","title":"Folding bipod (FPS Weapon Set and Firing Range)","summary":"Folding bipod with original detailed static 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. 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-folding-bipod-134092d8","cdnUrl":"https://cdn.3dassets.dev/assets/5250/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-folding-bipod-134092d8","thumbnailUrl":"https://cdn.3dassets.dev/assets/5250/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5250/v1/poster.webp","blurhash":"U34_wsMx00?b~qay00kBt7ofM{M{Mxof%MV@","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":55572,"triangles":1092,"vertices":3276,"meshes":4,"materials":3,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:38.012Z","updatedAt":"2026-09-06T06:08:38.194Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5250/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingBipodFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5250/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5250/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5250/v1/model.glb\" alt=\"Folding bipod (FPS Weapon Set and Firing 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/5250/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/5250/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5251","slug":"fps-weapon-set-and-firing-range-extended-magazine-080fa5b3","title":"Extended magazine (FPS Weapon Set and Firing Range)","summary":"Extended magazine with original detailed static 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-080fa5b3","cdnUrl":"https://cdn.3dassets.dev/assets/5251/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-extended-magazine-080fa5b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/5251/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5251/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":97812,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:38.131Z","updatedAt":"2026-09-06T06:08:38.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5251/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExtendedMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5251/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5251/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5251/v1/model.glb\" alt=\"Extended magazine (FPS Weapon Set and Firing 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/5251/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/5251/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5252","slug":"fps-weapon-set-and-firing-range-drum-magazine-3a57674f","title":"Drum magazine (FPS Weapon Set and Firing Range)","summary":"Drum magazine with original detailed static 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-3a57674f","cdnUrl":"https://cdn.3dassets.dev/assets/5252/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-drum-magazine-3a57674f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5252/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5252/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":14556,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.053Z","updatedAt":"2026-09-06T06:08:39.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5252/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrumMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5252/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5252/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5252/v1/model.glb\" alt=\"Drum magazine (FPS Weapon Set and Firing 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/5252/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/5252/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5253","slug":"fps-weapon-set-and-firing-range-telescopic-stock-e9ddfe3a","title":"Telescopic stock (FPS Weapon Set and Firing Range)","summary":"Telescopic stock with original detailed static 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-e9ddfe3a","cdnUrl":"https://cdn.3dassets.dev/assets/5253/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-telescopic-stock-e9ddfe3a","thumbnailUrl":"https://cdn.3dassets.dev/assets/5253/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5253/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":12748,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.177Z","updatedAt":"2026-09-06T06:08:39.316Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5253/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TelescopicStockFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5253/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5253/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5253/v1/model.glb\" alt=\"Telescopic stock (FPS Weapon Set and Firing 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/5253/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/5253/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5254","slug":"fps-weapon-set-and-firing-range-skeleton-stock-53853255","title":"Skeleton stock (FPS Weapon Set and Firing Range)","summary":"Skeleton stock with original detailed static 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-53853255","cdnUrl":"https://cdn.3dassets.dev/assets/5254/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-skeleton-stock-53853255","thumbnailUrl":"https://cdn.3dassets.dev/assets/5254/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5254/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":30628,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.205Z","updatedAt":"2026-09-06T06:08:39.347Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5254/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SkeletonStockFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5254/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5254/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5254/v1/model.glb\" alt=\"Skeleton stock (FPS Weapon Set and Firing 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/5254/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/5254/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5255","slug":"fps-weapon-set-and-firing-range-replacement-grip-de089a1f","title":"Replacement grip (FPS Weapon Set and Firing Range)","summary":"Replacement grip with original detailed static 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-de089a1f","cdnUrl":"https://cdn.3dassets.dev/assets/5255/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-replacement-grip-de089a1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5255/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5255/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":245316,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.291Z","updatedAt":"2026-09-06T06:08:39.385Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5255/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReplacementGripFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5255/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5255/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5255/v1/model.glb\" alt=\"Replacement grip (FPS Weapon Set and Firing 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/5255/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/5255/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5256","slug":"fps-weapon-set-and-firing-range-woven-sling-24be08bd","title":"Woven sling (FPS Weapon Set and Firing Range)","summary":"Woven sling with original detailed static 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-24be08bd","cdnUrl":"https://cdn.3dassets.dev/assets/5256/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-woven-sling-24be08bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/5256/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5256/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":49020,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.304Z","updatedAt":"2026-09-06T06:08:39.455Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5256/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WovenSlingFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5256/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5256/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5256/v1/model.glb\" alt=\"Woven sling (FPS Weapon Set and Firing 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/5256/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/5256/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5257","slug":"fps-weapon-set-and-firing-range-pistol-magazine-72390a17","title":"Pistol magazine (FPS Weapon Set and Firing Range)","summary":"Pistol magazine with original detailed static 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-72390a17","cdnUrl":"https://cdn.3dassets.dev/assets/5257/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pistol-magazine-72390a17","thumbnailUrl":"https://cdn.3dassets.dev/assets/5257/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5257/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":70920,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.404Z","updatedAt":"2026-09-06T06:08:39.530Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5257/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PistolMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5257/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5257/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5257/v1/model.glb\" alt=\"Pistol magazine (FPS Weapon Set and Firing 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/5257/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/5257/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5258","slug":"fps-weapon-set-and-firing-range-revolver-speedloader-184c6206","title":"Revolver speedloader (FPS Weapon Set and Firing Range)","summary":"Revolver speedloader with original detailed static 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-184c6206","cdnUrl":"https://cdn.3dassets.dev/assets/5258/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-revolver-speedloader-184c6206","thumbnailUrl":"https://cdn.3dassets.dev/assets/5258/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5258/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":34060,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.465Z","updatedAt":"2026-09-06T06:08:39.670Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5258/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RevolverSpeedloaderFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5258/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5258/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5258/v1/model.glb\" alt=\"Revolver speedloader (FPS Weapon Set and Firing 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/5258/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/5258/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5259","slug":"fps-weapon-set-and-firing-range-smg-magazine-1697dadd","title":"SMG magazine (FPS Weapon Set and Firing Range)","summary":"SMG magazine with original detailed static 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-1697dadd","cdnUrl":"https://cdn.3dassets.dev/assets/5259/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smg-magazine-1697dadd","thumbnailUrl":"https://cdn.3dassets.dev/assets/5259/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5259/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":97804,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:39.583Z","updatedAt":"2026-09-06T06:08:39.703Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5259/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SMGMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5259/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5259/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5259/v1/model.glb\" alt=\"SMG magazine (FPS Weapon Set and Firing 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/5259/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/5259/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5260","slug":"fps-weapon-set-and-firing-range-pdw-magazine-faa9184b","title":"PDW magazine (FPS Weapon Set and Firing Range)","summary":"PDW magazine with original detailed static 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-faa9184b","cdnUrl":"https://cdn.3dassets.dev/assets/5260/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pdw-magazine-faa9184b","thumbnailUrl":"https://cdn.3dassets.dev/assets/5260/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5260/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":84344,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:40.760Z","updatedAt":"2026-09-06T06:08:41.658Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5260/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PDWMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5260/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5260/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5260/v1/model.glb\" alt=\"PDW magazine (FPS Weapon Set and Firing 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/5260/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/5260/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5261","slug":"fps-weapon-set-and-firing-range-carbine-magazine-c28e5bca","title":"Carbine magazine (FPS Weapon Set and Firing Range)","summary":"Carbine magazine with original detailed static 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-c28e5bca","cdnUrl":"https://cdn.3dassets.dev/assets/5261/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-carbine-magazine-c28e5bca","thumbnailUrl":"https://cdn.3dassets.dev/assets/5261/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5261/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":87076,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:40.612Z","updatedAt":"2026-09-06T06:08:40.746Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5261/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CarbineMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5261/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5261/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5261/v1/model.glb\" alt=\"Carbine magazine (FPS Weapon Set and Firing 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/5261/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/5261/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5262","slug":"fps-weapon-set-and-firing-range-battle-rifle-magazine-615ca755","title":"Battle rifle magazine (FPS Weapon Set and Firing Range)","summary":"Battle rifle magazine with original detailed static 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-615ca755","cdnUrl":"https://cdn.3dassets.dev/assets/5262/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-battle-rifle-magazine-615ca755","thumbnailUrl":"https://cdn.3dassets.dev/assets/5262/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5262/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":79020,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:40.621Z","updatedAt":"2026-09-06T06:08:40.786Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5262/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BattleRifleMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5262/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5262/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5262/v1/model.glb\" alt=\"Battle rifle magazine (FPS Weapon Set and Firing 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/5262/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/5262/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5264","slug":"fps-weapon-set-and-firing-range-dmr-magazine-6f0b3f1b","title":"DMR magazine (FPS Weapon Set and Firing Range)","summary":"DMR magazine with original detailed static 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-6f0b3f1b","cdnUrl":"https://cdn.3dassets.dev/assets/5264/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dmr-magazine-6f0b3f1b","thumbnailUrl":"https://cdn.3dassets.dev/assets/5264/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5264/v1/poster.webp","blurhash":"U02$Nv-;004n-;RjDixuxua}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":76304,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:41.062Z","updatedAt":"2026-09-06T06:08:41.973Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5264/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DMRMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5264/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5264/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5264/v1/model.glb\" alt=\"DMR magazine (FPS Weapon Set and Firing 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/5264/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/5264/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5263","slug":"fps-weapon-set-and-firing-range-sniper-magazine-c7e32cb8","title":"Sniper magazine (FPS Weapon Set and Firing Range)","summary":"Sniper magazine with original detailed static 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-c7e32cb8","cdnUrl":"https://cdn.3dassets.dev/assets/5263/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-sniper-magazine-c7e32cb8","thumbnailUrl":"https://cdn.3dassets.dev/assets/5263/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5263/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":65552,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:40.789Z","updatedAt":"2026-09-06T06:08:40.891Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5263/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SniperMagazineFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5263/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5263/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5263/v1/model.glb\" alt=\"Sniper magazine (FPS Weapon Set and Firing 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/5263/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/5263/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5265","slug":"fps-weapon-set-and-firing-range-shotgun-shell-carrier-781123c3","title":"Shotgun shell carrier (FPS Weapon Set and Firing Range)","summary":"Shotgun shell carrier with original detailed static 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-781123c3","cdnUrl":"https://cdn.3dassets.dev/assets/5265/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shotgun-shell-carrier-781123c3","thumbnailUrl":"https://cdn.3dassets.dev/assets/5265/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5265/v1/poster.webp","blurhash":"U8Bx_n}n4==v={^O$fIq04Ek^NEN5S13Ek${","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":41172,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:40.962Z","updatedAt":"2026-09-06T06:08:41.009Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5265/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotgunShellCarrierFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5265/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5265/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5265/v1/model.glb\" alt=\"Shotgun shell carrier (FPS Weapon Set and Firing 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/5265/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/5265/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5267","slug":"fps-weapon-set-and-firing-range-lmg-belt-box-bf830da4","title":"LMG belt box (FPS Weapon Set and Firing Range)","summary":"LMG belt box with original detailed static 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. 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-lmg-belt-box-bf830da4","cdnUrl":"https://cdn.3dassets.dev/assets/5267/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lmg-belt-box-bf830da4","thumbnailUrl":"https://cdn.3dassets.dev/assets/5267/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5267/v1/poster.webp","blurhash":"U2AKBM0200-B~V?t4;4U00%e_M%L00Rj?ayC","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":110216,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:41.329Z","updatedAt":"2026-09-06T06:08:42.264Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5267/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LMGBeltBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5267/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5267/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5267/v1/model.glb\" alt=\"LMG belt box (FPS Weapon Set and Firing 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/5267/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/5267/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5266","slug":"fps-weapon-set-and-firing-range-launcher-round-case-509b3d60","title":"Launcher round case (FPS Weapon Set and Firing Range)","summary":"Launcher round case with original detailed static 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. 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-round-case-509b3d60","cdnUrl":"https://cdn.3dassets.dev/assets/5266/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-launcher-round-case-509b3d60","thumbnailUrl":"https://cdn.3dassets.dev/assets/5266/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5266/v1/poster.webp","blurhash":"U9EL~MR*00oMxt~oRk4:00s:^+M|E102xa?H","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":101152,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:41.079Z","updatedAt":"2026-09-06T06:08:41.263Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5266/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LauncherRoundCaseFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5266/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5266/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5266/v1/model.glb\" alt=\"Launcher round case (FPS Weapon Set and Firing 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/5266/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/5266/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5269","slug":"fps-weapon-set-and-firing-range-pistol-ammo-box-5abb0275","title":"Pistol ammo box (FPS Weapon Set and Firing Range)","summary":"Pistol ammo box with original detailed static 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. 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-ammo-box-5abb0275","cdnUrl":"https://cdn.3dassets.dev/assets/5269/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-pistol-ammo-box-5abb0275","thumbnailUrl":"https://cdn.3dassets.dev/assets/5269/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5269/v1/poster.webp","blurhash":"U6D+#Z0100-:xa-oNe9a00?G~V%M01Ir-.%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":101080,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:42.486Z","updatedAt":"2026-09-06T06:08:43.299Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5269/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PistolAmmoBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5269/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5269/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5269/v1/model.glb\" alt=\"Pistol ammo box (FPS Weapon Set and Firing 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/5269/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/5269/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5268","slug":"fps-weapon-set-and-firing-range-intermediate-ammo-box-35ac0771","title":"Intermediate ammo box (FPS Weapon Set and Firing Range)","summary":"Intermediate ammo box with original detailed static 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. 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-intermediate-ammo-box-35ac0771","cdnUrl":"https://cdn.3dassets.dev/assets/5268/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-intermediate-ammo-box-35ac0771","thumbnailUrl":"https://cdn.3dassets.dev/assets/5268/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5268/v1/poster.webp","blurhash":"U7DvDt4;00?Zsm%LShD+00s*~VtR4oNH%M%K","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":101152,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:42.110Z","updatedAt":"2026-09-06T06:08:42.269Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5268/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IntermediateAmmoBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5268/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5268/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5268/v1/model.glb\" alt=\"Intermediate ammo box (FPS Weapon Set and Firing 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/5268/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/5268/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5270","slug":"fps-weapon-set-and-firing-range-full-power-ammo-box-c44fe9ec","title":"Full-power ammo box (FPS Weapon Set and Firing Range)","summary":"Full-power ammo box with original detailed static 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. 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-full-power-ammo-box-c44fe9ec","cdnUrl":"https://cdn.3dassets.dev/assets/5270/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-full-power-ammo-box-c44fe9ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/5270/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5270/v1/poster.webp","blurhash":"U6DvAl0200^hVax@X8IC00-o~pxa9Zi{%ft6","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":101128,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:42.216Z","updatedAt":"2026-09-06T06:08:42.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5270/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FullPowerAmmoBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5270/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5270/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5270/v1/model.glb\" alt=\"Full-power ammo box (FPS Weapon Set and Firing 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/5270/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/5270/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5271","slug":"fps-weapon-set-and-firing-range-precision-ammo-box-a91eb4d9","title":"Precision ammo box (FPS Weapon Set and Firing Range)","summary":"Precision ammo box with original detailed static 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. 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-ammo-box-a91eb4d9","cdnUrl":"https://cdn.3dassets.dev/assets/5271/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-precision-ammo-box-a91eb4d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/5271/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5271/v1/poster.webp","blurhash":"U7DvDt0M00=^VuxuXSM{00%1~VozDiNG%ft7","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":101112,"triangles":2012,"vertices":6036,"meshes":6,"materials":5,"textures":0,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:42.425Z","updatedAt":"2026-09-06T06:08:42.483Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5271/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PrecisionAmmoBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5271/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5271/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5271/v1/model.glb\" alt=\"Precision ammo box (FPS Weapon Set and Firing 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/5271/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/5271/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5273","slug":"fps-weapon-set-and-firing-range-shotgun-shell-box-5c479620","title":"Shotgun shell box (FPS Weapon Set and Firing Range)","summary":"Shotgun shell box with original detailed static 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. 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-box-5c479620","cdnUrl":"https://cdn.3dassets.dev/assets/5273/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shotgun-shell-box-5c479620","thumbnailUrl":"https://cdn.3dassets.dev/assets/5273/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5273/v1/poster.webp","blurhash":"U7E.a[0100-S}:%L9~Dj00-o.8-p0LM|-U%f","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":87064,"triangles":1612,"vertices":4836,"meshes":5,"materials":4,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.128Z","updatedAt":"2026-09-06T06:08:43.262Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5273/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotgunShellBoxFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5273/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5273/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5273/v1/model.glb\" alt=\"Shotgun shell box (FPS Weapon Set and Firing 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/5273/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/5273/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5272","slug":"fps-weapon-set-and-firing-range-fragmentation-grenade-676db0ee","title":"Fragmentation grenade (FPS Weapon Set and Firing Range)","summary":"Fragmentation grenade with original detailed static 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-676db0ee","cdnUrl":"https://cdn.3dassets.dev/assets/5272/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-fragmentation-grenade-676db0ee","thumbnailUrl":"https://cdn.3dassets.dev/assets/5272/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5272/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":96900,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.087Z","updatedAt":"2026-09-06T06:08:44.109Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5272/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FragmentationGrenadeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5272/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5272/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5272/v1/model.glb\" alt=\"Fragmentation grenade (FPS Weapon Set and Firing 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/5272/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/5272/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5274","slug":"fps-weapon-set-and-firing-range-smoke-grenade-cf456e89","title":"Smoke grenade (FPS Weapon Set and Firing Range)","summary":"Smoke grenade with original detailed static 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-cf456e89","cdnUrl":"https://cdn.3dassets.dev/assets/5274/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-smoke-grenade-cf456e89","thumbnailUrl":"https://cdn.3dassets.dev/assets/5274/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5274/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":45900,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.353Z","updatedAt":"2026-09-06T06:08:43.409Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5274/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmokeGrenadeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5274/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5274/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5274/v1/model.glb\" alt=\"Smoke grenade (FPS Weapon Set and Firing 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/5274/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/5274/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5275","slug":"fps-weapon-set-and-firing-range-flash-grenade-133c2efc","title":"Flash grenade (FPS Weapon Set and Firing Range)","summary":"Flash grenade with original detailed static 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-133c2efc","cdnUrl":"https://cdn.3dassets.dev/assets/5275/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-flash-grenade-133c2efc","thumbnailUrl":"https://cdn.3dassets.dev/assets/5275/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5275/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":40032,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.632Z","updatedAt":"2026-09-06T06:08:43.791Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5275/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlashGrenadeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5275/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5275/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5275/v1/model.glb\" alt=\"Flash grenade (FPS Weapon Set and Firing 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/5275/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/5275/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5276","slug":"fps-weapon-set-and-firing-range-lane-booth-13c8991b","title":"Lane booth (FPS Weapon Set and Firing Range)","summary":"Lane booth with original detailed static 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-13c8991b","cdnUrl":"https://cdn.3dassets.dev/assets/5276/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lane-booth-13c8991b","thumbnailUrl":"https://cdn.3dassets.dev/assets/5276/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5276/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":230096,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.778Z","updatedAt":"2026-09-06T06:08:44.825Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5276/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneBoothFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5276/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5276/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5276/v1/model.glb\" alt=\"Lane booth (FPS Weapon Set and Firing 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/5276/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/5276/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5277","slug":"fps-weapon-set-and-firing-range-lane-divider-ecca2c54","title":"Lane divider (FPS Weapon Set and Firing Range)","summary":"Lane divider with original detailed static 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-ecca2c54","cdnUrl":"https://cdn.3dassets.dev/assets/5277/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-lane-divider-ecca2c54","thumbnailUrl":"https://cdn.3dassets.dev/assets/5277/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5277/v1/poster.webp","blurhash":"U3A]Tt+?00Brvf^*E20L2wI@{{v}xu-;M|9F","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":142172,"triangles":2776,"vertices":8328,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.692020944643784,-7.450584593726717e-11,-0.2500297587790648],"max":[0.692020944643784,1.850000023841858,0.2500297587790648]},"sizeMeters":[1.384,1.85,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.745Z","updatedAt":"2026-09-06T06:08:43.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5277/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneDividerFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5277/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5277/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5277/v1/model.glb\" alt=\"Lane divider (FPS Weapon Set and Firing 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/5277/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/5277/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5278","slug":"fps-weapon-set-and-firing-range-bench-rest-46bb3e0c","title":"Bench rest (FPS Weapon Set and Firing Range)","summary":"Bench rest with original detailed static 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-46bb3e0c","cdnUrl":"https://cdn.3dassets.dev/assets/5278/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bench-rest-46bb3e0c","thumbnailUrl":"https://cdn.3dassets.dev/assets/5278/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5278/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":341116,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:43.926Z","updatedAt":"2026-09-06T06:08:44.016Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5278/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchRestFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5278/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5278/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5278/v1/model.glb\" alt=\"Bench rest (FPS Weapon Set and Firing 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/5278/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/5278/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5280","slug":"fps-weapon-set-and-firing-range-target-carrier-rail-288c71e9","title":"Target carrier rail (FPS Weapon Set and Firing Range)","summary":"Target carrier rail with original detailed static 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-288c71e9","cdnUrl":"https://cdn.3dassets.dev/assets/5280/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-target-carrier-rail-288c71e9","thumbnailUrl":"https://cdn.3dassets.dev/assets/5280/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5280/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":114152,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:44.704Z","updatedAt":"2026-09-06T06:08:44.827Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5280/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TargetCarrierRailFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5280/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5280/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5280/v1/model.glb\" alt=\"Target carrier rail (FPS Weapon Set and Firing 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/5280/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/5280/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5279","slug":"fps-weapon-set-and-firing-range-paper-target-frame-807a9c66","title":"Paper target frame (FPS Weapon Set and Firing Range)","summary":"Paper target frame with original detailed static 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-807a9c66","cdnUrl":"https://cdn.3dassets.dev/assets/5279/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-paper-target-frame-807a9c66","thumbnailUrl":"https://cdn.3dassets.dev/assets/5279/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5279/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":182276,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:44.739Z","updatedAt":"2026-09-06T06:08:44.814Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5279/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PaperTargetFrameFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5279/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5279/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5279/v1/model.glb\" alt=\"Paper target frame (FPS Weapon Set and Firing 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/5279/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/5279/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5281","slug":"fps-weapon-set-and-firing-range-steel-popper-dfe9d829","title":"Steel popper (FPS Weapon Set and Firing Range)","summary":"Steel popper with original detailed static 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. 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-steel-popper-dfe9d829","cdnUrl":"https://cdn.3dassets.dev/assets/5281/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-steel-popper-dfe9d829","thumbnailUrl":"https://cdn.3dassets.dev/assets/5281/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5281/v1/poster.webp","blurhash":"U89sn[xZ00NG0kNb}mxE#PxGTLI:$$R+S4xG","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":16252,"triangles":236,"vertices":708,"meshes":3,"materials":3,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:44.831Z","updatedAt":"2026-09-06T06:08:44.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5281/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteelPopperFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5281/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5281/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5281/v1/model.glb\" alt=\"Steel popper (FPS Weapon Set and Firing 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/5281/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/5281/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5282","slug":"fps-weapon-set-and-firing-range-plate-rack-0f123b3e","title":"Plate rack (FPS Weapon Set and Firing Range)","summary":"Plate rack with original detailed static 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-0f123b3e","cdnUrl":"https://cdn.3dassets.dev/assets/5282/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-plate-rack-0f123b3e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5282/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5282/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":147212,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:45.156Z","updatedAt":"2026-09-06T06:08:45.273Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5282/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlateRackFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5282/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5282/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5282/v1/model.glb\" alt=\"Plate rack (FPS Weapon Set and Firing 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/5282/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/5282/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5283","slug":"fps-weapon-set-and-firing-range-dueling-tree-6c928508","title":"Dueling tree (FPS Weapon Set and Firing Range)","summary":"Dueling tree with original detailed static 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-6c928508","cdnUrl":"https://cdn.3dassets.dev/assets/5283/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-dueling-tree-6c928508","thumbnailUrl":"https://cdn.3dassets.dev/assets/5283/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5283/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":170124,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:45.310Z","updatedAt":"2026-09-06T06:08:45.381Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5283/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DuelingTreeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5283/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5283/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5283/v1/model.glb\" alt=\"Dueling tree (FPS Weapon Set and Firing 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/5283/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/5283/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5284","slug":"fps-weapon-set-and-firing-range-silhouette-target-3bfccb80","title":"Silhouette target (FPS Weapon Set and Firing Range)","summary":"Silhouette target with original detailed static 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-3bfccb80","cdnUrl":"https://cdn.3dassets.dev/assets/5284/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-silhouette-target-3bfccb80","thumbnailUrl":"https://cdn.3dassets.dev/assets/5284/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5284/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":125144,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:45.563Z","updatedAt":"2026-09-06T06:08:46.488Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5284/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SilhouetteTargetFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5284/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5284/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5284/v1/model.glb\" alt=\"Silhouette target (FPS Weapon Set and Firing 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/5284/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/5284/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5285","slug":"fps-weapon-set-and-firing-range-moving-target-track-41e73e1e","title":"Moving target track (FPS Weapon Set and Firing Range)","summary":"Moving target track with original detailed static 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-41e73e1e","cdnUrl":"https://cdn.3dassets.dev/assets/5285/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-moving-target-track-41e73e1e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5285/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5285/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":226996,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:45.484Z","updatedAt":"2026-09-06T06:08:45.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5285/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MovingTargetTrackFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5285/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5285/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5285/v1/model.glb\" alt=\"Moving target track (FPS Weapon Set and Firing 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/5285/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/5285/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5288","slug":"fps-weapon-set-and-firing-range-earth-berm-94595bb6","title":"Earth berm (FPS Weapon Set and Firing Range)","summary":"Earth berm with original detailed static 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-94595bb6","cdnUrl":"https://cdn.3dassets.dev/assets/5288/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-earth-berm-94595bb6","thumbnailUrl":"https://cdn.3dassets.dev/assets/5288/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5288/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":46108,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.210Z","updatedAt":"2026-09-06T06:08:46.360Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5288/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EarthBermFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5288/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5288/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5288/v1/model.glb\" alt=\"Earth berm (FPS Weapon Set and Firing 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/5288/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/5288/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5286","slug":"fps-weapon-set-and-firing-range-overhead-baffle-f4328e84","title":"Overhead baffle (FPS Weapon Set and Firing Range)","summary":"Overhead baffle with original detailed static 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-f4328e84","cdnUrl":"https://cdn.3dassets.dev/assets/5286/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-overhead-baffle-f4328e84","thumbnailUrl":"https://cdn.3dassets.dev/assets/5286/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5286/v1/poster.webp","blurhash":"U15=9B~q%M-;00?bM{4n0000IUxu_N?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":101052,"triangles":2068,"vertices":6204,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5839999914169312,-0.00010963868537672283,-0.08392052934659237],"max":[1.5839999914169312,2.8001095911134195,0.08392052934659237]},"sizeMeters":[3.168,2.8,0.168],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.190Z","updatedAt":"2026-09-06T06:08:46.252Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5286/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OverheadBaffleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5286/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5286/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5286/v1/model.glb\" alt=\"Overhead baffle (FPS Weapon Set and Firing 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/5286/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/5286/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5287","slug":"fps-weapon-set-and-firing-range-angled-backstop-470fd251","title":"Angled backstop (FPS Weapon Set and Firing Range)","summary":"Angled backstop with original detailed static 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-470fd251","cdnUrl":"https://cdn.3dassets.dev/assets/5287/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-angled-backstop-470fd251","thumbnailUrl":"https://cdn.3dassets.dev/assets/5287/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5287/v1/poster.webp","blurhash":"U68}3?WC4nWB~q?bIUIU00-;%NIUITt6xuRj","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":102300,"triangles":2080,"vertices":6240,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00007553033072085769,-0.3360568926617843],"max":[1.5,2.1000359067073235,0.33593589467921847]},"sizeMeters":[3,2.1,0.672],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.255Z","updatedAt":"2026-09-06T06:08:46.299Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5287/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AngledBackstopFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5287/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5287/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5287/v1/model.glb\" alt=\"Angled backstop (FPS Weapon Set and Firing 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/5287/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/5287/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5289","slug":"fps-weapon-set-and-firing-range-range-flag-f029481f","title":"Range flag (FPS Weapon Set and Firing Range)","summary":"Range flag with original detailed static 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-f029481f","cdnUrl":"https://cdn.3dassets.dev/assets/5289/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-flag-f029481f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5289/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5289/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":30564,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.181Z","updatedAt":"2026-09-06T06:08:46.383Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5289/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeFlagFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5289/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5289/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5289/v1/model.glb\" alt=\"Range flag (FPS Weapon Set and Firing 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/5289/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/5289/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5290","slug":"fps-weapon-set-and-firing-range-shooting-mat-357c8b9a","title":"Shooting mat (FPS Weapon Set and Firing Range)","summary":"Shooting mat with original detailed static 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-357c8b9a","cdnUrl":"https://cdn.3dassets.dev/assets/5290/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shooting-mat-357c8b9a","thumbnailUrl":"https://cdn.3dassets.dev/assets/5290/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5290/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":17288,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.490Z","updatedAt":"2026-09-06T06:08:46.707Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5290/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShootingMatFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5290/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5290/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5290/v1/model.glb\" alt=\"Shooting mat (FPS Weapon Set and Firing 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/5290/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/5290/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5291","slug":"fps-weapon-set-and-firing-range-ammo-can-dd9ef53d","title":"Ammo can (FPS Weapon Set and Firing Range)","summary":"Ammo can with original detailed static 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. 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-can-dd9ef53d","cdnUrl":"https://cdn.3dassets.dev/assets/5291/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ammo-can-dd9ef53d","thumbnailUrl":"https://cdn.3dassets.dev/assets/5291/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5291/v1/poster.webp","blurhash":"U8BgM0WV00Rk_LxtIUIV4Wj?V@oKRjt7RkRQ","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":71144,"triangles":1228,"vertices":3684,"meshes":4,"materials":3,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.679Z","updatedAt":"2026-09-06T06:08:46.843Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5291/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmmoCanFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5291/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5291/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5291/v1/model.glb\" alt=\"Ammo can (FPS Weapon Set and Firing 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/5291/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/5291/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5292","slug":"fps-weapon-set-and-firing-range-ear-defender-rack-c0578b06","title":"Ear defender rack (FPS Weapon Set and Firing Range)","summary":"Ear defender rack with original detailed static 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-c0578b06","cdnUrl":"https://cdn.3dassets.dev/assets/5292/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ear-defender-rack-c0578b06","thumbnailUrl":"https://cdn.3dassets.dev/assets/5292/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5292/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":238988,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:46.927Z","updatedAt":"2026-09-06T06:08:47.046Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5292/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EarDefenderRackFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5292/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5292/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5292/v1/model.glb\" alt=\"Ear defender rack (FPS Weapon Set and Firing 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/5292/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/5292/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5293","slug":"fps-weapon-set-and-firing-range-safety-sign-cefff27c","title":"Safety sign (FPS Weapon Set and Firing Range)","summary":"Safety sign with original detailed static 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-cefff27c","cdnUrl":"https://cdn.3dassets.dev/assets/5293/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-safety-sign-cefff27c","thumbnailUrl":"https://cdn.3dassets.dev/assets/5293/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5293/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":140004,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:47.731Z","updatedAt":"2026-09-06T06:08:48.700Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5293/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SafetySignFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5293/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5293/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5293/v1/model.glb\" alt=\"Safety sign (FPS Weapon Set and Firing 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/5293/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/5293/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5294","slug":"fps-weapon-set-and-firing-range-shot-timer-0bdb2ae5","title":"Shot timer (FPS Weapon Set and Firing Range)","summary":"Shot timer with original detailed static 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-0bdb2ae5","cdnUrl":"https://cdn.3dassets.dev/assets/5294/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shot-timer-0bdb2ae5","thumbnailUrl":"https://cdn.3dassets.dev/assets/5294/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5294/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":23056,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:47.741Z","updatedAt":"2026-09-06T06:08:48.737Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5294/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotTimerFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5294/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5294/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5294/v1/model.glb\" alt=\"Shot timer (FPS Weapon Set and Firing 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/5294/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/5294/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5296","slug":"fps-weapon-set-and-firing-range-spotting-scope-79fc8285","title":"Spotting scope (FPS Weapon Set and Firing Range)","summary":"Spotting scope with original detailed static 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-79fc8285","cdnUrl":"https://cdn.3dassets.dev/assets/5296/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-spotting-scope-79fc8285","thumbnailUrl":"https://cdn.3dassets.dev/assets/5296/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5296/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":45996,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:47.822Z","updatedAt":"2026-09-06T06:08:47.878Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5296/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpottingScopeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5296/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5296/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5296/v1/model.glb\" alt=\"Spotting scope (FPS Weapon Set and Firing 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/5296/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/5296/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5295","slug":"fps-weapon-set-and-firing-range-sandbag-rest-16ad42fe","title":"Sandbag rest (FPS Weapon Set and Firing Range)","summary":"Sandbag rest with original detailed static 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-16ad42fe","cdnUrl":"https://cdn.3dassets.dev/assets/5295/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-sandbag-rest-16ad42fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/5295/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5295/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":98396,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:47.790Z","updatedAt":"2026-09-06T06:08:47.843Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5295/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SandbagRestFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5295/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5295/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5295/v1/model.glb\" alt=\"Sandbag rest (FPS Weapon Set and Firing 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/5295/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/5295/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5297","slug":"fps-weapon-set-and-firing-range-shooting-stick-3e7c1d09","title":"Shooting stick (FPS Weapon Set and Firing Range)","summary":"Shooting stick with original detailed static 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-3e7c1d09","cdnUrl":"https://cdn.3dassets.dev/assets/5297/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-shooting-stick-3e7c1d09","thumbnailUrl":"https://cdn.3dassets.dev/assets/5297/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5297/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":51844,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:47.903Z","updatedAt":"2026-09-06T06:08:48.001Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5297/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShootingStickFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5297/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5297/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5297/v1/model.glb\" alt=\"Shooting stick (FPS Weapon Set and Firing 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/5297/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/5297/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5298","slug":"fps-weapon-set-and-firing-range-brass-bucket-96d5d9e6","title":"Brass bucket (FPS Weapon Set and Firing Range)","summary":"Brass bucket with original detailed static 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-96d5d9e6","cdnUrl":"https://cdn.3dassets.dev/assets/5298/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-brass-bucket-96d5d9e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/5298/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5298/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":35552,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:48.055Z","updatedAt":"2026-09-06T06:08:48.183Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5298/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrassBucketFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5298/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5298/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5298/v1/model.glb\" alt=\"Brass bucket (FPS Weapon Set and Firing 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/5298/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/5298/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5299","slug":"fps-weapon-set-and-firing-range-range-officer-tower-3d7c6955","title":"Range officer tower (FPS Weapon Set and Firing Range)","summary":"Range officer tower with original detailed static 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-3d7c6955","cdnUrl":"https://cdn.3dassets.dev/assets/5299/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-officer-tower-3d7c6955","thumbnailUrl":"https://cdn.3dassets.dev/assets/5299/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5299/v1/poster.webp","blurhash":"U5A,j~-;009Z~SWA9IxvGXRjMJxaPUoz#,Vs","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":468044,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:48.298Z","updatedAt":"2026-09-06T06:08:48.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5299/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeOfficerTowerFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5299/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5299/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5299/v1/model.glb\" alt=\"Range officer tower (FPS Weapon Set and Firing 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/5299/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/5299/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5300","slug":"fps-weapon-set-and-firing-range-gun-rest-179a33b2","title":"Gun rest (FPS Weapon Set and Firing Range)","summary":"Gun rest with original detailed static 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-179a33b2","cdnUrl":"https://cdn.3dassets.dev/assets/5300/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-rest-179a33b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/5300/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5300/v1/poster.webp","blurhash":"U56a;n%200IV00Rj-;s.D%jbxubH_4WYM_xa","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":30892,"triangles":516,"vertices":1548,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.14000000059604645,-0.000004275877583059806,-0.14000000059604645],"max":[0.14000000059604645,0.2899993862521897,0.14000000059604645]},"sizeMeters":[0.28,0.29,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:48.375Z","updatedAt":"2026-09-06T06:08:48.481Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5300/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunRestFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5300/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5300/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5300/v1/model.glb\" alt=\"Gun rest (FPS Weapon Set and Firing 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/5300/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/5300/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5301","slug":"fps-weapon-set-and-firing-range-range-bench-a4242b2a","title":"Range bench (FPS Weapon Set and Firing Range)","summary":"Range bench with original detailed static 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-a4242b2a","cdnUrl":"https://cdn.3dassets.dev/assets/5301/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-bench-a4242b2a","thumbnailUrl":"https://cdn.3dassets.dev/assets/5301/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5301/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":217108,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.228Z","updatedAt":"2026-09-06T06:08:49.332Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5301/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeBenchFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5301/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5301/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5301/v1/model.glb\" alt=\"Range bench (FPS Weapon Set and Firing 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/5301/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/5301/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5302","slug":"fps-weapon-set-and-firing-range-traffic-cone-86cc705c","title":"Traffic cone (FPS Weapon Set and Firing Range)","summary":"Traffic cone with original detailed static 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-86cc705c","cdnUrl":"https://cdn.3dassets.dev/assets/5302/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-traffic-cone-86cc705c","thumbnailUrl":"https://cdn.3dassets.dev/assets/5302/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5302/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":30168,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.262Z","updatedAt":"2026-09-06T06:08:49.329Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5302/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrafficConeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5302/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5302/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5302/v1/model.glb\" alt=\"Traffic cone (FPS Weapon Set and Firing 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/5302/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/5302/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5303","slug":"fps-weapon-set-and-firing-range-barricade-wall-2a33b192","title":"Barricade wall (FPS Weapon Set and Firing Range)","summary":"Barricade wall with original detailed static 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-2a33b192","cdnUrl":"https://cdn.3dassets.dev/assets/5303/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-barricade-wall-2a33b192","thumbnailUrl":"https://cdn.3dassets.dev/assets/5303/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5303/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":123048,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.401Z","updatedAt":"2026-09-06T06:08:49.487Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5303/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarricadeWallFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5303/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5303/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5303/v1/model.glb\" alt=\"Barricade wall (FPS Weapon Set and Firing 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/5303/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/5303/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5304","slug":"fps-weapon-set-and-firing-range-multi-port-training-wa-8e21ed74","title":"Multi-port training wall (FPS Weapon Set and Firing Range)","summary":"Multi-port training wall with original detailed static 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-8e21ed74","cdnUrl":"https://cdn.3dassets.dev/assets/5304/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-multi-port-training-wa-8e21ed74","thumbnailUrl":"https://cdn.3dassets.dev/assets/5304/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5304/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":174952,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.558Z","updatedAt":"2026-09-06T06:08:49.644Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5304/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MultiPortTrainingWallFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5304/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5304/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5304/v1/model.glb\" alt=\"Multi-port training wall (FPS Weapon Set and Firing 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/5304/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/5304/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5305","slug":"fps-weapon-set-and-firing-range-range-lane-foundation-dcfe6ace","title":"Range lane foundation (FPS Weapon Set and Firing Range)","summary":"Range lane foundation with original detailed static 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-dcfe6ace","cdnUrl":"https://cdn.3dassets.dev/assets/5305/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-range-lane-foundation-dcfe6ace","thumbnailUrl":"https://cdn.3dassets.dev/assets/5305/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5305/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":19640,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.732Z","updatedAt":"2026-09-06T06:08:49.810Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5305/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RangeLaneFoundationFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5305/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5305/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5305/v1/model.glb\" alt=\"Range lane foundation (FPS Weapon Set and Firing 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/5305/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/5305/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5306","slug":"fps-weapon-set-and-firing-range-gun-safe-3cb399a5","title":"Gun safe (FPS Weapon Set and Firing Range)","summary":"Gun safe with original detailed static 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. 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-safe-3cb399a5","cdnUrl":"https://cdn.3dassets.dev/assets/5306/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-safe-3cb399a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/5306/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5306/v1/poster.webp","blurhash":"U17K#g~X0000?ws:8^OYJAMxaI%#.Tn+I9OX","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":95164,"triangles":1644,"vertices":4932,"meshes":4,"materials":3,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:49.704Z","updatedAt":"2026-09-06T06:08:49.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5306/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunSafeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5306/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5306/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5306/v1/model.glb\" alt=\"Gun safe (FPS Weapon Set and Firing 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/5306/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/5306/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5307","slug":"fps-weapon-set-and-firing-range-wall-weapon-rack-b381482b","title":"Wall weapon rack (FPS Weapon Set and Firing Range)","summary":"Wall weapon rack with original detailed static 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-b381482b","cdnUrl":"https://cdn.3dassets.dev/assets/5307/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-wall-weapon-rack-b381482b","thumbnailUrl":"https://cdn.3dassets.dev/assets/5307/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5307/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":184044,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:50.029Z","updatedAt":"2026-09-06T06:08:50.160Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5307/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallWeaponRackFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5307/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5307/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5307/v1/model.glb\" alt=\"Wall weapon rack (FPS Weapon Set and Firing 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/5307/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/5307/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5308","slug":"fps-weapon-set-and-firing-range-cleaning-bench-e937fd59","title":"Cleaning bench (FPS Weapon Set and Firing Range)","summary":"Cleaning bench with original detailed static 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-e937fd59","cdnUrl":"https://cdn.3dassets.dev/assets/5308/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-cleaning-bench-e937fd59","thumbnailUrl":"https://cdn.3dassets.dev/assets/5308/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5308/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":226012,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:50.142Z","updatedAt":"2026-09-06T06:08:50.252Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5308/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CleaningBenchFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5308/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5308/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5308/v1/model.glb\" alt=\"Cleaning bench (FPS Weapon Set and Firing 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/5308/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/5308/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5309","slug":"fps-weapon-set-and-firing-range-bench-vice-1ad2816d","title":"Bench vice (FPS Weapon Set and Firing Range)","summary":"Bench vice with original detailed static 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-1ad2816d","cdnUrl":"https://cdn.3dassets.dev/assets/5309/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-bench-vice-1ad2816d","thumbnailUrl":"https://cdn.3dassets.dev/assets/5309/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5309/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":35552,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:50.709Z","updatedAt":"2026-09-06T06:08:50.791Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5309/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchViceFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5309/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5309/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5309/v1/model.glb\" alt=\"Bench vice (FPS Weapon Set and Firing 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/5309/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/5309/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5310","slug":"fps-weapon-set-and-firing-range-tool-roll-b19237d9","title":"Tool roll (FPS Weapon Set and Firing Range)","summary":"Tool roll with original detailed static 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-b19237d9","cdnUrl":"https://cdn.3dassets.dev/assets/5310/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-tool-roll-b19237d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/5310/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5310/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":95556,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:50.657Z","updatedAt":"2026-09-06T06:08:50.845Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5310/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ToolRollFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5310/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5310/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5310/v1/model.glb\" alt=\"Tool roll (FPS Weapon Set and Firing 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/5310/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/5310/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5311","slug":"fps-weapon-set-and-firing-range-cleaning-kit-2a0bb69e","title":"Cleaning kit (FPS Weapon Set and Firing Range)","summary":"Cleaning kit with original detailed static 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-2a0bb69e","cdnUrl":"https://cdn.3dassets.dev/assets/5311/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-cleaning-kit-2a0bb69e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5311/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5311/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":75876,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:50.810Z","updatedAt":"2026-09-06T06:08:50.940Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5311/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CleaningKitFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5311/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5311/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5311/v1/model.glb\" alt=\"Cleaning kit (FPS Weapon Set and Firing 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/5311/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/5311/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5312","slug":"fps-weapon-set-and-firing-range-parts-tray-9768b0e0","title":"Parts tray (FPS Weapon Set and Firing Range)","summary":"Parts tray with original detailed static 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-9768b0e0","cdnUrl":"https://cdn.3dassets.dev/assets/5312/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-parts-tray-9768b0e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/5312/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5312/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":42516,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:51.034Z","updatedAt":"2026-09-06T06:08:51.129Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5312/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PartsTrayFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5312/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5312/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5312/v1/model.glb\" alt=\"Parts tray (FPS Weapon Set and Firing 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/5312/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/5312/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5313","slug":"fps-weapon-set-and-firing-range-gun-case-de0d372a","title":"Gun case (FPS Weapon Set and Firing Range)","summary":"Gun case with original detailed static 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-de0d372a","cdnUrl":"https://cdn.3dassets.dev/assets/5313/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-case-de0d372a","thumbnailUrl":"https://cdn.3dassets.dev/assets/5313/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5313/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":61988,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:51.051Z","updatedAt":"2026-09-06T06:08:51.256Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5313/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunCaseFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5313/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5313/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5313/v1/model.glb\" alt=\"Gun case (FPS Weapon Set and Firing 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/5313/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/5313/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5314","slug":"fps-weapon-set-and-firing-range-holster-14c3c389","title":"Holster (FPS Weapon Set and Firing Range)","summary":"Holster with original detailed static 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-14c3c389","cdnUrl":"https://cdn.3dassets.dev/assets/5314/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-holster-14c3c389","thumbnailUrl":"https://cdn.3dassets.dev/assets/5314/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5314/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":14852,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:51.177Z","updatedAt":"2026-09-06T06:08:51.370Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5314/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HolsterFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5314/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5314/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5314/v1/model.glb\" alt=\"Holster (FPS Weapon Set and Firing 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/5314/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/5314/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5315","slug":"fps-weapon-set-and-firing-range-chest-rig-d4f72290","title":"Chest rig (FPS Weapon Set and Firing Range)","summary":"Chest rig with original detailed static 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-d4f72290","cdnUrl":"https://cdn.3dassets.dev/assets/5315/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-chest-rig-d4f72290","thumbnailUrl":"https://cdn.3dassets.dev/assets/5315/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5315/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":76680,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:51.353Z","updatedAt":"2026-09-06T06:08:51.576Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5315/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChestRigFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5315/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5315/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5315/v1/model.glb\" alt=\"Chest rig (FPS Weapon Set and Firing 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/5315/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/5315/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5316","slug":"fps-weapon-set-and-firing-range-plate-carrier-610b0a3c","title":"Plate carrier (FPS Weapon Set and Firing Range)","summary":"Plate carrier with original detailed static 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-610b0a3c","cdnUrl":"https://cdn.3dassets.dev/assets/5316/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-plate-carrier-610b0a3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/5316/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5316/v1/poster.webp","blurhash":"U5Am*d~W004:_3%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":82608,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:51.577Z","updatedAt":"2026-09-06T06:08:51.742Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5316/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlateCarrierFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5316/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5316/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5316/v1/model.glb\" alt=\"Plate carrier (FPS Weapon Set and Firing 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/5316/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/5316/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5317","slug":"fps-weapon-set-and-firing-range-ballistic-helmet-3fc16b24","title":"Ballistic helmet (FPS Weapon Set and Firing Range)","summary":"Ballistic helmet with original detailed static 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-3fc16b24","cdnUrl":"https://cdn.3dassets.dev/assets/5317/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ballistic-helmet-3fc16b24","thumbnailUrl":"https://cdn.3dassets.dev/assets/5317/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5317/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":73960,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.082Z","updatedAt":"2026-09-06T06:08:52.259Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5317/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallisticHelmetFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5317/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5317/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5317/v1/model.glb\" alt=\"Ballistic helmet (FPS Weapon Set and Firing 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/5317/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/5317/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5318","slug":"fps-weapon-set-and-firing-range-magazine-pouch-set-c2a45439","title":"Magazine pouch set (FPS Weapon Set and Firing Range)","summary":"Magazine pouch set with original detailed static 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-c2a45439","cdnUrl":"https://cdn.3dassets.dev/assets/5318/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-magazine-pouch-set-c2a45439","thumbnailUrl":"https://cdn.3dassets.dev/assets/5318/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5318/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":48504,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.324Z","updatedAt":"2026-09-06T06:08:53.282Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5318/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagazinePouchSetFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5318/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5318/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5318/v1/model.glb\" alt=\"Magazine pouch set (FPS Weapon Set and Firing 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/5318/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/5318/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5319","slug":"fps-weapon-set-and-firing-range-drop-leg-holster-3f712980","title":"Drop leg holster (FPS Weapon Set and Firing Range)","summary":"Drop leg holster with original detailed static 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-3f712980","cdnUrl":"https://cdn.3dassets.dev/assets/5319/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-drop-leg-holster-3f712980","thumbnailUrl":"https://cdn.3dassets.dev/assets/5319/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5319/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":20088,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.209Z","updatedAt":"2026-09-06T06:08:52.385Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5319/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DropLegHolsterFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5319/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5319/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5319/v1/model.glb\" alt=\"Drop leg holster (FPS Weapon Set and Firing 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/5319/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/5319/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5321","slug":"fps-weapon-set-and-firing-range-equipment-belt-b15bd23d","title":"Equipment belt (FPS Weapon Set and Firing Range)","summary":"Equipment belt with original detailed static 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-b15bd23d","cdnUrl":"https://cdn.3dassets.dev/assets/5321/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-equipment-belt-b15bd23d","thumbnailUrl":"https://cdn.3dassets.dev/assets/5321/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5321/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":34636,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.669Z","updatedAt":"2026-09-06T06:08:52.760Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5321/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EquipmentBeltFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5321/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5321/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5321/v1/model.glb\" alt=\"Equipment belt (FPS Weapon Set and Firing 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/5321/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/5321/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5320","slug":"fps-weapon-set-and-firing-range-backpack-73efeb8e","title":"Backpack (FPS Weapon Set and Firing Range)","summary":"Backpack with original detailed static 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-73efeb8e","cdnUrl":"https://cdn.3dassets.dev/assets/5320/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-backpack-73efeb8e","thumbnailUrl":"https://cdn.3dassets.dev/assets/5320/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5320/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":50176,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.599Z","updatedAt":"2026-09-06T06:08:52.689Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5320/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BackpackFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5320/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5320/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5320/v1/model.glb\" alt=\"Backpack (FPS Weapon Set and Firing 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/5320/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/5320/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5322","slug":"fps-weapon-set-and-firing-range-ammo-shelf-e2d642cc","title":"Ammo shelf (FPS Weapon Set and Firing Range)","summary":"Ammo shelf with original detailed static 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-e2d642cc","cdnUrl":"https://cdn.3dassets.dev/assets/5322/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-ammo-shelf-e2d642cc","thumbnailUrl":"https://cdn.3dassets.dev/assets/5322/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5322/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":250184,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:52.855Z","updatedAt":"2026-09-06T06:08:52.931Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5322/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AmmoShelfFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5322/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5322/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5322/v1/model.glb\" alt=\"Ammo shelf (FPS Weapon Set and Firing 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/5322/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/5322/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5323","slug":"fps-weapon-set-and-firing-range-workbench-light-35703d2f","title":"Workbench light (FPS Weapon Set and Firing Range)","summary":"Workbench light with original detailed static 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-35703d2f","cdnUrl":"https://cdn.3dassets.dev/assets/5323/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-workbench-light-35703d2f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5323/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5323/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":48820,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:53.005Z","updatedAt":"2026-09-06T06:08:53.069Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5323/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WorkbenchLightFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5323/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5323/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5323/v1/model.glb\" alt=\"Workbench light (FPS Weapon Set and Firing 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/5323/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/5323/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5324","slug":"fps-weapon-set-and-firing-range-gun-oil-bottle-8b78471f","title":"Gun oil bottle (FPS Weapon Set and Firing Range)","summary":"Gun oil bottle with original detailed static 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-8b78471f","cdnUrl":"https://cdn.3dassets.dev/assets/5324/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gun-oil-bottle-8b78471f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5324/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5324/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":27172,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:53.043Z","updatedAt":"2026-09-06T06:08:53.190Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5324/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunOilBottleFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5324/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5324/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5324/v1/model.glb\" alt=\"Gun oil bottle (FPS Weapon Set and Firing 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/5324/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/5324/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5325","slug":"fps-weapon-set-and-firing-range-armourer-cabinet-330b3d57","title":"Armourer cabinet (FPS Weapon Set and Firing Range)","summary":"Armourer cabinet with original detailed static 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. 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-armourer-cabinet-330b3d57","cdnUrl":"https://cdn.3dassets.dev/assets/5325/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-armourer-cabinet-330b3d57","thumbnailUrl":"https://cdn.3dassets.dev/assets/5325/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5325/v1/poster.webp","blurhash":"U384oP-=008__4t8IAMyNFRjV]xb%gxuRPMx","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":95228,"triangles":1644,"vertices":4932,"meshes":4,"materials":3,"textures":1,"animations":[],"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:53.663Z","updatedAt":"2026-09-06T06:08:53.723Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5325/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArmourerCabinetFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5325/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5325/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5325/v1/model.glb\" alt=\"Armourer cabinet (FPS Weapon Set and Firing 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/5325/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/5325/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5326","slug":"fps-weapon-set-and-firing-range-reloading-press-3f94ba93","title":"Reloading press (FPS Weapon Set and Firing Range)","summary":"Reloading press with original detailed static 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-3f94ba93","cdnUrl":"https://cdn.3dassets.dev/assets/5326/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-reloading-press-3f94ba93","thumbnailUrl":"https://cdn.3dassets.dev/assets/5326/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5326/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":47152,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:54.017Z","updatedAt":"2026-09-06T06:08:54.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5326/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReloadingPressFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5326/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5326/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5326/v1/model.glb\" alt=\"Reloading press (FPS Weapon Set and Firing 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/5326/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/5326/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5327","slug":"fps-weapon-set-and-firing-range-chronograph-29ba150f","title":"Chronograph (FPS Weapon Set and Firing Range)","summary":"Chronograph with original detailed static 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-29ba150f","cdnUrl":"https://cdn.3dassets.dev/assets/5327/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-chronograph-29ba150f","thumbnailUrl":"https://cdn.3dassets.dev/assets/5327/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5327/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":62312,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:54.230Z","updatedAt":"2026-09-06T06:08:55.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5327/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChronographFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5327/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5327/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5327/v1/model.glb\" alt=\"Chronograph (FPS Weapon Set and Firing 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/5327/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/5327/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5330","slug":"fps-weapon-set-and-firing-range-four-lan-adb77361-starter-scene","title":"Four-lane range (FPS Weapon Set and Firing Range)","summary":"Composed example for FPS Weapon Set and Firing Range.","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-adb77361-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/5330/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-four-lan-adb77361-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/5330/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5330/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":599484,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:55.257Z","updatedAt":"2026-09-06T06:08:55.712Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5330/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourLaneRangeFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5330/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5330/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5330/v1/model.glb\" alt=\"Four-lane range (FPS Weapon Set and Firing 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/5330/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/5330/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"5329","slug":"fps-weapon-set-and-firing-range-gunsmith-attachment-as-f3908442","title":"Gunsmith attachment assembly (FPS Weapon Set and Firing Range)","summary":"Composed example for FPS Weapon Set and Firing Range.","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-f3908442","cdnUrl":"https://cdn.3dassets.dev/assets/5329/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fps-weapon-set-and-firing-range-gunsmith-attachment-as-f3908442","thumbnailUrl":"https://cdn.3dassets.dev/assets/5329/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/5329/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":904704,"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":"GPT-6 via Codex; Claude Fable 5.1 recovered brief and geometry kit","downloads":0,"publishedAt":"2026-09-06T06:08:54.806Z","updatedAt":"2026-09-06T06:08:55.587Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/5329/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GunsmithAttachmentAssemblyFPSWeaponSetAndFiringRange(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/5329/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/5329/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/5329/v1/model.glb\" alt=\"Gunsmith attachment assembly (FPS Weapon Set and Firing 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/5329/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/5329/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}