{"data":{"id":"37582","slug":"blacksmith-forge-and-armoury-blacksmith-forge-and-armo-6b9a8922","title":"File and rasp rack, 0.9 m (Blacksmith Forge and Armoury)","summary":"Wall rack 0.9 m wide of eight files and rasps hanging by their tangs: flat, half round, round and square cuts with turned wooden handles, the tools that take the hammer marks off finished work.","description":"Wall rack 0.9 m wide of eight files and rasps hanging by their tangs: flat, half round, round and square cuts with turned wooden handles, the tools that take the hammer marks off finished work. Free 3D model for medieval, crafting and village game scenes in Unity, Godot, Unreal, three.js and Blender. Overall 0.90 by 0.84 by 0.10 m (X by Y by Z). Metre units, +Y up, the working face toward +Z. The origin is the centre of the fixing face at the back, so it hangs flat on a wall or a post. Static geometry; no rig, collision or navigation data. Static rack; the files hang on their pegs. No maker's names, marks or readable writing anywhere: every stamp and mark is an abstract shape.","status":"published","url":"https://3dassets.dev/assets/blacksmith-forge-and-armoury-blacksmith-forge-and-armo-6b9a8922","cdnUrl":"https://cdn.3dassets.dev/assets/37582/v1/model.glb","downloadUrl":"https://3dassets.dev/download/blacksmith-forge-and-armoury-blacksmith-forge-and-armo-6b9a8922","thumbnailUrl":"https://cdn.3dassets.dev/assets/37582/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37582/v1/poster.webp","blurhash":"U67v+9so0zbH}9$%E*I;EMwvxaJ.K6j[r=R*","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":56920,"triangles":856,"vertices":1936,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.5900186936793359,-0.000017318591394990812],"max":[0.44999998807907104,0.25002898596049583,0.0950173173993021]},"sizeMeters":[0.9,0.84,0.095],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:41:01.225Z","updatedAt":"2026-09-12T05:41:01.334Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37582/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FileAndRaspRack09MBlacksmithForgeAndArmoury(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37582/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37582/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37582/v1/model.glb\" alt=\"File and rasp rack, 0.9 m (Blacksmith Forge and Armoury)\" 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/37582/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/37582/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}}