{"data":{"id":358,"slug":"legendary-warriors-kit","title":"Legendary Warriors Kit","summary":"Jointed puppet fighters for games: samurai, ninja, vikings, pirates, gladiators and cowboys with waving arms, bows and idle heads, plus their hand weapons, training dummies, a dressed rack and a colonnade gallery hall.","description":"Twenty two rigid puppet warriors and everything around them. Four samurai (commander, duelist, archer, kneeling), four ninja (scout, crouching, throwing, swordsman), four vikings (chieftain, shieldman, spearman, berserker), three pirates (captain, lookout, deckhand), four gladiators (murmillo, retiarius, thraex, secutor) and three cowboys (sheriff, gunslinger, wrangler), each with waving arms, a bowing torso and an idle head on real pivots and no skinning anywhere. Ten standalone hand weapons (katana, sai, seax, cutlass, gladius, trident, cast net, yumi bow, round shield, hand axe), a straw dummy and a spinning pell post, a dressed weapon rack, square and round display plinths, a standing banner and the five shell pieces of a roofed colonnade gallery. All costumes are original designs with invented paint and badges; there are no firearms, no horns on the helms, and legs stay in their modelled stance because a rigid hip swing with no knee phase would hop.","url":"https://3dassets.dev/packs/legendary-warriors-kit","coverUrl":"https://cdn.3dassets.dev/assets/39228/v1/poster.webp","assetCount":45,"aiGenerated":true,"aiGeneratedAssetCount":45,"aiModels":["Claude Opus 5.5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":8946516,"totalTriangles":206110,"starterScene":{"id":"39228","slug":"legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","title":"Hall of Legends (Legendary Warriors Kit)","summary":"A roofed colonnade training hall in use: six champions on plinths along the back wall between the banners, three duelling pairs on the floor, an archer and two ninja drilling at the straw dummy and the pell post, a captain choosing from the dressed rack with spare arms laid...","description":"A roofed colonnade training hall in use: six champions on plinths along the back wall between the banners, three duelling pairs on the floor, an archer and two ninja drilling at the straw dummy and the pell post, a captain choosing from the dressed rack with spare arms laid out beside it, and onlookers under the colonnade. Open timber trusses overhead so the hall reads from above.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/39228/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/39228/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39228/v1/poster.webp","blurhash":"UFECav%M4.xu4n%1%MM|00D*V@WU~pM}NGay","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":2775504,"triangles":79958,"vertices":192547,"meshes":437,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-8.450074761017243,-0.000060427989866981835,-4.250101468362766],"max":[8.450074761017243,6.539894605413451,4.450074761017244]},"sizeMeters":[16.9,6.54,8.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":14,"publishedAt":"2026-09-23T14:53:50.072Z","updatedAt":"2026-10-03T00:28:00.397Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39228/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HallOfLegendsLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39228/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39228/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39228/v1/model.glb\" alt=\"Hall of Legends (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39228/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39228/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"39186","slug":"legendary-warriors-kit-samurai-commander-c5b5aa5e","title":"Samurai Commander (Legendary Warriors Kit)","summary":"Armoured commander standing at rest in a kabuto helm, katana at the hip and a back flag.","description":"An armoured commander standing at rest in a bowl helm with a front crest disc and a flared neck guard, a boxy plate cuirass with brass edge trim over silks, a lame skirt and shoulder guards, wide pleated trousers, and a plain field flag on a back pole. The sheathed katana hangs static at the left hip and the right hand rests near it. Overall 0.788 x 2.272 x 0.617 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-samurai-commander-c5b5aa5e","cdnUrl":"https://cdn.3dassets.dev/assets/39186/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-samurai-commander-c5b5aa5e","thumbnailUrl":"https://cdn.3dassets.dev/assets/39186/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39186/v1/poster.webp","blurhash":"U37,}eo{00VHqwE2l8~BH;J7yE=xkqxuVsD%","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":203788,"triangles":3926,"vertices":9483,"meshes":21,"materials":9,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.39405930042266846,-9.203820426559317e-7,-0.23284939648987416],"max":[0.39405930042266846,2.2716000133514407,0.3836733347884601]},"sizeMeters":[0.788,2.272,0.617],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":17,"publishedAt":"2026-09-23T14:52:51.871Z","updatedAt":"2026-10-02T13:27:12.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39186/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SamuraiCommanderLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39186/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39186/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39186/v1/model.glb\" alt=\"Samurai Commander (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39186/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39186/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39192","slug":"legendary-warriors-kit-samurai-duelist-87b9cbe3","title":"Samurai Duelist (Legendary Warriors Kit)","summary":"Armoured duelist mid advance with the katana raised overhead for a cut.","description":"An armoured duelist caught mid advance with the katana raised overhead in the right hand, the left arm extended for balance, cuirass and lame skirt over silks and the empty scabbard still at the hip. The raised sword arm waves through the cut. Overall 0.779 x 2.708 x 1.144 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-samurai-duelist-87b9cbe3","cdnUrl":"https://cdn.3dassets.dev/assets/39192/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-samurai-duelist-87b9cbe3","thumbnailUrl":"https://cdn.3dassets.dev/assets/39192/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39192/v1/poster.webp","blurhash":"U26aht?F00020eS#~Cv}01Rl_3%JT1M|rq=|","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":200780,"triangles":4186,"vertices":10029,"meshes":24,"materials":9,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3896808624267578,0.000028556189305813107,-0.5095663070678711],"max":[0.3896808624267578,2.707658948135376,0.6349181532859802]},"sizeMeters":[0.779,2.708,1.144],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":18,"publishedAt":"2026-09-23T14:52:52.126Z","updatedAt":"2026-10-02T13:27:12.968Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39192/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SamuraiDuelistLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39192/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39192/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39192/v1/model.glb\" alt=\"Samurai Duelist (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39192/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39192/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39187","slug":"legendary-warriors-kit-samurai-archer-6207c87b","title":"Samurai Archer (Legendary Warriors Kit)","summary":"Archer holding a tall asymmetric bow with a quiver on the back.","description":"An archer in a light cuirass holding a tall asymmetric bow upright in the left hand with the right hand drawn toward the cheek, a quiver of three arrows on the back, a cloth headband and a topknot. The bow arm braces static on the tall bow so its lower tip never sweeps the floor; the drawing arm waves. Overall 0.771 x 2.626 x 0.881 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-samurai-archer-6207c87b","cdnUrl":"https://cdn.3dassets.dev/assets/39187/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-samurai-archer-6207c87b","thumbnailUrl":"https://cdn.3dassets.dev/assets/39187/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39187/v1/poster.webp","blurhash":"U26@sFo}00R4Q-NGyD=|00NG~p%258s.=_It","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":204424,"triangles":3896,"vertices":9397,"meshes":21,"materials":10,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.38530242443084717,-8.998877162602614e-7,-0.33203547265532174],"max":[0.38530242443084717,2.625920081062317,0.5492362380027771]},"sizeMeters":[0.771,2.626,0.881],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:51.892Z","updatedAt":"2026-10-02T13:27:12.975Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39187/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SamuraiArcherLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39187/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39187/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39187/v1/model.glb\" alt=\"Samurai Archer (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39187/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39187/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39189","slug":"legendary-warriors-kit-samurai-kneeling-a786de52","title":"Samurai Kneeling (Legendary Warriors Kit)","summary":"Armoured samurai kneeling with both hands on the thighs, sword at the hip.","description":"An armoured samurai down on one knee with both hands resting on the thighs and the sheathed katana at the hip, helm crested and cuirass over silks. A formal kneeling pose for court scenes, honour guards and story moments. Overall 0.779 x 1.315 x 1.414 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-samurai-kneeling-a786de52","cdnUrl":"https://cdn.3dassets.dev/assets/39189/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-samurai-kneeling-a786de52","thumbnailUrl":"https://cdn.3dassets.dev/assets/39189/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39189/v1/poster.webp","blurhash":"U684Pd~W0001E1M{oK%200D%?H%M-;tRjFaK","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":185628,"triangles":3890,"vertices":9409,"meshes":19,"materials":8,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3896808624267578,0.000013649352691769145,-0.7565760612487793],"max":[0.3896808624267578,1.3148067943592145,0.6569362282752991]},"sizeMeters":[0.779,1.315,1.414],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:51.947Z","updatedAt":"2026-10-02T13:27:12.975Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39189/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SamuraiKneelingLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39189/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39189/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39189/v1/model.glb\" alt=\"Samurai Kneeling (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39189/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39189/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39191","slug":"legendary-warriors-kit-ninja-scout-1e26f44c","title":"Ninja Scout (Legendary Warriors Kit)","summary":"Hooded scout standing at rest with a throwing star palmed in the fist.","description":"A hooded scout standing at rest in a dark close cowl with the face wrapped below the eyes, a cloth belt and wraps at the wrists and ankles, palming a four pointed throwing star in the right fist and the left hand held to the chest. Overall 0.660 x 1.691 x 0.700 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-ninja-scout-1e26f44c","cdnUrl":"https://cdn.3dassets.dev/assets/39191/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-ninja-scout-1e26f44c","thumbnailUrl":"https://cdn.3dassets.dev/assets/39191/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39191/v1/poster.webp","blurhash":"U46a#Ts+00IuxxoeRNRl4TRk_4%29FRk-;xt","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":167440,"triangles":3522,"vertices":8609,"meshes":15,"materials":6,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3314537655724905,-8.793933898645911e-7,-0.21502767511543905],"max":[0.3285205757664592,1.6909636738064298,0.4847276210784912]},"sizeMeters":[0.66,1.691,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":10,"publishedAt":"2026-09-23T14:52:51.995Z","updatedAt":"2026-10-02T13:27:12.979Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39191/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function NinjaScoutLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39191/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39191/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39191/v1/model.glb\" alt=\"Ninja Scout (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39191/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39191/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39190","slug":"legendary-warriors-kit-ninja-crouching-eac30c38","title":"Ninja Crouching (Legendary Warriors Kit)","summary":"Hooded ninja sunk into a low crouch with a straight sword on the back.","description":"A hooded ninja sunk into a low crouch with both hands forward and low, a straight sheathed sword slung across the back and wraps at every joint. The second of the two core ninja poses: scout standing, ambush crouching. Overall 0.693 x 2.031 x 0.975 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-ninja-crouching-eac30c38","cdnUrl":"https://cdn.3dassets.dev/assets/39190/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-ninja-crouching-eac30c38","thumbnailUrl":"https://cdn.3dassets.dev/assets/39190/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39190/v1/poster.webp","blurhash":"U46twP-:009F9YV[=}o|00E1_N^kk=t7n4Io","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":182112,"triangles":3502,"vertices":8546,"meshes":15,"materials":6,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3453391492366791,0,-0.2972876565645098],"max":[0.3478276756682962,2.0308315950330678,0.6779009103775024]},"sizeMeters":[0.693,2.031,0.975],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:51.970Z","updatedAt":"2026-10-02T13:27:12.978Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39190/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function NinjaCrouchingLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39190/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39190/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39190/v1/model.glb\" alt=\"Ninja Crouching (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39190/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39190/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39185","slug":"legendary-warriors-kit-ninja-throwing-c53bc079","title":"Ninja Throwing (Legendary Warriors Kit)","summary":"Hooded ninja with the throwing arm cocked back and a star leaving the hand.","description":"A hooded ninja caught at the top of a throw: the right arm cocked up and back with a throwing star in the fist, the left arm pointing at the mark. The wave rocks the whole throwing motion. Overall 0.554 x 1.996 x 0.907 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-ninja-throwing-c53bc079","cdnUrl":"https://cdn.3dassets.dev/assets/39185/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-ninja-throwing-c53bc079","thumbnailUrl":"https://cdn.3dassets.dev/assets/39185/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39185/v1/poster.webp","blurhash":"U26*aeaI00XX-qxsD%E3Dgbd%inLRjNGxu%L","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":170212,"triangles":3522,"vertices":8610,"meshes":15,"materials":6,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.2769152536273994,-8.793933898645911e-7,-0.21502767511543905],"max":[0.2769147399366186,1.99604439119339,0.6916637420654297]},"sizeMeters":[0.554,1.996,0.907],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:51.839Z","updatedAt":"2026-10-02T13:27:12.980Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39185/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function NinjaThrowingLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39185/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39185/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39185/v1/model.glb\" alt=\"Ninja Throwing (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39185/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39185/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39188","slug":"legendary-warriors-kit-ninja-swordsman-bfecd434","title":"Ninja Swordsman (Legendary Warriors Kit)","summary":"Hooded swordsman advancing with a straight blade held low.","description":"A hooded swordsman advancing with a straight blade held low and forward in the right hand and the left arm trailing for balance. The wave drives the low slash. Overall 0.748 x 1.638 x 1.512 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-ninja-swordsman-bfecd434","cdnUrl":"https://cdn.3dassets.dev/assets/39188/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-ninja-swordsman-bfecd434","thumbnailUrl":"https://cdn.3dassets.dev/assets/39188/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39188/v1/poster.webp","blurhash":"U47-Tkx]00M|x]WAIAR-00M{_4%LD%kD?c-o","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":176484,"triangles":3694,"vertices":8965,"meshes":18,"materials":7,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.38918499254748645,0.00002791261735367312,-0.4981153905391693],"max":[0.3593027180005946,1.6375459962337637,1.013849139213562]},"sizeMeters":[0.748,1.638,1.512],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:52:51.944Z","updatedAt":"2026-10-02T13:27:12.981Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39188/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function NinjaSwordsmanLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39188/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39188/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39188/v1/model.glb\" alt=\"Ninja Swordsman (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39188/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39188/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39194","slug":"legendary-warriors-kit-viking-chieftain-edb01aab","title":"Viking Chieftain (Legendary Warriors Kit)","summary":"Mail clad chieftain with a nasal helm, raised axe, shield and cloak.","description":"A mail clad chieftain in a wide stance with a nasal helm, a brass neck ring and a pinned cloak, a hand axe raised high in the right hand and a painted round shield strapped to the left forearm. The raised axe waves the challenge. Overall 1.101 x 2.743 x 0.935 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-viking-chieftain-edb01aab","cdnUrl":"https://cdn.3dassets.dev/assets/39194/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-viking-chieftain-edb01aab","thumbnailUrl":"https://cdn.3dassets.dev/assets/39194/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39194/v1/poster.webp","blurhash":"U36k3Hoy00M|5AjI?DX40wof}]aKq]bapIaL","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":240040,"triangles":4536,"vertices":11097,"meshes":23,"materials":9,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.5858939904353508,-0.00001598946981751226,-0.26915270880603226],"max":[0.5152879730823404,2.743195333862305,0.6653871603817623]},"sizeMeters":[1.101,2.743,0.935],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:54.806Z","updatedAt":"2026-10-02T13:27:12.984Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39194/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VikingChieftainLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39194/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39194/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39194/v1/model.glb\" alt=\"Viking Chieftain (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39194/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39194/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39196","slug":"legendary-warriors-kit-viking-shieldman-2d33f094","title":"Viking Shieldman (Legendary Warriors Kit)","summary":"Shieldman advancing behind a round shield with a seax raised.","description":"A shieldman advancing with a painted round shield carried forward in the left hand and a heavy single edged seax raised in the right, mail shirt and nasal helm. Built for the shield wall: line several up shoulder to shoulder. Overall 0.963 x 2.209 x 1.363 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-viking-shieldman-2d33f094","cdnUrl":"https://cdn.3dassets.dev/assets/39196/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-viking-shieldman-2d33f094","thumbnailUrl":"https://cdn.3dassets.dev/assets/39196/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39196/v1/poster.webp","blurhash":"U57KMF-V009@byofnfV{0KNt~C$kR3V]p1t1","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":214420,"triangles":4064,"vertices":9817,"meshes":23,"materials":9,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.2930267911053175,0.000029196285063121108,-0.5210172533988953],"max":[0.6697834020137787,2.2087829015731812,0.8422113768353926]},"sizeMeters":[0.963,2.209,1.363],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":12,"publishedAt":"2026-09-23T14:52:54.839Z","updatedAt":"2026-10-02T13:27:12.985Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39196/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VikingShieldmanLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39196/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39196/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39196/v1/model.glb\" alt=\"Viking Shieldman (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39196/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39196/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39195","slug":"legendary-warriors-kit-viking-spearman-bb90aeef","title":"Viking Spearman (Legendary Warriors Kit)","summary":"Spearman standing guard with a long spear and a shield slung on the back.","description":"A spearman standing guard with a long spear grounded at the right hand and a painted round shield slung across the back, mail shirt and nasal helm. The whole right arm braces static on the planted shaft; the left arm still waves. Overall 0.718 x 3.816 x 0.797 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-viking-spearman-bb90aeef","cdnUrl":"https://cdn.3dassets.dev/assets/39195/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-viking-spearman-bb90aeef","thumbnailUrl":"https://cdn.3dassets.dev/assets/39195/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39195/v1/poster.webp","blurhash":"U25#31-o000f0fWD~Bt557X6=|w1.8bIIAn#","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":208956,"triangles":3952,"vertices":9582,"meshes":21,"materials":9,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3711230145862676,-9.203820426559317e-7,-0.5481883173798621],"max":[0.3468702016498545,3.815999982452393,0.24841049902986836]},"sizeMeters":[0.718,3.816,0.797],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:54.829Z","updatedAt":"2026-10-02T13:27:12.985Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39195/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VikingSpearmanLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39195/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39195/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39195/v1/model.glb\" alt=\"Viking Spearman (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39195/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39195/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39198","slug":"legendary-warriors-kit-viking-berserker-5f40dcf1","title":"Viking Berserker (Legendary Warriors Kit)","summary":"Bare chested berserker with a full beard and a hand axe in each fist.","description":"A bare chested berserker in a wide stance with a full beard and bare head, a hand axe raised in each fist and arm rings at both biceps. No armour, no helm: fury is the protection. Both axes wave. Overall 0.649 x 2.771 x 0.990 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-viking-berserker-5f40dcf1","cdnUrl":"https://cdn.3dassets.dev/assets/39198/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-viking-berserker-5f40dcf1","thumbnailUrl":"https://cdn.3dassets.dev/assets/39198/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39198/v1/poster.webp","blurhash":"U47m~RE300^%E4xs$~9c0L$*~C9tn4R+o}$$","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":209144,"triangles":4048,"vertices":9820,"meshes":23,"materials":7,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.32468539476394653,-0.00001616208856803844,-0.23501130651739066],"max":[0.32468539476394653,2.770928624343872,0.7547323747050043]},"sizeMeters":[0.649,2.771,0.99],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:54.933Z","updatedAt":"2026-10-02T13:27:12.995Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39198/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VikingBerserkerLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39198/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39198/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39198/v1/model.glb\" alt=\"Viking Berserker (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39198/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39198/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39193","slug":"legendary-warriors-kit-pirate-captain-5801918a","title":"Pirate Captain (Legendary Warriors Kit)","summary":"Captain in a tricorn and long coat with the cutlass raised.","description":"A captain in a tricorn hat and a long buttoned coat with lapels, cutlass raised high in the right hand and the left hand on the hip, tall boots and a buckled belt. The raised cutlass waves the order to board. Overall 0.747 x 2.707 x 0.869 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-pirate-captain-5801918a","cdnUrl":"https://cdn.3dassets.dev/assets/39193/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-pirate-captain-5801918a","thumbnailUrl":"https://cdn.3dassets.dev/assets/39193/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39193/v1/poster.webp","blurhash":"U367}]xt009bXSt7r?My4mj^_4W99bRk-n%L","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":189584,"triangles":3928,"vertices":9462,"meshes":20,"materials":8,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.2865821630653907,-9.097201372175456e-7,-0.25392855140517984],"max":[0.460835912570072,2.707070809326172,0.6152043423988045]},"sizeMeters":[0.747,2.707,0.869],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:52:54.835Z","updatedAt":"2026-10-02T13:27:12.991Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39193/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PirateCaptainLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39193/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39193/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39193/v1/model.glb\" alt=\"Pirate Captain (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39193/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39193/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39197","slug":"legendary-warriors-kit-pirate-lookout-e359197f","title":"Pirate Lookout (Legendary Warriors Kit)","summary":"Lookout pointing to the horizon with a spyglass in the other hand.","description":"A lookout in a bandana and a short red coat, pointing at the horizon with the right hand and a brass spyglass lowered in the left. The pointing arm waves the sighting. Overall 0.623 x 1.702 x 0.968 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-pirate-lookout-e359197f","cdnUrl":"https://cdn.3dassets.dev/assets/39197/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-pirate-lookout-e359197f","thumbnailUrl":"https://cdn.3dassets.dev/assets/39197/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39197/v1/poster.webp","blurhash":"U796wGkW00w^}[tQ9[My0zjZ=yR*0{M{=M%f","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":178524,"triangles":3682,"vertices":8933,"meshes":17,"materials":8,"textures":0,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.2833618326830417,-8.998877162602614e-7,-0.25107540987643695],"max":[0.339161972910655,1.702223990595862,0.7168428897857666]},"sizeMeters":[0.623,1.702,0.968],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:54.950Z","updatedAt":"2026-10-02T13:27:12.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39197/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PirateLookoutLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39197/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39197/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39197/v1/model.glb\" alt=\"Pirate Lookout (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39197/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39197/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39199","slug":"legendary-warriors-kit-pirate-deckhand-4b4c7cb5","title":"Pirate Deckhand (Legendary Warriors Kit)","summary":"Deckhand with a rope coil over the shoulder and a belaying pin in hand.","description":"A deckhand in a bandana and canvas shirt with a coil of rope over the right shoulder and a wooden belaying pin gripped in the right hand, caught mid stride on deck. Work clothes, no coat, ready to haul. Overall 0.715 x 1.610 x 1.023 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-pirate-deckhand-4b4c7cb5","cdnUrl":"https://cdn.3dassets.dev/assets/39199/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-pirate-deckhand-4b4c7cb5","thumbnailUrl":"https://cdn.3dassets.dev/assets/39199/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39199/v1/poster.webp","blurhash":"U48zlh^+0000-?kDD$V?00WB_4jdH;MyyE-;","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":207488,"triangles":4090,"vertices":9797,"meshes":17,"materials":8,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.35535480113465606,0.00002791261735367312,-0.4981153905391693],"max":[0.35933271076402434,1.6098005419233732,0.5249089002609253]},"sizeMeters":[0.715,1.61,1.023],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:52:54.981Z","updatedAt":"2026-10-02T13:27:12.993Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39199/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PirateDeckhandLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39199/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39199/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39199/v1/model.glb\" alt=\"Pirate Deckhand (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39199/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39199/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39200","slug":"legendary-warriors-kit-murmillo-acca9c6e","title":"Murmillo Gladiator (Legendary Warriors Kit)","summary":"Heavy gladiator with a crested helm, curved shield and short sword.","description":"A heavy gladiator advancing behind a tall curved shield with a short sword cocked in the right hand, a crested bronze helm, a leather guard on the sword arm and a greave on the leading shin. The classic legionary mirror, built for the arena. Overall 0.946 x 1.729 x 1.668 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-murmillo-acca9c6e","cdnUrl":"https://cdn.3dassets.dev/assets/39200/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-murmillo-acca9c6e","thumbnailUrl":"https://cdn.3dassets.dev/assets/39200/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39200/v1/poster.webp","blurhash":"U58|hY-p00kV~VWD4:xt00D%^jxZ0KNG?axa","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":212132,"triangles":4082,"vertices":9916,"meshes":23,"materials":7,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3645199280079237,0.000028873919721242314,-0.5152918100357056],"max":[0.5819649180743709,1.729074982895564,1.1526354551315308]},"sizeMeters":[0.946,1.729,1.668],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:54.063Z","updatedAt":"2026-10-03T03:29:10.457Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39200/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MurmilloGladiatorLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39200/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39200/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39200/v1/model.glb\" alt=\"Murmillo Gladiator (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39200/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39200/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39201","slug":"legendary-warriors-kit-retiarius-9b1f589d","title":"Retiarius Gladiator (Legendary Warriors Kit)","summary":"Net fighter with a trident raised and a weighted net on the shoulder.","description":"A net fighter advancing with a long trident raised high in the right hand, a weighted cast net bundled over the left shoulder and a steel shoulder guard, bare headed with tied hair. Speed against armour: the trident arm waves the strike. Overall 0.652 x 3.277 x 1.994 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-retiarius-9b1f589d","cdnUrl":"https://cdn.3dassets.dev/assets/39201/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-retiarius-9b1f589d","thumbnailUrl":"https://cdn.3dassets.dev/assets/39201/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39201/v1/poster.webp","blurhash":"U56an,NG00%L9aof-:Rj01xa~VIV?aNG9a%L","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":202140,"triangles":3884,"vertices":9482,"meshes":20,"materials":8,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.2930268003826739,0.0000361436157422651,-0.6215254664421082],"max":[0.35908965192404063,3.2773120306015016,1.3722313308434233]},"sizeMeters":[0.652,3.277,1.994],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:52:57.108Z","updatedAt":"2026-10-02T13:27:12.994Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39201/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RetiariusGladiatorLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39201/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39201/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39201/v1/model.glb\" alt=\"Retiarius Gladiator (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39201/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39201/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39202","slug":"legendary-warriors-kit-thraex-b285151e","title":"Thraex Gladiator (Legendary Warriors Kit)","summary":"Thracian with a plumed helm, curved sword, small shield and high greaves.","description":"A Thracian fighter in a wide stance with a tall plumed helm, a curved short sword in the right hand and a small square shield forward in the left, high greaves on both shins and a plain belt. The eastern style against the murmillo. Overall 0.932 x 1.754 x 1.253 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-thraex-b285151e","cdnUrl":"https://cdn.3dassets.dev/assets/39202/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-thraex-b285151e","thumbnailUrl":"https://cdn.3dassets.dev/assets/39202/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39202/v1/poster.webp","blurhash":"U49Zv5T100^h~CV@56tQ00IT~oWG01X8_2wM","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":202832,"triangles":3880,"vertices":9402,"meshes":24,"materials":8,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.40213973896031097,-0.000015302105382220335,-0.22251071905457814],"max":[0.5299514600753784,1.753924725043023,1.0301735401153564]},"sizeMeters":[0.932,1.754,1.253],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:52:57.713Z","updatedAt":"2026-10-03T03:30:04.606Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39202/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ThraexGladiatorLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39202/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39202/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39202/v1/model.glb\" alt=\"Thraex Gladiator (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39202/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39202/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39204","slug":"legendary-warriors-kit-secutor-707e1d08","title":"Secutor Gladiator (Legendary Warriors Kit)","summary":"Pursuer in a smooth helm with a short sword and a tall shield.","description":"A pursuer advancing behind a tall curved shield with a short sword ready in the right hand, a smooth steel helm with a nasal and a sight bar, a guard on the shield arm and a belted waist. The retiarius hunter, matched pair to the net fighter. Overall 0.946 x 1.705 x 1.668 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-secutor-707e1d08","cdnUrl":"https://cdn.3dassets.dev/assets/39204/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-secutor-707e1d08","thumbnailUrl":"https://cdn.3dassets.dev/assets/39204/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39204/v1/poster.webp","blurhash":"U48zfK?I00Xk~WoM4.bb00D$}?j000M{^+%2","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":206816,"triangles":3962,"vertices":9628,"meshes":23,"materials":7,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3645199280079237,0.000028873919721242314,-0.5152918100357056],"max":[0.5819649180743709,1.7048448414802553,1.1526354551315308]},"sizeMeters":[0.946,1.705,1.668],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":10,"publishedAt":"2026-09-23T14:52:58.087Z","updatedAt":"2026-10-03T03:29:09.553Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39204/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SecutorGladiatorLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39204/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39204/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39204/v1/model.glb\" alt=\"Secutor Gladiator (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39204/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39204/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39208","slug":"legendary-warriors-kit-cowboy-sheriff-280096c4","title":"Cowboy Sheriff (Legendary Warriors Kit)","summary":"Lawman in a duster and wide hat with a plain star and empty holsters.","description":"A lawman standing easy in a canvas duster and a wide brimmed hat with a plain five pointed star on the chest, a gun belt with two empty holsters and tall boots. No firearms anywhere in the pose: authority, not a draw. Overall 0.811 x 1.769 x 0.508 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-cowboy-sheriff-280096c4","cdnUrl":"https://cdn.3dassets.dev/assets/39208/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-cowboy-sheriff-280096c4","thumbnailUrl":"https://cdn.3dassets.dev/assets/39208/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39208/v1/poster.webp","blurhash":"U6A0dm-p004.?boyDjRQ00M|~px[0KM|^+%M","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":195840,"triangles":3782,"vertices":9183,"meshes":18,"materials":8,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.4057061410778741,-9.097201372175456e-7,-0.25392989631944946],"max":[0.4057061410778741,1.7693494100374152,0.25392989631944946]},"sizeMeters":[0.811,1.769,0.508],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:52:58.552Z","updatedAt":"2026-10-03T02:07:46.834Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39208/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CowboySheriffLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39208/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39208/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39208/v1/model.glb\" alt=\"Cowboy Sheriff (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39208/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39208/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39203","slug":"legendary-warriors-kit-cowboy-gunslinger-7b67c142","title":"Cowboy Gunslinger (Legendary Warriors Kit)","summary":"Gunfighter mid advance with both hands hovering over empty holsters.","description":"A gunfighter mid advance in a leather coat and a dark hat, both hands hovering over two empty holsters, weight forward. The wave twitches both hands at the holsters. No firearms are modelled: the moment before is the pose. Overall 1.078 x 1.695 x 1.047 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-cowboy-gunslinger-7b67c142","cdnUrl":"https://cdn.3dassets.dev/assets/39203/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-cowboy-gunslinger-7b67c142","thumbnailUrl":"https://cdn.3dassets.dev/assets/39203/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39203/v1/poster.webp","blurhash":"U89%hm-:004.xuWVM{oe00Rj~Ws;9FM|-;%L","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":190028,"triangles":3666,"vertices":8911,"meshes":18,"materials":7,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.539086124601319,0.000028556189305813107,-0.5095663070678711],"max":[0.539086124601319,1.694589395136254,0.5369758009910583]},"sizeMeters":[1.078,1.695,1.047],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:57.854Z","updatedAt":"2026-10-02T13:27:13.006Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39203/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CowboyGunslingerLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39203/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39203/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39203/v1/model.glb\" alt=\"Cowboy Gunslinger (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39203/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39203/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39207","slug":"legendary-warriors-kit-cowboy-wrangler-53d01c7a","title":"Cowboy Wrangler (Legendary Warriors Kit)","summary":"Ranch hand with a lasso loop spinning overhead and a coil in hand.","description":"A ranch hand standing with a rope loop held high overhead in the right hand and a spare coil in the left, canvas shirt, vest, neckerchief and a worn hat. The raised loop waves the twirl. Overall 0.765 x 2.099 x 0.696 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: bow, idle and wave. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-cowboy-wrangler-53d01c7a","cdnUrl":"https://cdn.3dassets.dev/assets/39207/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-cowboy-wrangler-53d01c7a","thumbnailUrl":"https://cdn.3dassets.dev/assets/39207/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39207/v1/poster.webp","blurhash":"U69t12%M004n~p%M8{9F01xu~pD%D%WB-poz","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":224412,"triangles":4394,"vertices":10592,"meshes":22,"materials":8,"textures":1,"animations":["bow","idle","wave"],"boundingBox":{"min":[-0.3095673620700836,-8.998877162602614e-7,-0.2510767526908466],"max":[0.4554192486010492,2.098892475910187,0.4449513256549835]},"sizeMeters":[0.765,2.099,0.696],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:52:58.392Z","updatedAt":"2026-10-02T13:27:13.017Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39207/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CowboyWranglerLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39207/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39207/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39207/v1/model.glb\" alt=\"Cowboy Wrangler (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39207/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39207/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39206","slug":"legendary-warriors-kit-warrior-katana-43aa1d03","title":"Warrior Katana (Legendary Warriors Kit)","summary":"Curved single edged sword with guard, wrapped grip and pommel cap.","description":"A curved single edged sword, blade 0.72 m, with a collar, a disc guard, a wrapped grip and a pommel cap. Laid flat for the rack, the wall and the hand. Overall 0.090 x 0.086 x 0.834 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-katana-43aa1d03","cdnUrl":"https://cdn.3dassets.dev/assets/39206/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-katana-43aa1d03","thumbnailUrl":"https://cdn.3dassets.dev/assets/39206/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39206/v1/poster.webp","blurhash":"U78Nqex]4TW.adD%WBtR00M_~qWCtS_3xuD$","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":16424,"triangles":296,"vertices":634,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.04500932197809896,0.000021934379897774192,-0.014000000432133675],"max":[0.04500932197809896,0.0855731518370288,0.8199496865272522]},"sizeMeters":[0.09,0.086,0.834],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:52:58.355Z","updatedAt":"2026-10-02T13:27:13.023Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39206/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorKatanaLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39206/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39206/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39206/v1/model.glb\" alt=\"Warrior Katana (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39206/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39206/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39205","slug":"legendary-warriors-kit-warrior-sai-ad50b23f","title":"Warrior Sai (Legendary Warriors Kit)","summary":"Triple pronged parrying spike with a wrapped grip.","description":"A triple pronged parrying spike, 0.5 m, with a centre spike, two guard prongs and a wrapped grip under a pommel ball. Laid flat. Overall 0.101 x 0.024 x 0.480 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-sai-ad50b23f","cdnUrl":"https://cdn.3dassets.dev/assets/39205/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-sai-ad50b23f","thumbnailUrl":"https://cdn.3dassets.dev/assets/39205/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39205/v1/poster.webp","blurhash":"U57UI{WF00xv%LD*M_xv00V@_4WA9Z_2-=D$","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":10700,"triangles":172,"vertices":424,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.050010361700145466,-8.314177287055413e-7,-0.019000000320374966],"max":[0.05101036000141309,0.024249543182541175,0.460999995470047]},"sizeMeters":[0.101,0.024,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:52:58.385Z","updatedAt":"2026-10-02T13:27:13.025Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39205/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorSaiLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39205/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39205/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39205/v1/model.glb\" alt=\"Warrior Sai (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39205/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39205/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39209","slug":"legendary-warriors-kit-warrior-seax-d7db56d9","title":"Warrior Seax (Legendary Warriors Kit)","summary":"Heavy single edged knife with a wood grip and brass bolster.","description":"A heavy single edged knife, blade 0.45 m with a clipped point, a brass bolster and a wood grip. Laid flat. Overall 0.055 x 0.046 x 0.576 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-seax-d7db56d9","cdnUrl":"https://cdn.3dassets.dev/assets/39209/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-seax-d7db56d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/39209/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39209/v1/poster.webp","blurhash":"U68NnRS*8^Rk%09HV?xv00M__4t79b~p%OD$","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":27256,"triangles":188,"vertices":406,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.027497786793439546,-0.0000017089566875412576,-0.03999999910593033],"max":[0.027497786793439546,0.04556496166399306,0.5362580418586731]},"sizeMeters":[0.055,0.046,0.576],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:53:00.075Z","updatedAt":"2026-10-02T13:27:13.035Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39209/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorSeaxLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39209/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39209/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39209/v1/model.glb\" alt=\"Warrior Seax (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39209/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39209/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39210","slug":"legendary-warriors-kit-warrior-cutlass-a6f71d2e","title":"Warrior Cutlass (Legendary Warriors Kit)","summary":"Broad naval blade with a brass knuckle bow and grip.","description":"A broad naval blade, 0.7 m, with a brass knuckle bow over a wrapped grip. Laid flat. Overall 0.079 x 0.044 x 0.824 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-cutlass-a6f71d2e","cdnUrl":"https://cdn.3dassets.dev/assets/39210/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-cutlass-a6f71d2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/39210/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39210/v1/poster.webp","blurhash":"U67-WltTDhxat29ZRixu00M_?cbFNM~p%ND%","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":15480,"triangles":288,"vertices":656,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.03749656706458818,0.0000037838746295738857,-0.024000000208616257],"max":[0.04164818331009637,0.04399621588695185,0.8000494837760925]},"sizeMeters":[0.079,0.044,0.824],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:53:00.578Z","updatedAt":"2026-10-02T13:27:13.036Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39210/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorCutlassLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39210/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39210/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39210/v1/model.glb\" alt=\"Warrior Cutlass (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39210/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39210/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39211","slug":"legendary-warriors-kit-warrior-gladius-c2801fec","title":"Warrior Gladius (Legendary Warriors Kit)","summary":"Short parallel edged sword with a triangular point and pommel ball.","description":"A short parallel edged sword, blade 0.5 m with a triangular point, a wood grip and a brass pommel ball. Laid flat. Overall 0.088 x 0.052 x 0.628 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-gladius-c2801fec","cdnUrl":"https://cdn.3dassets.dev/assets/39211/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-gladius-c2801fec","thumbnailUrl":"https://cdn.3dassets.dev/assets/39211/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39211/v1/poster.webp","blurhash":"U68gsrtn4TM{xZ9ZRi%M00IA_4xuIq~p%N9F","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":29732,"triangles":236,"vertices":542,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.04420072011901774,0.0000033400251119447555,-0.02800000086426735],"max":[0.04420072011901774,0.05173413611514875,0.6000000238418579]},"sizeMeters":[0.088,0.052,0.628],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:53:00.592Z","updatedAt":"2026-10-02T13:27:13.037Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39211/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorGladiusLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39211/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39211/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39211/v1/model.glb\" alt=\"Warrior Gladius (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39211/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39211/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39212","slug":"legendary-warriors-kit-warrior-trident-648e05ad","title":"Warrior Trident (Legendary Warriors Kit)","summary":"Long shafted three spike fishing spear, 1.7 m.","description":"A three spiked spear on a 1.42 m wood shaft with a steel centre spike, two side spikes and a binding collar. Laid flat. Overall 0.343 x 0.047 x 1.706 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-trident-648e05ad","cdnUrl":"https://cdn.3dassets.dev/assets/39212/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-trident-648e05ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/39212/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39212/v1/poster.webp","blurhash":"U25EHY?c1iImVXD*NG-V01D$}9%3yY~V-o0z","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":23968,"triangles":132,"vertices":282,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.01607197649070294,0.0000013350949514927268,-0.002505115931853652],"max":[0.32716983588421555,0.0467952028407823,1.7035393714904785]},"sizeMeters":[0.343,0.047,1.706],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":5,"publishedAt":"2026-09-23T14:52:59.915Z","updatedAt":"2026-10-02T13:27:13.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39212/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorTridentLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39212/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39212/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39212/v1/model.glb\" alt=\"Warrior Trident (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39212/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39212/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39213","slug":"legendary-warriors-kit-retiarius-net-4dda78bc","title":"Retiarius Cast Net (Legendary Warriors Kit)","summary":"Weighted circular cast net with rim cord and lead weights.","description":"A circular cast net, 1.1 m across, with a rim cord, eight radials, a centre pouch and eight lead weights. Lies flat as thrown, or bundles onto a shoulder. Overall 1.114 x 0.045 x 1.100 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-retiarius-net-4dda78bc","cdnUrl":"https://cdn.3dassets.dev/assets/39213/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-retiarius-net-4dda78bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/39213/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39213/v1/poster.webp","blurhash":"UBAmo1t600RjozjtWAj[00Rl~pkBRjfRt7ay","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":31124,"triangles":648,"vertices":1576,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5572360754013062,0.000013859535487281,-0.5500255252755653],"max":[0.5572360754013062,0.0449787131255156,0.5500255252755653]},"sizeMeters":[1.114,0.045,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:53:00.186Z","updatedAt":"2026-10-02T13:27:13.044Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39213/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RetiariusCastNetLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39213/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39213/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39213/v1/model.glb\" alt=\"Retiarius Cast Net (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39213/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39213/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39214","slug":"legendary-warriors-kit-warrior-yumi-bow-d2201cc1","title":"Warrior Yumi Bow (Legendary Warriors Kit)","summary":"Tall asymmetric longbow with grip and string, 1.9 m.","description":"A tall asymmetric longbow, 1.9 m, with a wrapped grip a third of the way up and a strung cord. Laid flat. Overall 0.218 x 0.110 x 1.862 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-yumi-bow-d2201cc1","cdnUrl":"https://cdn.3dassets.dev/assets/39214/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-yumi-bow-d2201cc1","thumbnailUrl":"https://cdn.3dassets.dev/assets/39214/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39214/v1/poster.webp","blurhash":"U13@@CxCM|-BX8E#NbX70hWF-UI:nO}X-Ai{","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":22448,"triangles":92,"vertices":192,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.14253800172030984,0.00004998806691327434,-0.6177533864974976],"max":[0.07569054323852119,0.10984622474932512,1.2444067001342773]},"sizeMeters":[0.218,0.11,1.862],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":11,"publishedAt":"2026-09-23T14:53:01.178Z","updatedAt":"2026-10-02T13:27:13.046Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39214/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorYumiBowLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39214/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39214/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39214/v1/model.glb\" alt=\"Warrior Yumi Bow (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39214/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39214/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39215","slug":"legendary-warriors-kit-warrior-round-shield-93f2c81e","title":"Warrior Round Shield (Legendary Warriors Kit)","summary":"Painted round shield with wedges, steel boss and rim.","description":"A round shield, 0.8 m across, with boarded timber, six painted wedges in two invented colours, a steel boss and a dark rim, gripped from behind. Lies face up. Overall 0.816 x 0.116 x 0.796 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-round-shield-93f2c81e","cdnUrl":"https://cdn.3dassets.dev/assets/39215/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-round-shield-93f2c81e","thumbnailUrl":"https://cdn.3dassets.dev/assets/39215/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39215/v1/poster.webp","blurhash":"U68f=ooh0djE$jWrSKni00R%}]bI9]skw|S$","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":33976,"triangles":304,"vertices":719,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.40799999237060547,0.000012900077290184386,-0.3977897200312428],"max":[0.40799999237060547,0.11625462922903684,0.3977897200312428]},"sizeMeters":[0.816,0.116,0.796],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":9,"publishedAt":"2026-09-23T14:53:01.434Z","updatedAt":"2026-10-02T13:27:13.048Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39215/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorRoundShieldLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39215/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39215/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39215/v1/model.glb\" alt=\"Warrior Round Shield (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39215/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39215/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39216","slug":"legendary-warriors-kit-warrior-hand-axe-10548edf","title":"Warrior Hand Axe (Legendary Warriors Kit)","summary":"Single handed axe with a wedged head on a wood haft.","description":"A single handed axe with a wedged steel head and a dark poll on a 0.78 m wood haft. Laid flat. Overall 0.237 x 0.049 x 0.794 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warrior-hand-axe-10548edf","cdnUrl":"https://cdn.3dassets.dev/assets/39216/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warrior-hand-axe-10548edf","thumbnailUrl":"https://cdn.3dassets.dev/assets/39216/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39216/v1/poster.webp","blurhash":"U36*5X~W0M9Ye89GIq^+0056^i^jpx~p=w00","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"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":32020,"triangles":268,"vertices":610,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.021904387646206516,0.000003104198160241989,-0.015341398306190968],"max":[0.21485885542834154,0.04945183442216866,0.7784263491630554]},"sizeMeters":[0.237,0.049,0.794],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:53:00.469Z","updatedAt":"2026-10-02T13:27:13.057Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39216/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorHandAxeLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39216/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39216/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39216/v1/model.glb\" alt=\"Warrior Hand Axe (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39216/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39216/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39218","slug":"legendary-warriors-kit-straw-training-dummy-fbe78d81","title":"Straw Training Dummy (Legendary Warriors Kit)","summary":"Post mounted straw man with crossarms for cut practice.","description":"A straw practice man on a timber post: bound straw torso and head, a crossarm at shoulder height and a crossed foot base. Static: it is the thing struck, so nothing on it moves. Overall 1.160 x 1.800 x 0.700 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-straw-training-dummy-fbe78d81","cdnUrl":"https://cdn.3dassets.dev/assets/39218/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-straw-training-dummy-fbe78d81","thumbnailUrl":"https://cdn.3dassets.dev/assets/39218/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39218/v1/poster.webp","blurhash":"U98;6}xt00IV?at6D*M|01ay~oof02Rk?axt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":31608,"triangles":292,"vertices":673,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5799999833106995,0,-0.3499526870397317],"max":[0.5799999833106995,1.7999999523162842,0.3499526870397317]},"sizeMeters":[1.16,1.8,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:53:03.103Z","updatedAt":"2026-10-02T13:27:13.047Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39218/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StrawTrainingDummyLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39218/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39218/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39218/v1/model.glb\" alt=\"Straw Training Dummy (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39218/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39218/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39217","slug":"legendary-warriors-kit-pell-training-post-fa6e13c9","title":"Pell Training Post (Legendary Warriors Kit)","summary":"Stout post with a spinning padded crossbar for guard drill.","description":"A stout pell post on a stone foot with a padded crossbar through it at chest height. The bar is a named node on the post axis and spins; the post and foot are static. Overall 1.200 x 2.070 x 0.685 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Rigid node-transform clips: spin. No skinning. No skinning. Legs, feet and scabbards hold their modelled stance and never move: a rigid hip swing with no knee phase would hop rather than march.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-pell-training-post-fa6e13c9","cdnUrl":"https://cdn.3dassets.dev/assets/39217/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-pell-training-post-fa6e13c9","thumbnailUrl":"https://cdn.3dassets.dev/assets/39217/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39217/v1/poster.webp","blurhash":"U68W:Fx[00D*00f6~poyOsWVMdjG4:Rj%1t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30760,"triangles":224,"vertices":524,"meshes":4,"materials":4,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.6000000238418579,0.000027008881959500464,-0.34237740549303536],"max":[0.6000000238418579,2.069999933242798,0.34237740549303536]},"sizeMeters":[1.2,2.07,0.685],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:03.084Z","updatedAt":"2026-10-02T13:27:13.058Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39217/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PellTrainingPostLegendaryWarriorsKit(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/39217/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39217/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39217/v1/model.glb\" alt=\"Pell Training Post (Legendary Warriors Kit)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39217/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39217/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"39220","slug":"legendary-warriors-kit-dressed-weapon-rack-6f341489","title":"Dressed Weapon Rack (Legendary Warriors Kit)","summary":"A frame rack holding two katanas, an axe, a seax and a shield.","description":"A timber A frame rack with a bottom shelf and rails at 0.55 and 1.05 m, dressed with two standing katanas, a hand axe, a seax and a round shield leaning on the end. Static: the arms are the catalogue, the rack only holds them. Overall 2.598 x 1.468 x 0.546 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-dressed-weapon-rack-6f341489","cdnUrl":"https://cdn.3dassets.dev/assets/39220/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-dressed-weapon-rack-6f341489","thumbnailUrl":"https://cdn.3dassets.dev/assets/39220/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39220/v1/poster.webp","blurhash":"U47c:CEd0y}[IU^Q$j0y9vVv$*t6NLIoog-V","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":85904,"triangles":1460,"vertices":3155,"meshes":9,"materials":9,"textures":1,"animations":[],"boundingBox":{"min":[-1.1812142133712769,0.00004789179091124751,-0.14996341220204815],"max":[1.417199969291687,1.4676282134574556,0.39599640121634083]},"sizeMeters":[2.598,1.468,0.546],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:03.247Z","updatedAt":"2026-10-02T13:27:13.063Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39220/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DressedWeaponRackLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39220/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39220/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39220/v1/model.glb\" alt=\"Dressed Weapon Rack (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39220/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39220/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39219","slug":"legendary-warriors-kit-display-plinth-square-b580367d","title":"Square Display Plinth (Legendary Warriors Kit)","summary":"Stepped stone plinth with a cap, top at 0.50 m.","description":"A stepped sandstone plinth with a base step, a shaft and a proud cap. Stand a figure on the cap at 0.50 m. Static. Overall 1.000 x 0.500 x 1.000 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-display-plinth-square-b580367d","cdnUrl":"https://cdn.3dassets.dev/assets/39219/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-display-plinth-square-b580367d","thumbnailUrl":"https://cdn.3dassets.dev/assets/39219/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39219/v1/poster.webp","blurhash":"U8I5MR~q00My.8RjRPxt009ZR*RkD%xbxtM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":2744,"triangles":36,"vertices":84,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000038148136844995406,-0.5],"max":[0.5,0.500038148136845,0.5]},"sizeMeters":[1,0.5,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:03.264Z","updatedAt":"2026-10-02T13:27:13.065Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39219/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SquareDisplayPlinthLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39219/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39219/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39219/v1/model.glb\" alt=\"Square Display Plinth (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39219/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39219/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39221","slug":"legendary-warriors-kit-display-plinth-round-329a360b","title":"Round Display Plinth (Legendary Warriors Kit)","summary":"Round stone plinth with a brass band, top at 0.60 m.","description":"A round sandstone plinth with a stepped foot, a brass band proud of the drum and a capped top. Stand a hero on the top at 0.60 m. Static. Overall 1.360 x 0.600 x 1.326 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-display-plinth-round-329a360b","cdnUrl":"https://cdn.3dassets.dev/assets/39221/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-display-plinth-round-329a360b","thumbnailUrl":"https://cdn.3dassets.dev/assets/39221/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39221/v1/poster.webp","blurhash":"UCFYrq-;00M_xbj@M{WB00M{~pofWAj]xujs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":11140,"triangles":224,"vertices":484,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6800000071525574,-0.000020133451077097853,-0.6629828860897473],"max":[0.6800000071525574,0.600020157292935,0.6629828860897473]},"sizeMeters":[1.36,0.6,1.326],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:03.300Z","updatedAt":"2026-10-02T13:27:13.070Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39221/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoundDisplayPlinthLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39221/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39221/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39221/v1/model.glb\" alt=\"Round Display Plinth (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39221/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39221/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39222","slug":"legendary-warriors-kit-standing-war-banner-b652fc83","title":"Standing War Banner (Legendary Warriors Kit)","summary":"Freestanding banner frame with a plain field and pointed tail.","description":"A freestanding banner on two posts and a crossbar with brass finials, a plain field with a pale stripe and a pointed tail, 2.3 m tall. The field is blank by design: remap its cloth per placement for each culture hall. Static. Overall 1.400 x 2.190 x 0.481 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-standing-war-banner-b652fc83","cdnUrl":"https://cdn.3dassets.dev/assets/39222/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-standing-war-banner-b652fc83","thumbnailUrl":"https://cdn.3dassets.dev/assets/39222/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39222/v1/poster.webp","blurhash":"U88{%i$%0KEL-poLELR+0yRk}uxt9as.?GR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"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":31700,"triangles":252,"vertices":628,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.7000426941221822,0,-0.24038934298265544],"max":[0.7000426941221822,2.1899888612427505,0.24038934298265544]},"sizeMeters":[1.4,2.19,0.481],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:53:03.621Z","updatedAt":"2026-10-02T13:27:13.066Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39222/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandingWarBannerLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39222/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39222/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39222/v1/model.glb\" alt=\"Standing War Banner (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39222/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39222/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39223","slug":"legendary-warriors-kit-gallery-floor-tile-0c1eb46c","title":"Gallery Floor Tile (Legendary Warriors Kit)","summary":"Four metre stone floor tile with a brass inlay border.","description":"A four metre sandstone floor tile, 0.12 m thick, with a brass inlay border standing proud of the face. Origin at the centre of the underside; lay edge to edge on a four metre grid for a continuous hall floor. Overall 4.000 x 0.128 x 4.000 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-gallery-floor-tile-0c1eb46c","cdnUrl":"https://cdn.3dassets.dev/assets/39223/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-gallery-floor-tile-0c1eb46c","thumbnailUrl":"https://cdn.3dassets.dev/assets/39223/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39223/v1/poster.webp","blurhash":"U9EMB+%M00WA-:ayRjof00IV~pWC4.oft6Rj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":4568,"triangles":60,"vertices":140,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-2],"max":[2,0.12790026715737632,2]},"sizeMeters":[4,0.128,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:04.014Z","updatedAt":"2026-10-02T13:25:20.671Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39223/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleryFloorTileLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39223/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39223/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39223/v1/model.glb\" alt=\"Gallery Floor Tile (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39223/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39223/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39224","slug":"legendary-warriors-kit-gallery-wall-59530d3d","title":"Gallery Wall (Legendary Warriors Kit)","summary":"Four metre hall wall with timber framing and banner pegs.","description":"A four metre hall wall, 4.2 m tall and 0.25 m thick, sandstone with a proud dark timber frame and two brass banner pegs. Origin at the bottom centre of the inner face, which faces +Z and carries the frame and pegs; the stone runs back to z = -0.25. Overall 4.000 x 4.200 x 0.465 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-gallery-wall-59530d3d","cdnUrl":"https://cdn.3dassets.dev/assets/39224/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-gallery-wall-59530d3d","thumbnailUrl":"https://cdn.3dassets.dev/assets/39224/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39224/v1/poster.webp","blurhash":"UAGI4PsW00a0-:^QRP9G00oL_MW;aexuayIV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":31508,"triangles":284,"vertices":690,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.000021272129538,0,-0.2501014683627666],"max":[2.000021272129538,4.199999809265137,0.2150023634067068]},"sizeMeters":[4,4.2,0.465],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:53:10.657Z","updatedAt":"2026-10-02T13:25:18.597Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39224/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleryWallLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39224/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39224/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39224/v1/model.glb\" alt=\"Gallery Wall (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39224/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39224/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39225","slug":"legendary-warriors-kit-gallery-column-8367bf60","title":"Gallery Column (Legendary Warriors Kit)","summary":"Stone pier column with base, capital and brass collar, 4.6 m.","description":"A square stone pier, 4.6 m tall, with a stepped base, a capital and a brass collar proud of the shaft. Carries the architrave on the open front. Overall 0.900 x 4.600 x 0.900 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-gallery-column-8367bf60","cdnUrl":"https://cdn.3dassets.dev/assets/39225/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-gallery-column-8367bf60","thumbnailUrl":"https://cdn.3dassets.dev/assets/39225/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39225/v1/poster.webp","blurhash":"U3CGJY_40000xtoeM|RlIVaw%1oh-;ocD%Ro","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":4600,"triangles":60,"vertices":140,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.45007476101724336,0,-0.45007476101724336],"max":[0.45007476101724336,4.599999904632568,0.45007476101724336]},"sizeMeters":[0.9,4.6,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":7,"publishedAt":"2026-09-23T14:53:10.675Z","updatedAt":"2026-10-02T13:25:17.489Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39225/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleryColumnLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39225/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39225/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39225/v1/model.glb\" alt=\"Gallery Column (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39225/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39225/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39229","slug":"legendary-warriors-kit-gallery-rafter-8496e1e7","title":"Gallery Rafter (Legendary Warriors Kit)","summary":"Tie beam truss spanning the eight metre hall with a king post.","description":"A tie beam truss spanning the eight metre hall: a main beam, a king post, two struts and a corbel block, all dark timber. Place at y=4.2 with the corbel on the back wall top at z=-4 and the front end housed into the architrave; repeat down the hall for an open rafter roof. Overall 0.300 x 2.340 x 8.275 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-gallery-rafter-8496e1e7","cdnUrl":"https://cdn.3dassets.dev/assets/39229/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-gallery-rafter-8496e1e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/39229/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39229/v1/poster.webp","blurhash":"U24-Lcw_KJNbSz9^WVag0$ah,ts.r@};oebY","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":19848,"triangles":60,"vertices":138,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.1500091572816631,0.000105308755860678,-4.224999904632568],"max":[0.1500091572816631,2.339894605413451,4.050000190734863]},"sizeMeters":[0.3,2.34,8.275],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":8,"publishedAt":"2026-09-23T14:53:50.290Z","updatedAt":"2026-10-02T13:25:17.350Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39229/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleryRafterLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39229/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39229/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39229/v1/model.glb\" alt=\"Gallery Rafter (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39229/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39229/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39226","slug":"legendary-warriors-kit-gallery-architrave-c96cebf0","title":"Gallery Architrave (Legendary Warriors Kit)","summary":"Four metre crown beam with bearing pads for columns and walls.","description":"A four metre crown beam running over columns and wall tops, tying the colonnade together and carrying the rafters. Place at y=4.6 on the column capitals, laid on a four metre grid. Overall 4.000 x 0.470 x 0.400 m (X x Y x Z), metre units, +Y up, facing +Z, resting on y=0 with the origin under the footprint. Static geometry: no rig, no skinning, no animation, no collision and no navigation data.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-gallery-architrave-c96cebf0","cdnUrl":"https://cdn.3dassets.dev/assets/39226/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-gallery-architrave-c96cebf0","thumbnailUrl":"https://cdn.3dassets.dev/assets/39226/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39226/v1/poster.webp","blurhash":"U57dLFWA.9%MMx~CRjog0LIAn3IUkW01WBVs","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"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":19088,"triangles":36,"vertices":84,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000060427989866981835,-0.1999572740867336],"max":[2,0.47005416841716896,0.1999572740867336]},"sizeMeters":[4,0.47,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":6,"publishedAt":"2026-09-23T14:53:46.821Z","updatedAt":"2026-10-02T13:25:17.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39226/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleryArchitraveLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39226/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39226/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39226/v1/model.glb\" alt=\"Gallery Architrave (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39226/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39226/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39228","slug":"legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","title":"Hall of Legends (Legendary Warriors Kit)","summary":"A roofed colonnade training hall in use: six champions on plinths along the back wall between the banners, three duelling pairs on the floor, an archer and two ninja drilling at the straw dummy and the pell post, a captain choosing from the dressed rack with spare arms laid...","description":"A roofed colonnade training hall in use: six champions on plinths along the back wall between the banners, three duelling pairs on the floor, an archer and two ninja drilling at the straw dummy and the pell post, a captain choosing from the dressed rack with spare arms laid out beside it, and onlookers under the colonnade. Open timber trusses overhead so the hall reads from above.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/39228/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-hall-of-legends-ec62b975-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/39228/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39228/v1/poster.webp","blurhash":"UFECav%M4.xu4n%1%MM|00D*V@WU~pM}NGay","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":2775504,"triangles":79958,"vertices":192547,"meshes":437,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-8.450074761017243,-0.000060427989866981835,-4.250101468362766],"max":[8.450074761017243,6.539894605413451,4.450074761017244]},"sizeMeters":[16.9,6.54,8.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":14,"publishedAt":"2026-09-23T14:53:50.072Z","updatedAt":"2026-10-03T00:28:00.397Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39228/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HallOfLegendsLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39228/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39228/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39228/v1/model.glb\" alt=\"Hall of Legends (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39228/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39228/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"39227","slug":"legendary-warriors-kit-warriors-training-yard-c6385d63","title":"Warriors Training Yard (Legendary Warriors Kit)","summary":"A walled practice yard with an open gate: both dummies, the dressed rack, two banners, the eight fighters the hall does not show sparring and watching, and the eight loose hand weapons laid out for drill.","description":"A walled practice yard with an open gate: both dummies, the dressed rack, two banners, the eight fighters the hall does not show sparring and watching, and the eight loose hand weapons laid out for drill.","status":"published","url":"https://3dassets.dev/assets/legendary-warriors-kit-warriors-training-yard-c6385d63","cdnUrl":"https://cdn.3dassets.dev/assets/39227/v1/model.glb","downloadUrl":"https://3dassets.dev/download/legendary-warriors-kit-warriors-training-yard-c6385d63","thumbnailUrl":"https://cdn.3dassets.dev/assets/39227/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/39227/v1/poster.webp","blurhash":"U5E{Rn-;00s+H?%Lx]Rk00IU~pX8?vM|IUM_","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":1281192,"triangles":34452,"vertices":82502,"meshes":208,"materials":12,"textures":1,"animations":[],"boundingBox":{"min":[-8.250101468362766,-0.000060427989866981835,-6.250101468362766],"max":[8.250101468362766,4.199999809265137,6.000021272129538]},"sizeMeters":[16.5,4.2,12.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5.5","downloads":10,"publishedAt":"2026-09-23T14:53:50.060Z","updatedAt":"2026-10-02T13:27:13.076Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/39227/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarriorsTrainingYardLegendaryWarriorsKit(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/39227/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/39227/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/39227/v1/model.glb\" alt=\"Warriors Training Yard (Legendary Warriors Kit)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/39227/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/39227/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}