
About
Bullpup personal defence weapon Dimensions 0.07 × 0.26 × 0.49 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Blued steel, galvanised frames, walnut, polymer and canvas. Static geometry; no rig, animation, collision or navigation data. Rigid node-transform clips stock-open, stock-close, magazine-open, magazine-close work the named parts on their own pivots; there is no skinning. +Z faces front.
Use with an AI agent
Copy this prompt into your AI chat, then describe what you want to build with the asset.
Use the “Bullpup personal defence weapon (FPS Weapon Set and Firing Range)” asset in my project. Model: https://cdn.3dassets.dev/assets/19431/v1/model.glb Asset page: https://3dassets.dev/assets/fps-weapon-set-and-firing-range-pdw-554b106e Description: Bullpup personal defence weapon with original detailed construction in metres. - Dimensions (X × Y × Z): 0.071 × 0.261 × 0.491 metres - Triangles: 11.3k - Animations: stock-open, stock-close, magazine-open, magazine-close - Licence: CC0 1.0 Universal (https://creativecommons.org/publicdomain/zero/1.0/) - Loading: Three.js GLTFLoader; no additional decoders required.
Also available as JSON, Markdown, or via the MCP server.
Import manually
Choose your framework, then copy the code into your project to load the asset.
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'
import { AnimationMixer } from 'three'
let mixer
const loader = new GLTFLoader()
loader.load('https://cdn.3dassets.dev/assets/19431/v1/model.glb', (gltf) => {
scene.add(gltf.scene)
mixer = new AnimationMixer(gltf.scene)
mixer.clipAction(gltf.animations[0]).play()
})
// Call from your render loop; deltaSeconds is time since the previous frame.
function updateAssetAnimation(deltaSeconds) {
mixer?.update(deltaSeconds)
}Bullpup personal defence weapon (FPS Weapon Set and Firing Range)
Bullpup personal defence weapon with original detailed construction in metres.