{"data":{"id":29,"slug":"primitive-crafting-workshop","title":"Primitive Crafting Workshop","summary":"60 distinct original survival designs with two assembled examples.","description":"Primitive Crafting Workshop: individually specified survival equipment, honest static construction, metre scale. CC0, AI-generated. ","url":"https://3dassets.dev/packs/primitive-crafting-workshop","coverUrl":"https://cdn.3dassets.dev/assets/1611/v1/poster.webp","assetCount":62,"aiGenerated":true,"aiGeneratedAssetCount":62,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":5423272,"totalTriangles":101340,"starterScene":{"id":"1611","slug":"primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","title":"Fibre and Hide Workshop (Primitive Crafting Workshop)","summary":"Composed example for Primitive Crafting Workshop.","description":"Composed fibre and hide workshop with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1611/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1611/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1611/v1/poster.webp","blurhash":"U26aVDM#019tx[t5IVIp00-o~BruMeRl.7%K","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":804700,"triangles":15632,"vertices":46896,"meshes":18,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.6040033843844315,-0.00002035097428726429,-1.2999864200282278],"max":[2.8794775345969628,1.8700000047683716,1.570330262184143]},"sizeMeters":[5.483,1.87,2.87],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:46.347Z","updatedAt":"2026-09-06T04:53:46.655Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1611/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FibreAndHideWorkshopPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1611/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1611/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1611/v1/model.glb\" alt=\"Fibre and Hide Workshop (Primitive Crafting Workshop)\" 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/1611/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/1611/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"1501","slug":"primitive-crafting-workshop-flint-handaxe-bced6611","title":"Flint Handaxe (Primitive Crafting Workshop)","summary":"Flint Handaxe: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Flint Handaxe. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.18 × 0.31 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-flint-handaxe-bced6611","cdnUrl":"https://cdn.3dassets.dev/assets/1501/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-flint-handaxe-bced6611","thumbnailUrl":"https://cdn.3dassets.dev/assets/1501/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1501/v1/poster.webp","blurhash":"UDDS%Wx]00D%%MRkIVxu00Rj~pxbV[oyoyRk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":3180,"triangles":44,"vertices":132,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.09072360909537765,0,-0.03299724424122185],"max":[0.09072360909537765,0.3082157075405121,0.03299724424122185]},"sizeMeters":[0.181,0.308,0.066],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:24.295Z","updatedAt":"2026-09-06T04:53:24.380Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1501/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlintHandaxePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1501/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1501/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1501/v1/model.glb\" alt=\"Flint Handaxe (Primitive Crafting Workshop)\" 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/1501/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/1501/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1504","slug":"primitive-crafting-workshop-hafted-stone-axe-69eb455e","title":"Hafted Stone Axe (Primitive Crafting Workshop)","summary":"Hafted Stone Axe: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hafted Stone Axe. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.24 × 0.60 × 0.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-hafted-stone-axe-69eb455e","cdnUrl":"https://cdn.3dassets.dev/assets/1504/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-hafted-stone-axe-69eb455e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1504/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1504/v1/poster.webp","blurhash":"UA7nH~%L009Z~pxu4oIUoMofj[Rj8{WB.7t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":69184,"triangles":1260,"vertices":3780,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.11807408183813095,0,-0.05350000038743019],"max":[0.11807408183813095,0.6000000238418579,0.05349674536665668]},"sizeMeters":[0.236,0.6,0.107],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:25.017Z","updatedAt":"2026-09-06T04:53:26.016Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1504/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HaftedStoneAxePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1504/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1504/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1504/v1/model.glb\" alt=\"Hafted Stone Axe (Primitive Crafting Workshop)\" 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/1504/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/1504/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1502","slug":"primitive-crafting-workshop-stone-adze-061da0b6","title":"Stone Adze (Primitive Crafting Workshop)","summary":"Stone Adze: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stone Adze. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.25 × 0.58 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-stone-adze-061da0b6","cdnUrl":"https://cdn.3dassets.dev/assets/1502/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-stone-adze-061da0b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/1502/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1502/v1/poster.webp","blurhash":"UB7wyl%M019F~pxu4oD%tRt7V@M{D%WB%Mt6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":21284,"triangles":264,"vertices":792,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.12341273576021194,0,-0.07904224107699369],"max":[0.12341273576021194,0.5829967761734973,0.07903545111751792]},"sizeMeters":[0.247,0.583,0.158],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:24.758Z","updatedAt":"2026-09-06T04:53:24.890Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1502/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneAdzePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1502/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1502/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1502/v1/model.glb\" alt=\"Stone Adze (Primitive Crafting Workshop)\" 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/1502/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/1502/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1503","slug":"primitive-crafting-workshop-flint-scraper-ea35a2e7","title":"Flint Scraper (Primitive Crafting Workshop)","summary":"Flint Scraper: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Flint Scraper. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.19 × 0.13 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-flint-scraper-ea35a2e7","cdnUrl":"https://cdn.3dassets.dev/assets/1503/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-flint-scraper-ea35a2e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/1503/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1503/v1/poster.webp","blurhash":"UFHxvd~q00%Mx[^+xuIV00IU%MM{RkIUWBM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":2792,"triangles":36,"vertices":108,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.0932161808013916,0.0000027268367807364857,-0.02049407533473388],"max":[0.0932161808013916,0.12621027238788204,0.02049407533473388]},"sizeMeters":[0.186,0.126,0.041],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:24.833Z","updatedAt":"2026-09-06T04:53:24.965Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1503/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlintScraperPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1503/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1503/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1503/v1/model.glb\" alt=\"Flint Scraper (Primitive Crafting Workshop)\" 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/1503/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/1503/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1505","slug":"primitive-crafting-workshop-leaf-spearhead-58ad5eb6","title":"Leaf Spearhead (Primitive Crafting Workshop)","summary":"Leaf Spearhead: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Leaf Spearhead. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.15 × 0.41 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-leaf-spearhead-58ad5eb6","cdnUrl":"https://cdn.3dassets.dev/assets/1505/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-leaf-spearhead-58ad5eb6","thumbnailUrl":"https://cdn.3dassets.dev/assets/1505/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1505/v1/poster.webp","blurhash":"UAA,wYxu00D%-;ayIUof00WB~pt7IUj]xuRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":3184,"triangles":44,"vertices":132,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.07320870724842206,0,-0.015508153566119546],"max":[0.07320870724842206,0.4084852635860443,0.015508153566119546]},"sizeMeters":[0.146,0.408,0.031],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:25.477Z","updatedAt":"2026-09-06T04:53:25.636Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1505/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LeafSpearheadPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1505/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1505/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1505/v1/model.glb\" alt=\"Leaf Spearhead (Primitive Crafting Workshop)\" 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/1505/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/1505/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1507","slug":"primitive-crafting-workshop-notched-arrowhead-ba7270ce","title":"Notched Arrowhead (Primitive Crafting Workshop)","summary":"Notched Arrowhead: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Notched Arrowhead. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.09 × 0.13 × 0.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-notched-arrowhead-ba7270ce","cdnUrl":"https://cdn.3dassets.dev/assets/1507/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-notched-arrowhead-ba7270ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/1507/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1507/v1/poster.webp","blurhash":"UBC?lrxu00IUIUt7t8M|00M{~qxv%MRjWBxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":3580,"triangles":52,"vertices":156,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.04355847923446117,0,-0.009001386722428546],"max":[0.04355847923446117,0.12724263966083527,0.009001386722428546]},"sizeMeters":[0.087,0.127,0.018],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:25.592Z","updatedAt":"2026-09-06T04:53:25.789Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1507/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NotchedArrowheadPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1507/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1507/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1507/v1/model.glb\" alt=\"Notched Arrowhead (Primitive Crafting Workshop)\" 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/1507/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/1507/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1506","slug":"primitive-crafting-workshop-stone-chisel-f2ccf064","title":"Stone Chisel (Primitive Crafting Workshop)","summary":"Stone Chisel: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stone Chisel. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.09 × 0.23 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-stone-chisel-f2ccf064","cdnUrl":"https://cdn.3dassets.dev/assets/1506/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-stone-chisel-f2ccf064","thumbnailUrl":"https://cdn.3dassets.dev/assets/1506/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1506/v1/poster.webp","blurhash":"U7ECtP~q0000?bxuD%IU00ax?aa$xuxuRiD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":2404,"triangles":28,"vertices":84,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.045586817449035325,0,-0.02299912853022245],"max":[0.045586817449035325,0.22658221423625946,0.02299912853022245]},"sizeMeters":[0.091,0.227,0.046],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:25.563Z","updatedAt":"2026-09-06T04:53:25.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1506/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneChiselPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1506/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1506/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1506/v1/model.glb\" alt=\"Stone Chisel (Primitive Crafting Workshop)\" 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/1506/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/1506/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1508","slug":"primitive-crafting-workshop-grooved-hammerstone-b0b12513","title":"Grooved Hammerstone (Primitive Crafting Workshop)","summary":"Grooved Hammerstone: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Grooved Hammerstone. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.15 × 0.10 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-grooved-hammerstone-b0b12513","cdnUrl":"https://cdn.3dassets.dev/assets/1508/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-grooved-hammerstone-b0b12513","thumbnailUrl":"https://cdn.3dassets.dev/assets/1508/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1508/v1/poster.webp","blurhash":"UCDS:j%f00IUx@WBRjog00M|~pt7ICs;xuRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":50260,"triangles":1008,"vertices":3024,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07699999958276749,0.000002358860251856776,-0.07763572037220001],"max":[0.07699999958276749,0.09805815219235664,0.07763572037220001]},"sizeMeters":[0.154,0.098,0.155],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:25.731Z","updatedAt":"2026-09-06T04:53:26.863Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1508/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GroovedHammerstonePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1508/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1508/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1508/v1/model.glb\" alt=\"Grooved Hammerstone (Primitive Crafting Workshop)\" 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/1508/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/1508/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1509","slug":"primitive-crafting-workshop-knapping-billet-489cdb85","title":"Knapping Billet (Primitive Crafting Workshop)","summary":"Knapping Billet: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Knapping Billet. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.11 × 0.32 × 0.11 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-knapping-billet-489cdb85","cdnUrl":"https://cdn.3dassets.dev/assets/1509/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-knapping-billet-489cdb85","thumbnailUrl":"https://cdn.3dassets.dev/assets/1509/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1509/v1/poster.webp","blurhash":"UF8|w^t701Io~qof8{Rj-;j[IUaeM|WCt6of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":15580,"triangles":160,"vertices":480,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.054999999701976776,-5.9604643443123e-10,-0.054999999701976776],"max":[0.054999999701976776,0.3199970969756857,0.054999999701976776]},"sizeMeters":[0.11,0.32,0.11],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:26.518Z","updatedAt":"2026-09-06T04:53:27.318Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1509/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KnappingBilletPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1509/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1509/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1509/v1/model.glb\" alt=\"Knapping Billet (Primitive Crafting Workshop)\" 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/1509/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/1509/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1510","slug":"primitive-crafting-workshop-stone-auger-62ed3c82","title":"Stone Auger (Primitive Crafting Workshop)","summary":"Stone Auger: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Stone Auger. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.24 × 0.47 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-stone-auger-62ed3c82","cdnUrl":"https://cdn.3dassets.dev/assets/1510/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-stone-auger-62ed3c82","thumbnailUrl":"https://cdn.3dassets.dev/assets/1510/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1510/v1/poster.webp","blurhash":"U56HT7$%009v_MkC4nRit,S4Mdw]sDoJW-Wr","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":20116,"triangles":228,"vertices":684,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.1199945051625617,0,-0.025003204129746114],"max":[0.1199945051625617,0.4699999988079071,0.025003204129746114]},"sizeMeters":[0.24,0.47,0.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:26.819Z","updatedAt":"2026-09-06T04:53:27.485Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1510/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneAugerPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1510/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1510/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1510/v1/model.glb\" alt=\"Stone Auger (Primitive Crafting Workshop)\" 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/1510/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/1510/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1511","slug":"primitive-crafting-workshop-bone-awl-3a56b4a8","title":"Bone Awl (Primitive Crafting Workshop)","summary":"Bone Awl: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Awl. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.07 × 0.20 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-awl-3a56b4a8","cdnUrl":"https://cdn.3dassets.dev/assets/1511/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-awl-3a56b4a8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1511/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1511/v1/poster.webp","blurhash":"U7AJ_{%f004n4oRk?bxt00Rj~px]-;s:IURj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":16792,"triangles":328,"vertices":984,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.035001679039586835,0,-0.02450025977241286],"max":[0.035001679039586835,0.20000000298023224,0.02450025977241286]},"sizeMeters":[0.07,0.2,0.049],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:26.953Z","updatedAt":"2026-09-06T04:53:27.499Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1511/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneAwlPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1511/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1511/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1511/v1/model.glb\" alt=\"Bone Awl (Primitive Crafting Workshop)\" 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/1511/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/1511/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1523","slug":"primitive-crafting-workshop-bone-needle-861f9a59","title":"Bone Needle (Primitive Crafting Workshop)","summary":"Bone Needle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Needle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.03 × 0.17 × 0.01 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-needle-861f9a59","cdnUrl":"https://cdn.3dassets.dev/assets/1523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-needle-861f9a59","thumbnailUrl":"https://cdn.3dassets.dev/assets/1523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1523/v1/poster.webp","blurhash":"U38|;Q-;0000~Voe4oNH-os;IVM_-;kCD%V?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":16804,"triangles":328,"vertices":984,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.017003326057390918,-2.98023217215615e-10,-0.006000549170784427],"max":[0.017003326057390918,0.17399999499320984,0.006000549170784427]},"sizeMeters":[0.034,0.174,0.012],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:28.034Z","updatedAt":"2026-09-06T04:53:28.134Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1523/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneNeedlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1523/v1/model.glb\" alt=\"Bone Needle (Primitive Crafting Workshop)\" 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/1523/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/1523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1512","slug":"primitive-crafting-workshop-bone-fishhook-76ead4db","title":"Bone Fishhook (Primitive Crafting Workshop)","summary":"Bone Fishhook: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Fishhook. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.08 × 0.15 × 0.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-fishhook-76ead4db","cdnUrl":"https://cdn.3dassets.dev/assets/1512/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-fishhook-76ead4db","thumbnailUrl":"https://cdn.3dassets.dev/assets/1512/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1512/v1/poster.webp","blurhash":"U7BM[CWB00%2IUM{tQ-;00Rj~pxt-;xtM{IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":24688,"triangles":492,"vertices":1476,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.03941272558142415,0,-0.00800258387440084],"max":[0.03941272558142415,0.14567814767360687,0.00800258387440084]},"sizeMeters":[0.079,0.146,0.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:27.706Z","updatedAt":"2026-09-06T04:53:28.669Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1512/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneFishhookPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1512/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1512/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1512/v1/model.glb\" alt=\"Bone Fishhook (Primitive Crafting Workshop)\" 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/1512/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/1512/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1518","slug":"primitive-crafting-workshop-antler-pressure-flaker-1aac2e40","title":"Antler Pressure Flaker (Primitive Crafting Workshop)","summary":"Antler Pressure Flaker: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Antler Pressure Flaker. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.13 × 0.26 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-antler-pressure-flaker-1aac2e40","cdnUrl":"https://cdn.3dassets.dev/assets/1518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-antler-pressure-flaker-1aac2e40","thumbnailUrl":"https://cdn.3dassets.dev/assets/1518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1518/v1/poster.webp","blurhash":"U6ATcj-p004o%2M{Rk.701IV~p?a9FR*-:s:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":13776,"triangles":264,"vertices":792,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.06727174465793873,0,-0.020992377623140306],"max":[0.06727174465793873,0.2582046687602997,0.020992377623140306]},"sizeMeters":[0.135,0.258,0.042],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:27.955Z","updatedAt":"2026-09-06T04:53:28.977Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AntlerPressureFlakerPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1518/v1/model.glb\" alt=\"Antler Pressure Flaker (Primitive Crafting Workshop)\" 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/1518/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/1518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1513","slug":"primitive-crafting-workshop-antler-pick-ae6f68a8","title":"Antler Pick (Primitive Crafting Workshop)","summary":"Antler Pick: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Antler Pick. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.30 × 0.38 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-antler-pick-ae6f68a8","cdnUrl":"https://cdn.3dassets.dev/assets/1513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-antler-pick-ae6f68a8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1513/v1/poster.webp","blurhash":"U7AwF+-;0000~pNGE1-p01M|_3-:4nxt%MIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":13732,"triangles":264,"vertices":792,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.1501395808730712,0,-0.029997003232351896],"max":[0.1501395808730712,0.3751571774482727,0.029997003232351896]},"sizeMeters":[0.3,0.375,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:27.627Z","updatedAt":"2026-09-06T04:53:28.675Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1513/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AntlerPickPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1513/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1513/v1/model.glb\" alt=\"Antler Pick (Primitive Crafting Workshop)\" 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/1513/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/1513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1524","slug":"primitive-crafting-workshop-bone-spatula-999cb6b8","title":"Bone Spatula (Primitive Crafting Workshop)","summary":"Bone Spatula: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Spatula. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.25 × 0.34 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-spatula-999cb6b8","cdnUrl":"https://cdn.3dassets.dev/assets/1524/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-spatula-999cb6b8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1524/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1524/v1/poster.webp","blurhash":"UKB|EDxu00IU~qxu9FIUD*t7%MM{9FWB%MWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":41100,"triangles":692,"vertices":2076,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.12327202464239201,-2.98023217215615e-10,-0.02898808486108672],"max":[0.12327202464239201,0.34299999475479126,0.02898808486108672]},"sizeMeters":[0.247,0.343,0.058],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:28.552Z","updatedAt":"2026-09-06T04:53:29.691Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1524/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneSpatulaPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1524/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1524/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1524/v1/model.glb\" alt=\"Bone Spatula (Primitive Crafting Workshop)\" 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/1524/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/1524/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1525","slug":"primitive-crafting-workshop-bone-comb-38568c72","title":"Bone Comb (Primitive Crafting Workshop)","summary":"Bone Comb: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Comb. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.16 × 0.12 × 0.02 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-comb-38568c72","cdnUrl":"https://cdn.3dassets.dev/assets/1525/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-comb-38568c72","thumbnailUrl":"https://cdn.3dassets.dev/assets/1525/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1525/v1/poster.webp","blurhash":"UCH2WS?b00xt_3~pkC9G00t7?bRjRQ-;t7D*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":40800,"triangles":828,"vertices":2484,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999999821186066,0.0000031304754578090344,-0.010000304961570521],"max":[0.07999999821186066,0.11499687161070477,0.010000304961570521]},"sizeMeters":[0.16,0.115,0.02],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:28.945Z","updatedAt":"2026-09-06T04:53:30.012Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1525/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneCombPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1525/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1525/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1525/v1/model.glb\" alt=\"Bone Comb (Primitive Crafting Workshop)\" 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/1525/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/1525/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1526","slug":"primitive-crafting-workshop-bone-harpoon-head-59ebed37","title":"Bone Harpoon Head (Primitive Crafting Workshop)","summary":"Bone Harpoon Head: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Bone Harpoon Head. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.06 × 0.26 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-bone-harpoon-head-59ebed37","cdnUrl":"https://cdn.3dassets.dev/assets/1526/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-bone-harpoon-head-59ebed37","thumbnailUrl":"https://cdn.3dassets.dev/assets/1526/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1526/v1/poster.webp","blurhash":"U7Amr8%M004nM{a#xtax00j?~pWFxut6RjM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":6840,"triangles":120,"vertices":360,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.031326638457867303,0,-0.014996795006425838],"max":[0.031326638457867303,0.25999999046325684,0.014996795006425838]},"sizeMeters":[0.063,0.26,0.03],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:29.074Z","updatedAt":"2026-09-06T04:53:29.130Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1526/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoneHarpoonHeadPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1526/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1526/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1526/v1/model.glb\" alt=\"Bone Harpoon Head (Primitive Crafting Workshop)\" 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/1526/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/1526/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1527","slug":"primitive-crafting-workshop-shell-scraper-2974ea00","title":"Shell Scraper (Primitive Crafting Workshop)","summary":"Shell Scraper: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Shell Scraper. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.18 × 0.06 × 0.18 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-shell-scraper-2974ea00","cdnUrl":"https://cdn.3dassets.dev/assets/1527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-shell-scraper-2974ea00","thumbnailUrl":"https://cdn.3dassets.dev/assets/1527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1527/v1/poster.webp","blurhash":"UEDcUG%M00RjM|WBocof00M{~pj[%1t6WYWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":49052,"triangles":984,"vertices":2952,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.09000000357627869,-0.000003433332452479343,-0.09000000357627869],"max":[0.09000000357627869,0.0625521211948753,0.09000000357627869]},"sizeMeters":[0.18,0.063,0.18],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:29.026Z","updatedAt":"2026-09-06T04:53:29.151Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1527/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShellScraperPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1527/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1527/v1/model.glb\" alt=\"Shell Scraper (Primitive Crafting Workshop)\" 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/1527/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/1527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1529","slug":"primitive-crafting-workshop-tooth-pendant-c90dc1bd","title":"Tooth Pendant (Primitive Crafting Workshop)","summary":"Tooth Pendant: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Tooth Pendant. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.06 × 0.16 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-tooth-pendant-c90dc1bd","cdnUrl":"https://cdn.3dassets.dev/assets/1529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-tooth-pendant-c90dc1bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/1529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1529/v1/poster.webp","blurhash":"U49jx~%M004.00M{~X.7o#WVoHxH-rt6E0My","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":17524,"triangles":328,"vertices":984,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.028999999165534973,-7.450580707946131e-10,-0.019997253781120605],"max":[0.028999999165534973,0.15799999609589577,0.019997253781120605]},"sizeMeters":[0.058,0.158,0.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:29.415Z","updatedAt":"2026-09-06T04:53:29.676Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1529/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ToothPendantPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1529/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1529/v1/model.glb\" alt=\"Tooth Pendant (Primitive Crafting Workshop)\" 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/1529/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/1529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1530","slug":"primitive-crafting-workshop-spindle-whorl-87d3f7b4","title":"Spindle Whorl (Primitive Crafting Workshop)","summary":"Spindle Whorl: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Spindle Whorl. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.14 × 0.05 × 0.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-spindle-whorl-87d3f7b4","cdnUrl":"https://cdn.3dassets.dev/assets/1530/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-spindle-whorl-87d3f7b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/1530/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1530/v1/poster.webp","blurhash":"UDASxexa0gR*9uWCxZoL02Rk?Fof~As:IpWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":15572,"triangles":160,"vertices":480,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.07000000029802322,0.0000021361413389577033,-0.07000000029802322],"max":[0.07000000029802322,0.05000000074505806,0.07000000029802322]},"sizeMeters":[0.14,0.05,0.14],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:30.078Z","updatedAt":"2026-09-06T04:53:30.163Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1530/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpindleWhorlPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1530/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1530/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1530/v1/model.glb\" alt=\"Spindle Whorl (Primitive Crafting Workshop)\" 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/1530/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/1530/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1535","slug":"primitive-crafting-workshop-drop-spindle-58fcd84f","title":"Drop Spindle (Primitive Crafting Workshop)","summary":"Drop Spindle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Drop Spindle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.13 × 0.33 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-drop-spindle-58fcd84f","cdnUrl":"https://cdn.3dassets.dev/assets/1535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-drop-spindle-58fcd84f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1535/v1/poster.webp","blurhash":"UB8p}txa00Ioozj[V@ay00Rj~WxuVrayo}of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":157428,"triangles":3100,"vertices":9300,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.06499999761581421,0,-0.06499999761581421],"max":[0.06499999761581421,0.33000001311302185,0.06499999761581421]},"sizeMeters":[0.13,0.33,0.13],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:30.627Z","updatedAt":"2026-09-06T04:53:31.661Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DropSpindlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1535/v1/model.glb\" alt=\"Drop Spindle (Primitive Crafting Workshop)\" 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/1535/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/1535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1534","slug":"primitive-crafting-workshop-rope-twisting-jig-2e9cd072","title":"Rope Twisting Jig (Primitive Crafting Workshop)","summary":"Rope Twisting Jig: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Rope Twisting Jig. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.80 × 1.14 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-rope-twisting-jig-2e9cd072","cdnUrl":"https://cdn.3dassets.dev/assets/1534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-rope-twisting-jig-2e9cd072","thumbnailUrl":"https://cdn.3dassets.dev/assets/1534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1534/v1/poster.webp","blurhash":"U36tE;xZ00Vt_Nxa9FEL7MX9v}RPE2oz-VMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":111792,"triangles":1968,"vertices":5904,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.40000466388327727,0,-0.1749829541755726],"max":[0.40000466388327727,1.140020748216261,0.1749829541755726]},"sizeMeters":[0.8,1.14,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:30.514Z","updatedAt":"2026-09-06T04:53:31.558Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RopeTwistingJigPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1534/v1/model.glb\" alt=\"Rope Twisting Jig (Primitive Crafting Workshop)\" 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/1534/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/1534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1536","slug":"primitive-crafting-workshop-cordage-spool-e5354994","title":"Cordage Spool (Primitive Crafting Workshop)","summary":"Cordage Spool: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Cordage Spool. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.20 × 0.23 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-cordage-spool-e5354994","cdnUrl":"https://cdn.3dassets.dev/assets/1536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-cordage-spool-e5354994","thumbnailUrl":"https://cdn.3dassets.dev/assets/1536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1536/v1/poster.webp","blurhash":"UBA]?7xu00IVMxWBxut700RQ~qxu.8ozD%M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":300744,"triangles":6060,"vertices":18180,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.10000266780319952,-1.8626451769865326e-10,-0.10000266780319952],"max":[0.10000266780319952,0.23442038893699646,0.10000266780319952]},"sizeMeters":[0.2,0.234,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:30.675Z","updatedAt":"2026-09-06T04:53:31.678Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CordageSpoolPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1536/v1/model.glb\" alt=\"Cordage Spool (Primitive Crafting Workshop)\" 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/1536/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/1536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1538","slug":"primitive-crafting-workshop-braiding-board-10ee6085","title":"Braiding Board (Primitive Crafting Workshop)","summary":"Braiding Board: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Braiding Board. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.30 × 0.13 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-braiding-board-10ee6085","cdnUrl":"https://cdn.3dassets.dev/assets/1538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-braiding-board-10ee6085","thumbnailUrl":"https://cdn.3dassets.dev/assets/1538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1538/v1/poster.webp","blurhash":"U37mjHsk00-ptl9uIU?H01M|~BbvZ$^j=|4.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":67344,"triangles":1132,"vertices":3396,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.1500137333292642,-0.000009537071464157942,-0.25],"max":[0.1500137333292642,0.12574811925665402,0.25]},"sizeMeters":[0.3,0.126,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:30.748Z","updatedAt":"2026-09-06T04:53:31.788Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1538/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BraidingBoardPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1538/v1/model.glb\" alt=\"Braiding Board (Primitive Crafting Workshop)\" 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/1538/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/1538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1543","slug":"primitive-crafting-workshop-fibre-bundle-1b9a8f5a","title":"Fibre Bundle (Primitive Crafting Workshop)","summary":"Fibre Bundle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Fibre Bundle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.13 × 0.35 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-fibre-bundle-1b9a8f5a","cdnUrl":"https://cdn.3dassets.dev/assets/1543/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-fibre-bundle-1b9a8f5a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1543/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1543/v1/poster.webp","blurhash":"U6Ci]m-:009F~qWB9Fxu4oRi?a%Mj^WCRjof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":83028,"triangles":1692,"vertices":5076,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.06659585257376117,0,-0.06661727119644309],"max":[0.06659585257376117,0.3509120047092438,0.06661727119644309]},"sizeMeters":[0.133,0.351,0.133],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:31.171Z","updatedAt":"2026-09-06T04:53:31.364Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1543/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FibreBundlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1543/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1543/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1543/v1/model.glb\" alt=\"Fibre Bundle (Primitive Crafting Workshop)\" 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/1543/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/1543/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1544","slug":"primitive-crafting-workshop-cord-net-panel-00077e4c","title":"Cord Net Panel (Primitive Crafting Workshop)","summary":"Cord Net Panel: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Cord Net Panel. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.87 × 1.08 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-cord-net-panel-00077e4c","cdnUrl":"https://cdn.3dassets.dev/assets/1544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-cord-net-panel-00077e4c","thumbnailUrl":"https://cdn.3dassets.dev/assets/1544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1544/v1/poster.webp","blurhash":"U8B:d6%100IVR4%1x]E100Rj~qxuMxs:xuNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":98964,"triangles":1836,"vertices":5508,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.43501098451278525,0,-0.035005950936283885],"max":[0.43501098451278525,1.0751961469650269,0.035005950936283885]},"sizeMeters":[0.87,1.075,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:31.456Z","updatedAt":"2026-09-06T04:53:32.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CordNetPanelPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1544/v1/model.glb\" alt=\"Cord Net Panel (Primitive Crafting Workshop)\" 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/1544/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/1544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1545","slug":"primitive-crafting-workshop-netting-shuttle-094f7a09","title":"Netting Shuttle (Primitive Crafting Workshop)","summary":"Netting Shuttle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Netting Shuttle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.10 × 0.29 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-netting-shuttle-094f7a09","cdnUrl":"https://cdn.3dassets.dev/assets/1545/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-netting-shuttle-094f7a09","thumbnailUrl":"https://cdn.3dassets.dev/assets/1545/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1545/v1/poster.webp","blurhash":"U15q9R=x010z%0oLI;Nb0LV[~Vxuv~jZS$Sz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":14728,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.048060782819237806,0,-0.01399413864346719],"max":[0.048060782819237806,0.2872426211833954,0.01399893221771758]},"sizeMeters":[0.096,0.287,0.028],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:31.617Z","updatedAt":"2026-09-06T04:53:32.852Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1545/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NettingShuttlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1545/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1545/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1545/v1/model.glb\" alt=\"Netting Shuttle (Primitive Crafting Workshop)\" 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/1545/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/1545/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1546","slug":"primitive-crafting-workshop-looped-cord-sling-02cbbecf","title":"Looped Cord Sling (Primitive Crafting Workshop)","summary":"Looped Cord Sling: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Looped Cord Sling. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.37 × 0.32 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-looped-cord-sling-02cbbecf","cdnUrl":"https://cdn.3dassets.dev/assets/1546/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-looped-cord-sling-02cbbecf","thumbnailUrl":"https://cdn.3dassets.dev/assets/1546/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1546/v1/poster.webp","blurhash":"U3BDZp-;00RQnE~pEH0000IVjGM_kPM{-q8{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":19096,"triangles":360,"vertices":1080,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.18263833224773407,0.0000031428849822275062,-0.03750419685390902],"max":[0.18263833224773407,0.32190908978805,0.03750419685390902]},"sizeMeters":[0.365,0.322,0.075],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:31.732Z","updatedAt":"2026-09-06T04:53:32.877Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1546/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LoopedCordSlingPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1546/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1546/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1546/v1/model.glb\" alt=\"Looped Cord Sling (Primitive Crafting Workshop)\" 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/1546/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/1546/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1551","slug":"primitive-crafting-workshop-knotting-peg-board-11846396","title":"Knotting Peg Board (Primitive Crafting Workshop)","summary":"Knotting Peg Board: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Knotting Peg Board. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.50 × 0.12 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-knotting-peg-board-11846396","cdnUrl":"https://cdn.3dassets.dev/assets/1551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-knotting-peg-board-11846396","thumbnailUrl":"https://cdn.3dassets.dev/assets/1551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1551/v1/poster.webp","blurhash":"U27TRh$z0LoftkjbRja_00Ne^*NG9FX5-Vjv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":71016,"triangles":1128,"vertices":3384,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.25,0.0000031287432677440385,-0.25],"max":[0.25,0.11499687244882517,0.25]},"sizeMeters":[0.5,0.115,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:33.234Z","updatedAt":"2026-09-06T04:53:34.057Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1551/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KnottingPegBoardPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1551/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1551/v1/model.glb\" alt=\"Knotting Peg Board (Primitive Crafting Workshop)\" 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/1551/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/1551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1557","slug":"primitive-crafting-workshop-hide-stretching-frame-6ac54e29","title":"Hide Stretching Frame (Primitive Crafting Workshop)","summary":"Hide Stretching Frame: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hide Stretching Frame. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 1.47 × 1.77 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-hide-stretching-frame-6ac54e29","cdnUrl":"https://cdn.3dassets.dev/assets/1557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-hide-stretching-frame-6ac54e29","thumbnailUrl":"https://cdn.3dassets.dev/assets/1557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1557/v1/poster.webp","blurhash":"U89Z}x%100IVxaxtR%IV01WC_LoxadaefSkW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":77224,"triangles":1340,"vertices":4020,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.7350466853986491,0,-0.03500350925139258],"max":[0.7350466853986491,1.7699999809265137,0.03500350925139258]},"sizeMeters":[1.47,1.77,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:34.219Z","updatedAt":"2026-09-06T04:53:35.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1557/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HideStretchingFramePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1557/v1/model.glb\" alt=\"Hide Stretching Frame (Primitive Crafting Workshop)\" 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/1557/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/1557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1553","slug":"primitive-crafting-workshop-fleshing-beam-28b1fd87","title":"Fleshing Beam (Primitive Crafting Workshop)","summary":"Fleshing Beam: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Fleshing Beam. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.76 × 0.98 × 1.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-fleshing-beam-28b1fd87","cdnUrl":"https://cdn.3dassets.dev/assets/1553/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-fleshing-beam-28b1fd87","thumbnailUrl":"https://cdn.3dassets.dev/assets/1553/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1553/v1/poster.webp","blurhash":"U14A]R^41I5mAENuxFwd0$NH$%S#X7fj,Z$i","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":25664,"triangles":324,"vertices":972,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.379477534596963,0.000015603067870018084,-0.5703302621841431],"max":[0.379477534596963,0.9758100047087719,0.5703302621841431]},"sizeMeters":[0.759,0.976,1.141],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:33.551Z","updatedAt":"2026-09-06T04:53:34.658Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1553/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FleshingBeamPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1553/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1553/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1553/v1/model.glb\" alt=\"Fleshing Beam (Primitive Crafting Workshop)\" 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/1553/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/1553/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1552","slug":"primitive-crafting-workshop-leather-punch-0dcb6dff","title":"Leather Punch (Primitive Crafting Workshop)","summary":"Leather Punch: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Leather Punch. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.06 × 0.23 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-leather-punch-0dcb6dff","cdnUrl":"https://cdn.3dassets.dev/assets/1552/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-leather-punch-0dcb6dff","thumbnailUrl":"https://cdn.3dassets.dev/assets/1552/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1552/v1/poster.webp","blurhash":"U45OEJxa00EL~qof4nRj?wf+DNen.9oMDiR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":19408,"triangles":240,"vertices":720,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.03000381524133742,8.940696516468449e-10,-0.03000381524133742],"max":[0.03000381524133742,0.23000000417232513,0.03000381524133742]},"sizeMeters":[0.06,0.23,0.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:33.291Z","updatedAt":"2026-09-06T04:53:34.374Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1552/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LeatherPunchPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1552/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1552/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1552/v1/model.glb\" alt=\"Leather Punch (Primitive Crafting Workshop)\" 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/1552/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/1552/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1554","slug":"primitive-crafting-workshop-strap-cutter-4ee2e235","title":"Strap Cutter (Primitive Crafting Workshop)","summary":"Strap Cutter: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Strap Cutter. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.22 × 0.06 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-strap-cutter-4ee2e235","cdnUrl":"https://cdn.3dassets.dev/assets/1554/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-strap-cutter-4ee2e235","thumbnailUrl":"https://cdn.3dassets.dev/assets/1554/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1554/v1/poster.webp","blurhash":"U25;Hw$L0f%M]$=xT0Io0gxG^PEM1i5Rv}-p","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":25132,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.10999999940395355,-0.00000419618327150359,-0.03749710189306885],"max":[0.10999999940395355,0.055004196108765696,0.03750000149011612]},"sizeMeters":[0.22,0.055,0.075],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:33.575Z","updatedAt":"2026-09-06T04:53:34.617Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1554/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StrapCutterPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1554/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1554/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1554/v1/model.glb\" alt=\"Strap Cutter (Primitive Crafting Workshop)\" 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/1554/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/1554/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1559","slug":"primitive-crafting-workshop-sewing-palm-258c48ec","title":"Sewing Palm (Primitive Crafting Workshop)","summary":"Sewing Palm: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Sewing Palm. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.15 × 0.10 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-sewing-palm-258c48ec","cdnUrl":"https://cdn.3dassets.dev/assets/1559/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-sewing-palm-258c48ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/1559/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1559/v1/poster.webp","blurhash":"U5A^df_L00Dj4VRkR+X400M{_MRU_Mxt--k8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":20580,"triangles":392,"vertices":1176,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07584301382303238,-0.0000032869464033566387,-0.06500135371539104],"max":[0.07584301382303238,0.0991455927228802,0.06500135371539104]},"sizeMeters":[0.152,0.099,0.13],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:34.165Z","updatedAt":"2026-09-06T04:53:35.339Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1559/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SewingPalmPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1559/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1559/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1559/v1/model.glb\" alt=\"Sewing Palm (Primitive Crafting Workshop)\" 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/1559/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/1559/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1562","slug":"primitive-crafting-workshop-leather-lacing-78e59691","title":"Leather Lacing (Primitive Crafting Workshop)","summary":"Leather Lacing: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Leather Lacing. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.21 × 0.15 × 0.21 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-leather-lacing-78e59691","cdnUrl":"https://cdn.3dassets.dev/assets/1562/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-leather-lacing-78e59691","thumbnailUrl":"https://cdn.3dassets.dev/assets/1562/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1562/v1/poster.webp","blurhash":"U5A-31_K00IV?sRjIVtR00IC_1nlIWxtoMIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":188280,"triangles":3900,"vertices":11700,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.10489398158867737,-0.000005678830393596179,-0.10491959750652313],"max":[0.10489398158867737,0.14942477792287712,0.10491959750652313]},"sizeMeters":[0.21,0.149,0.21],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:34.735Z","updatedAt":"2026-09-06T04:53:35.831Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1562/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LeatherLacingPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1562/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1562/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1562/v1/model.glb\" alt=\"Leather Lacing (Primitive Crafting Workshop)\" 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/1562/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/1562/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1561","slug":"primitive-crafting-workshop-hide-apron-7b497f9a","title":"Hide Apron (Primitive Crafting Workshop)","summary":"Hide Apron: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hide Apron. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.37 × 0.67 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-hide-apron-7b497f9a","cdnUrl":"https://cdn.3dassets.dev/assets/1561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-hide-apron-7b497f9a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1561/v1/poster.webp","blurhash":"U29@hQ?s0002^ntQ4mD*04IX%X%F#m%2X+E0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":26044,"triangles":356,"vertices":1068,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.18309906794931957,0,-0.018995891852732538],"max":[0.18309906794931957,0.6744249119236394,0.018999297970668967]},"sizeMeters":[0.366,0.674,0.038],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:34.576Z","updatedAt":"2026-09-06T04:53:34.714Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1561/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HideApronPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1561/v1/model.glb\" alt=\"Hide Apron (Primitive Crafting Workshop)\" 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/1561/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/1561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1564","slug":"primitive-crafting-workshop-rawhide-quiver-ac95293f","title":"Rawhide Quiver (Primitive Crafting Workshop)","summary":"Rawhide Quiver: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Rawhide Quiver. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.27 × 0.55 × 0.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-rawhide-quiver-ac95293f","cdnUrl":"https://cdn.3dassets.dev/assets/1564/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-rawhide-quiver-ac95293f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1564/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1564/v1/poster.webp","blurhash":"U38qf=-r000J~pjc8{bD00EJ~p~E9GRix@%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":25424,"triangles":492,"vertices":1476,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.134531245444286,0,-0.07698523071002351],"max":[0.13451810185205326,0.550000011920929,0.07698523071002351]},"sizeMeters":[0.269,0.55,0.154],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:36.040Z","updatedAt":"2026-09-06T04:53:36.731Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1564/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RawhideQuiverPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1564/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1564/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1564/v1/model.glb\" alt=\"Rawhide Quiver (Primitive Crafting Workshop)\" 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/1564/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/1564/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1568","slug":"primitive-crafting-workshop-hide-water-flask-97d20c5d","title":"Hide Water Flask (Primitive Crafting Workshop)","summary":"Hide Water Flask: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Hide Water Flask. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.22 × 0.41 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-hide-water-flask-97d20c5d","cdnUrl":"https://cdn.3dassets.dev/assets/1568/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-hide-water-flask-97d20c5d","thumbnailUrl":"https://cdn.3dassets.dev/assets/1568/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1568/v1/poster.webp","blurhash":"U784rD%L009Gxtj@NGWV01Rk_KxtRkj@t6ay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":33768,"triangles":524,"vertices":1572,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.11200939766501988,-7.748603425561384e-10,-0.06299209456109245],"max":[0.11200939766501988,0.40866026282310486,0.06299209456109245]},"sizeMeters":[0.224,0.409,0.126],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:36.074Z","updatedAt":"2026-09-06T04:53:37.376Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1568/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HideWaterFlaskPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1568/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1568/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1568/v1/model.glb\" alt=\"Hide Water Flask (Primitive Crafting Workshop)\" 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/1568/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/1568/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1570","slug":"primitive-crafting-workshop-leatherworking-stump-7d481e11","title":"Leatherworking Stump (Primitive Crafting Workshop)","summary":"Leatherworking Stump: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Leatherworking Stump. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.56 × 0.64 × 0.56 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-leatherworking-stump-7d481e11","cdnUrl":"https://cdn.3dassets.dev/assets/1570/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-leatherworking-stump-7d481e11","thumbnailUrl":"https://cdn.3dassets.dev/assets/1570/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1570/v1/poster.webp","blurhash":"U17J,=}?000N_MRo8yt11HJR=0#n02r[_KTG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":25348,"triangles":348,"vertices":1044,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2800167771228251,0,-0.2800167771228251],"max":[0.2800167771228251,0.6400038288702086,0.2800167771228251]},"sizeMeters":[0.56,0.64,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:36.854Z","updatedAt":"2026-09-06T04:53:37.662Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1570/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LeatherworkingStumpPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1570/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1570/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1570/v1/model.glb\" alt=\"Leatherworking Stump (Primitive Crafting Workshop)\" 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/1570/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/1570/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1569","slug":"primitive-crafting-workshop-upright-loom-4e261235","title":"Upright Loom (Primitive Crafting Workshop)","summary":"Upright Loom: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Upright Loom. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 1.55 × 1.87 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-upright-loom-4e261235","cdnUrl":"https://cdn.3dassets.dev/assets/1569/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-upright-loom-4e261235","thumbnailUrl":"https://cdn.3dassets.dev/assets/1569/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1569/v1/poster.webp","blurhash":"U99jP@xZ00M|%Mt6IUIo01WC_ModE0jF-qoz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":139784,"triangles":2592,"vertices":7776,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.7749768079089359,0,-0.29998642002822795],"max":[0.7749768079089359,1.8700000047683716,0.29998642002822795]},"sizeMeters":[1.55,1.87,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:36.925Z","updatedAt":"2026-09-06T04:53:38.496Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1569/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UprightLoomPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1569/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1569/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1569/v1/model.glb\" alt=\"Upright Loom (Primitive Crafting Workshop)\" 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/1569/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/1569/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1571","slug":"primitive-crafting-workshop-backstrap-loom-b34df012","title":"Backstrap Loom (Primitive Crafting Workshop)","summary":"Backstrap Loom: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Backstrap Loom. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.60 × 0.74 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-backstrap-loom-b34df012","cdnUrl":"https://cdn.3dassets.dev/assets/1571/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-backstrap-loom-b34df012","thumbnailUrl":"https://cdn.3dassets.dev/assets/1571/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1571/v1/poster.webp","blurhash":"UABM*$%M00IT-;xuIUIU00R$_MogD%jE%Mbw","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":104880,"triangles":1944,"vertices":5832,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.29999300543922935,0,-0.035486328884516735],"max":[0.29999300543922935,0.7415692210197449,0.035486328884516735]},"sizeMeters":[0.6,0.742,0.071],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:37.127Z","updatedAt":"2026-09-06T04:53:38.522Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1571/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BackstrapLoomPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1571/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1571/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1571/v1/model.glb\" alt=\"Backstrap Loom (Primitive Crafting Workshop)\" 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/1571/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/1571/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1572","slug":"primitive-crafting-workshop-basket-form-cfb02cc3","title":"Basket Form (Primitive Crafting Workshop)","summary":"Basket Form: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Basket Form. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.55 × 0.41 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-basket-form-cfb02cc3","cdnUrl":"https://cdn.3dassets.dev/assets/1572/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-basket-form-cfb02cc3","thumbnailUrl":"https://cdn.3dassets.dev/assets/1572/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1572/v1/poster.webp","blurhash":"U16GrE^50NEL}@S#9]r=0hEh^4slIp$PsoEg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":78220,"triangles":1200,"vertices":3600,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.2752857506275177,-0.000010741869061636766,-0.2752857506275177],"max":[0.2752857506275177,0.4068479370270664,0.2752857506275177]},"sizeMeters":[0.551,0.407,0.551],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:37.444Z","updatedAt":"2026-09-06T04:53:38.079Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1572/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BasketFormPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1572/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1572/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1572/v1/model.glb\" alt=\"Basket Form (Primitive Crafting Workshop)\" 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/1572/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/1572/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1575","slug":"primitive-crafting-workshop-basketry-awl-7d8592c0","title":"Basketry Awl (Primitive Crafting Workshop)","summary":"Basketry Awl: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Basketry Awl. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.06 × 0.33 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-basketry-awl-7d8592c0","cdnUrl":"https://cdn.3dassets.dev/assets/1575/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-basketry-awl-7d8592c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/1575/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1575/v1/poster.webp","blurhash":"U57-QUxu009Z.7j]DjV@00Rj~pxuIUax%Mog","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":41292,"triangles":696,"vertices":2088,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.028990388014793367,0,-0.028990388014793367],"max":[0.028990388014793367,0.33000001311302185,0.028990388014793367]},"sizeMeters":[0.058,0.33,0.058],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:37.719Z","updatedAt":"2026-09-06T04:53:38.167Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1575/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BasketryAwlPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1575/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1575/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1575/v1/model.glb\" alt=\"Basketry Awl (Primitive Crafting Workshop)\" 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/1575/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/1575/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1579","slug":"primitive-crafting-workshop-weaving-comb-ce28220e","title":"Weaving Comb (Primitive Crafting Workshop)","summary":"Weaving Comb: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Weaving Comb. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.25 × 0.17 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-weaving-comb-ce28220e","cdnUrl":"https://cdn.3dassets.dev/assets/1579/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-weaving-comb-ce28220e","thumbnailUrl":"https://cdn.3dassets.dev/assets/1579/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1579/v1/poster.webp","blurhash":"U27mB2^O0#nl}=^Onj9^1H-8-ARlSw-S$jEO","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":77464,"triangles":1188,"vertices":3564,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.125,-0.0000016776239515070568,-0.01249732963042085],"max":[0.125,0.17000167941209085,0.01249732963042085]},"sizeMeters":[0.25,0.17,0.025],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:37.997Z","updatedAt":"2026-09-06T04:53:38.659Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1579/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WeavingCombPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1579/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1579/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1579/v1/model.glb\" alt=\"Weaving Comb (Primitive Crafting Workshop)\" 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/1579/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/1579/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1580","slug":"primitive-crafting-workshop-woven-hamper-b759ccc1","title":"Woven Hamper (Primitive Crafting Workshop)","summary":"Woven Hamper: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Woven Hamper. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.81 × 0.50 × 0.61 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-woven-hamper-b759ccc1","cdnUrl":"https://cdn.3dassets.dev/assets/1580/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-woven-hamper-b759ccc1","thumbnailUrl":"https://cdn.3dassets.dev/assets/1580/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1580/v1/poster.webp","blurhash":"U27mTw^P029u]QafK4xF00EM~B%1-os.ELI;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":156384,"triangles":2952,"vertices":8856,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.403130441904068,-0.00002035097428726429,-0.3070000112056732],"max":[0.403130441904068,0.5000203509742873,0.3070000112056732]},"sizeMeters":[0.806,0.5,0.614],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:40.169Z","updatedAt":"2026-09-06T04:53:41.580Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1580/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WovenHamperPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1580/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1580/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1580/v1/model.glb\" alt=\"Woven Hamper (Primitive Crafting Workshop)\" 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/1580/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/1580/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1581","slug":"primitive-crafting-workshop-fish-creel-150c76cd","title":"Fish Creel (Primitive Crafting Workshop)","summary":"Fish Creel: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Fish Creel. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.66 × 0.52 × 0.49 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-fish-creel-150c76cd","cdnUrl":"https://cdn.3dassets.dev/assets/1581/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-fish-creel-150c76cd","thumbnailUrl":"https://cdn.3dassets.dev/assets/1581/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1581/v1/poster.webp","blurhash":"U7AJvJSJ00IW?]tOMeVx00-:?GM}8x%M%zIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":118264,"triangles":2220,"vertices":6660,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.3317222595214844,-0.000010222769123380271,-0.24300000071525574],"max":[0.3317222595214844,0.517918956998914,0.24300000071525574]},"sizeMeters":[0.663,0.518,0.486],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:40.412Z","updatedAt":"2026-09-06T04:53:41.634Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1581/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FishCreelPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1581/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1581/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1581/v1/model.glb\" alt=\"Fish Creel (Primitive Crafting Workshop)\" 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/1581/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/1581/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1584","slug":"primitive-crafting-workshop-reed-mat-1bf4db15","title":"Reed Mat (Primitive Crafting Workshop)","summary":"Reed Mat: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Reed Mat. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.80 × 0.04 × 0.84 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-reed-mat-1bf4db15","cdnUrl":"https://cdn.3dassets.dev/assets/1584/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-reed-mat-1bf4db15","thumbnailUrl":"https://cdn.3dassets.dev/assets/1584/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1584/v1/poster.webp","blurhash":"U27c~fxZ02ob-oNFIVxv00NH}saj9b-qxtE0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":152076,"triangles":2484,"vertices":7452,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.00002471762722251747,-0.41999998688697815],"max":[0.4000000059604645,0.04272072134526922,0.41999998688697815]},"sizeMeters":[0.8,0.043,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:40.941Z","updatedAt":"2026-09-06T04:53:42.383Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1584/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReedMatPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1584/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1584/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1584/v1/model.glb\" alt=\"Reed Mat (Primitive Crafting Workshop)\" 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/1584/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/1584/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1585","slug":"primitive-crafting-workshop-reed-bundle-db6a3006","title":"Reed Bundle (Primitive Crafting Workshop)","summary":"Reed Bundle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Reed Bundle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.21 × 1.16 × 0.21 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-reed-bundle-db6a3006","cdnUrl":"https://cdn.3dassets.dev/assets/1585/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-reed-bundle-db6a3006","thumbnailUrl":"https://cdn.3dassets.dev/assets/1585/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1585/v1/poster.webp","blurhash":"U154pp=d001IRPayo#j]0eNb^*,?WqWqjZsl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":106612,"triangles":1776,"vertices":5328,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.10400338438443131,0,-0.10400338438443131],"max":[0.10400338438443131,1.159999966621399,0.10400338438443131]},"sizeMeters":[0.208,1.16,0.208],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:41.341Z","updatedAt":"2026-09-06T04:53:42.458Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1585/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReedBundlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1585/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1585/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1585/v1/model.glb\" alt=\"Reed Bundle (Primitive Crafting Workshop)\" 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/1585/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/1585/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1587","slug":"primitive-crafting-workshop-basket-lid-832b045b","title":"Basket Lid (Primitive Crafting Workshop)","summary":"Basket Lid: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Basket Lid. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.56 × 0.17 × 0.56 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-basket-lid-832b045b","cdnUrl":"https://cdn.3dassets.dev/assets/1587/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-basket-lid-832b045b","thumbnailUrl":"https://cdn.3dassets.dev/assets/1587/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1587/v1/poster.webp","blurhash":"U884GAt601R*Ndaysnj]00R*~Voe$fofNdWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":111936,"triangles":2096,"vertices":6288,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.2800000011920929,-0.000003311569620079169,-0.2800000011920929],"max":[0.2800000011920929,0.16900331166647764,0.2800000011920929]},"sizeMeters":[0.56,0.169,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:41.057Z","updatedAt":"2026-09-06T04:53:41.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1587/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BasketLidPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1587/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1587/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1587/v1/model.glb\" alt=\"Basket Lid (Primitive Crafting Workshop)\" 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/1587/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/1587/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1594","slug":"primitive-crafting-workshop-pinch-bowl-2089913f","title":"Pinch Bowl (Primitive Crafting Workshop)","summary":"Pinch Bowl: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pinch Bowl. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.24 × 0.07 × 0.24 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-pinch-bowl-2089913f","cdnUrl":"https://cdn.3dassets.dev/assets/1594/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-pinch-bowl-2089913f","thumbnailUrl":"https://cdn.3dassets.dev/assets/1594/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1594/v1/poster.webp","blurhash":"U9CFbJ%L02Rl-oWCNGt600M|~AoJ9at6xtM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":17188,"triangles":336,"vertices":1008,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.11999999731779099,-0.000004804336828596878,-0.11999999731779099],"max":[0.11999999731779099,0.07500480731706083,0.11999999731779099]},"sizeMeters":[0.24,0.075,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:41.904Z","updatedAt":"2026-09-06T04:53:43.531Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1594/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PinchBowlPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1594/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1594/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1594/v1/model.glb\" alt=\"Pinch Bowl (Primitive Crafting Workshop)\" 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/1594/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/1594/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1591","slug":"primitive-crafting-workshop-coil-built-jar-70035fbb","title":"Coil Built Jar (Primitive Crafting Workshop)","summary":"Coil Built Jar: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Coil Built Jar. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.39 × 0.37 × 0.39 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-coil-built-jar-70035fbb","cdnUrl":"https://cdn.3dassets.dev/assets/1591/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-coil-built-jar-70035fbb","thumbnailUrl":"https://cdn.3dassets.dev/assets/1591/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1591/v1/poster.webp","blurhash":"U5DbWf~B000fEKR*oNs:00E2~A%LM{nkxHja","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":127796,"triangles":2640,"vertices":7920,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.19599999487400055,0.000006202479763184332,-0.19599999487400055],"max":[0.19599999487400055,0.3699938022886084,0.19599999487400055]},"sizeMeters":[0.392,0.37,0.392],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:42.239Z","updatedAt":"2026-09-06T04:53:43.466Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1591/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoilBuiltJarPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1591/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1591/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1591/v1/model.glb\" alt=\"Coil Built Jar (Primitive Crafting Workshop)\" 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/1591/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/1591/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1593","slug":"primitive-crafting-workshop-pottery-paddle-fb969958","title":"Pottery Paddle (Primitive Crafting Workshop)","summary":"Pottery Paddle: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pottery Paddle. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.10 × 0.37 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-pottery-paddle-fb969958","cdnUrl":"https://cdn.3dassets.dev/assets/1593/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-pottery-paddle-fb969958","thumbnailUrl":"https://cdn.3dassets.dev/assets/1593/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1593/v1/poster.webp","blurhash":"U154Kl-9045m}=sn59NcBjjZ+zW;KeWorbo2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":17504,"triangles":188,"vertices":564,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.05000595175379905,0,-0.020009155810710607],"max":[0.05000595175379905,0.3700000047683716,0.020009155810710607]},"sizeMeters":[0.1,0.37,0.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:41.609Z","updatedAt":"2026-09-06T04:53:42.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1593/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PotteryPaddlePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1593/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1593/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1593/v1/model.glb\" alt=\"Pottery Paddle (Primitive Crafting Workshop)\" 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/1593/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/1593/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1597","slug":"primitive-crafting-workshop-pottery-anvil-32799438","title":"Pottery Anvil (Primitive Crafting Workshop)","summary":"Pottery Anvil: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pottery Anvil. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.16 × 0.16 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-pottery-anvil-32799438","cdnUrl":"https://cdn.3dassets.dev/assets/1597/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-pottery-anvil-32799438","thumbnailUrl":"https://cdn.3dassets.dev/assets/1597/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1597/v1/poster.webp","blurhash":"UFB:mWxu00NF9FWB%Mof00Rj_2t7~qt7D%Rk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":25556,"triangles":368,"vertices":1104,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.07999999821186066,-0.0000043969004404967316,-0.07999999821186066],"max":[0.07999999821186066,0.1599999964237213,0.07999999821186066]},"sizeMeters":[0.16,0.16,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:43.938Z","updatedAt":"2026-09-06T04:53:44.647Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1597/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PotteryAnvilPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1597/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1597/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1597/v1/model.glb\" alt=\"Pottery Anvil (Primitive Crafting Workshop)\" 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/1597/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/1597/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1598","slug":"primitive-crafting-workshop-clay-water-jug-bbdee5e7","title":"Clay Water Jug (Primitive Crafting Workshop)","summary":"Clay Water Jug: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Clay Water Jug. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.44 × 0.33 × 0.34 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-clay-water-jug-bbdee5e7","cdnUrl":"https://cdn.3dassets.dev/assets/1598/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-clay-water-jug-bbdee5e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/1598/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1598/v1/poster.webp","blurhash":"UEC~Cv~A0M9aW;WVR*WB03EM-ooyaes:s:ay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":26996,"triangles":540,"vertices":1620,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.22014668583869934,-0.000005128269163989785,-0.16999943820846003],"max":[0.22014668583869934,0.32622072327610674,0.16999943820846003]},"sizeMeters":[0.44,0.326,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:44.023Z","updatedAt":"2026-09-06T04:53:44.697Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1598/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayWaterJugPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1598/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1598/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1598/v1/model.glb\" alt=\"Clay Water Jug (Primitive Crafting Workshop)\" 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/1598/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/1598/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1599","slug":"primitive-crafting-workshop-pottery-wheel-11c099c8","title":"Pottery Wheel (Primitive Crafting Workshop)","summary":"Pottery Wheel: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pottery Wheel. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.80 × 0.78 × 0.80 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-pottery-wheel-11c099c8","cdnUrl":"https://cdn.3dassets.dev/assets/1599/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-pottery-wheel-11c099c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/1599/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1599/v1/poster.webp","blurhash":"UHA,LIt701V@~qof9FWBOsbHRiWBD%WBx[j]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":65704,"triangles":996,"vertices":2988,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.4000000059604645,7.573748128097968e-7,-0.4000000059604645],"max":[0.4000000059604645,0.7799957194860527,0.4000000059604645]},"sizeMeters":[0.8,0.78,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:44.097Z","updatedAt":"2026-09-06T04:53:44.745Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1599/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PotteryWheelPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1599/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1599/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1599/v1/model.glb\" alt=\"Pottery Wheel (Primitive Crafting Workshop)\" 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/1599/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/1599/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1603","slug":"primitive-crafting-workshop-clay-oil-lamp-f1b399cf","title":"Clay Oil Lamp (Primitive Crafting Workshop)","summary":"Clay Oil Lamp: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Clay Oil Lamp. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.19 × 0.06 × 0.14 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-clay-oil-lamp-f1b399cf","cdnUrl":"https://cdn.3dassets.dev/assets/1603/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-clay-oil-lamp-f1b399cf","thumbnailUrl":"https://cdn.3dassets.dev/assets/1603/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1603/v1/poster.webp","blurhash":"U9Al,=^i029b$*j[Naj?019v~A%1ELjYxZR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":28304,"triangles":552,"vertices":1656,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.09563012421131134,-7.028809452733209e-7,-0.0699965971013468],"max":[0.09563012421131134,0.05504196054582488,0.0699965971013468]},"sizeMeters":[0.191,0.055,0.14],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:44.891Z","updatedAt":"2026-09-06T04:53:45.450Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1603/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayOilLampPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1603/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1603/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1603/v1/model.glb\" alt=\"Clay Oil Lamp (Primitive Crafting Workshop)\" 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/1603/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/1603/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1604","slug":"primitive-crafting-workshop-clay-crucible-bc1620f3","title":"Clay Crucible (Primitive Crafting Workshop)","summary":"Clay Crucible: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Clay Crucible. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 0.21 × 0.14 × 0.19 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-clay-crucible-bc1620f3","cdnUrl":"https://cdn.3dassets.dev/assets/1604/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-clay-crucible-bc1620f3","thumbnailUrl":"https://cdn.3dassets.dev/assets/1604/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1604/v1/poster.webp","blurhash":"U8DR+w~A01I:~AR*EMxt029u-ot6RQxGWXIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":22384,"triangles":444,"vertices":1332,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.10499999672174454,-0.000004270107666376477,-0.09500213332955597],"max":[0.10499999672174454,0.14000427070371282,0.09500213332955597]},"sizeMeters":[0.21,0.14,0.19],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:45.304Z","updatedAt":"2026-09-06T04:53:45.556Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1604/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayCruciblePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1604/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1604/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1604/v1/model.glb\" alt=\"Clay Crucible (Primitive Crafting Workshop)\" 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/1604/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/1604/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1606","slug":"primitive-crafting-workshop-pit-kiln-73956386","title":"Pit Kiln (Primitive Crafting Workshop)","summary":"Pit Kiln: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Pit Kiln. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 1.47 × 0.23 × 1.48 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-pit-kiln-73956386","cdnUrl":"https://cdn.3dassets.dev/assets/1606/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-pit-kiln-73956386","thumbnailUrl":"https://cdn.3dassets.dev/assets/1606/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1606/v1/poster.webp","blurhash":"U79seqxt02V]xajbWUba00RR~BkAELbYs:i|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":452604,"triangles":9392,"vertices":28176,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7369483131370186,-0.000021716900344706525,-0.7407462000846863],"max":[0.7369483131370186,0.23002172107266983,0.7407462000846863]},"sizeMeters":[1.474,0.23,1.481],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:45.396Z","updatedAt":"2026-09-06T04:53:45.702Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1606/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PitKilnPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1606/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1606/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1606/v1/model.glb\" alt=\"Pit Kiln (Primitive Crafting Workshop)\" 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/1606/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/1606/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1610","slug":"primitive-crafting-workshop-clay-working-table-2378fc5a","title":"Clay Working Table (Primitive Crafting Workshop)","summary":"Clay Working Table: original weathered survival equipment with explicit construction and metre-scale dimensions.","description":"Clay Working Table. Stone, bone and fibre construction is original and manually assembled; no crafting simulation. Dimensions 1.40 × 0.99 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Weathered survival palette: timber, oxidised metal, canvas and natural fibres. Static geometry; no rig, animation, collision or navigation data. Separate named nodes have local pivots; mounting and fitting require application logic.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-clay-working-table-2378fc5a","cdnUrl":"https://cdn.3dassets.dev/assets/1610/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-clay-working-table-2378fc5a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1610/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1610/v1/poster.webp","blurhash":"U88g4|t60Ln#~VxZ9ZNG9usot7NI0Le.?aX8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":79160,"triangles":1280,"vertices":3840,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,0.000040075766009617375,-0.35005340143020897],"max":[0.699999988079071,0.9949911498159755,0.35005340143020897]},"sizeMeters":[1.4,0.995,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:46.475Z","updatedAt":"2026-09-06T04:53:46.606Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1610/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayWorkingTablePrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1610/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1610/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1610/v1/model.glb\" alt=\"Clay Working Table (Primitive Crafting Workshop)\" 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/1610/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/1610/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1611","slug":"primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","title":"Fibre and Hide Workshop (Primitive Crafting Workshop)","summary":"Composed example for Primitive Crafting Workshop.","description":"Composed fibre and hide workshop with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1611/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-fibre-and-hi-adad25fe-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1611/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1611/v1/poster.webp","blurhash":"U26aVDM#019tx[t5IVIp00-o~BruMeRl.7%K","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":804700,"triangles":15632,"vertices":46896,"meshes":18,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-2.6040033843844315,-0.00002035097428726429,-1.2999864200282278],"max":[2.8794775345969628,1.8700000047683716,1.570330262184143]},"sizeMeters":[5.483,1.87,2.87],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:46.347Z","updatedAt":"2026-09-06T04:53:46.655Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1611/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FibreAndHideWorkshopPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1611/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1611/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1611/v1/model.glb\" alt=\"Fibre and Hide Workshop (Primitive Crafting Workshop)\" 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/1611/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/1611/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1616","slug":"primitive-crafting-workshop-clay-and-stone-workshop-a78dddcf","title":"Clay and Stone Workshop (Primitive Crafting Workshop)","summary":"Composed example for Primitive Crafting Workshop.","description":"Composed clay and stone workshop with clear access paths and use-specific object placement. Static demonstration only.","status":"published","url":"https://3dassets.dev/assets/primitive-crafting-workshop-clay-and-stone-workshop-a78dddcf","cdnUrl":"https://cdn.3dassets.dev/assets/1616/v1/model.glb","downloadUrl":"https://3dassets.dev/download/primitive-crafting-workshop-clay-and-stone-workshop-a78dddcf","thumbnailUrl":"https://cdn.3dassets.dev/assets/1616/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1616/v1/poster.webp","blurhash":"U47wWrV?00%3S5%0xDE301tR~BE1-lNdE4xB","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"post-apocalyptic","title":"Post-apocalyptic"},{"slug":"low-poly","title":"Low Poly"},{"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":829208,"triangles":16252,"vertices":48756,"meshes":13,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.699999988079071,-0.000021716900344706525,-1.4000000059604645],"max":[3.2369483131370185,1.2262207232761066,1.7407462000846863]},"sizeMeters":[4.937,1.226,3.141],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:53:48.134Z","updatedAt":"2026-09-06T04:53:48.607Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1616/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayAndStoneWorkshopPrimitiveCraftingWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1616/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1616/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1616/v1/model.glb\" alt=\"Clay and Stone Workshop (Primitive Crafting Workshop)\" 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/1616/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/1616/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}