{"data":{"id":23,"slug":"classic-chess-essentials","title":"Classic Chess Essentials","summary":"Ten original tabletop chess designs and a full starting position.","description":"Warm ivory and ebony forms, walnut inlay board, dual analog clock and practical storage accessories.","url":"https://3dassets.dev/packs/classic-chess-essentials","coverUrl":"https://cdn.3dassets.dev/assets/1274/v1/poster.webp","assetCount":11,"aiGenerated":true,"aiGeneratedAssetCount":11,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":866216,"totalTriangles":26196,"starterScene":{"id":"1274","slug":"classic-chess-essentials-starting-positi-c18f1729-starter-scene","title":"Classic chess starting position (Classic Chess Essentials)","summary":"Composed example for Classic Chess Essentials.","description":"32 pieces on 50 mm squares. White at +Z, h1 light, queens on matching colour. Six canonical sculpts shared between two material sets.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-starting-positi-c18f1729-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1274/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-starting-positi-c18f1729-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1274/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1274/v1/poster.webp","blurhash":"U49QN%~W00Md9tEM%L%2004o~qx^~C^iD%9Z","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":430228,"triangles":16340,"vertices":49020,"meshes":190,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.23000000417232513,-0.000012726769377439592,-0.31500320388462977],"max":[0.23000000417232513,0.1179999994635582,0.23000000417232513]},"sizeMeters":[0.46,0.118,0.545],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:29.599Z","updatedAt":"2026-09-06T04:20:26.297Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1274/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClassicChessStartingPositionClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1274/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1274/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1274/v1/model.glb\" alt=\"Classic chess starting position (Classic Chess Essentials)\" 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/1274/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/1274/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"1263","slug":"classic-chess-essentials-pawn-6b9faad7","title":"Turned chess pawn (Classic Chess Essentials)","summary":"46 mm pawn with rounded head, slender stem and weighted ring base.","description":"46 mm pawn with rounded head, slender stem and weighted ring base.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-pawn-6b9faad7","cdnUrl":"https://cdn.3dassets.dev/assets/1263/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-pawn-6b9faad7","thumbnailUrl":"https://cdn.3dassets.dev/assets/1263/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1263/v1/poster.webp","blurhash":"U8DvWT-;004n9FWB%MkC00Rk~pxt?aofM{af","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57608,"triangles":1152,"vertices":3456,"meshes":3,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.014000838856141255,0,-0.014000838856141255],"max":[0.014000838856141255,0.04600000008940697,0.014000838856141255]},"sizeMeters":[0.028,0.046,0.028],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:26.219Z","updatedAt":"2026-09-06T04:20:26.115Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1263/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TurnedChessPawnClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1263/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1263/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1263/v1/model.glb\" alt=\"Turned chess pawn (Classic Chess Essentials)\" 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/1263/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/1263/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1265","slug":"classic-chess-essentials-rook-a9b94db0","title":"Battlement chess rook (Classic Chess Essentials)","summary":"58 mm rook with six solid battlements and an open crown.","description":"58 mm rook with six solid battlements and an open crown.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-rook-a9b94db0","cdnUrl":"https://cdn.3dassets.dev/assets/1265/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-rook-a9b94db0","thumbnailUrl":"https://cdn.3dassets.dev/assets/1265/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1265/v1/poster.webp","blurhash":"U5E.@H~q0000_3xb9GM{E1j=%eoh?cV@9YkD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58228,"triangles":1128,"vertices":3384,"meshes":10,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.017000000923871994,5.481827431239733e-7,-0.017000000923871994],"max":[0.017000000923871994,0.057999998331069946,0.017000000923871994]},"sizeMeters":[0.034,0.058,0.034],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:27.054Z","updatedAt":"2026-09-06T04:20:26.138Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1265/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BattlementChessRookClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1265/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1265/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1265/v1/model.glb\" alt=\"Battlement chess rook (Classic Chess Essentials)\" 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/1265/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/1265/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1266","slug":"classic-chess-essentials-knight-3cc39989","title":"Sculpted chess knight (Classic Chess Essentials)","summary":"72 mm knight with forward muzzle, swept neck, mane, paired ears and two eyes. Faces +Z.","description":"72 mm knight with forward muzzle, swept neck, mane, paired ears and two eyes. Faces +Z.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-knight-3cc39989","cdnUrl":"https://cdn.3dassets.dev/assets/1266/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-knight-3cc39989","thumbnailUrl":"https://cdn.3dassets.dev/assets/1266/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1266/v1/poster.webp","blurhash":"U7D9q]?b00009Gof-:Rj00Rj~pxuD%IVxt-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":53028,"triangles":1092,"vertices":3276,"meshes":8,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.017000000923871994,2.2817664565785711e-7,-0.017000000923871994],"max":[0.017000000923871994,0.07199999690055847,0.018999527803249483]},"sizeMeters":[0.034,0.072,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:27.429Z","updatedAt":"2026-09-06T04:20:26.157Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1266/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SculptedChessKnightClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1266/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1266/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1266/v1/model.glb\" alt=\"Sculpted chess knight (Classic Chess Essentials)\" 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/1266/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/1266/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1267","slug":"classic-chess-essentials-bishop-33e6cbc7","title":"Split mitre chess bishop (Classic Chess Essentials)","summary":"77 mm bishop with a physically separated diagonal mitre notch and broad collar.","description":"77 mm bishop with a physically separated diagonal mitre notch and broad collar.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-bishop-33e6cbc7","cdnUrl":"https://cdn.3dassets.dev/assets/1267/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-bishop-33e6cbc7","thumbnailUrl":"https://cdn.3dassets.dev/assets/1267/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1267/v1/poster.webp","blurhash":"U6CP-I-;00008{WB%MoL00R*~pxtS0axs:oy","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51680,"triangles":1092,"vertices":3276,"meshes":6,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.017000854289059755,0,-0.017000854289059755],"max":[0.017000854289059755,0.07699999958276749,0.017000854289059755]},"sizeMeters":[0.034,0.077,0.034],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:27.378Z","updatedAt":"2026-09-06T04:20:26.161Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1267/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SplitMitreChessBishopClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1267/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1267/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1267/v1/model.glb\" alt=\"Split mitre chess bishop (Classic Chess Essentials)\" 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/1267/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/1267/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1268","slug":"classic-chess-essentials-queen-8a53338c","title":"Coronet chess queen (Classic Chess Essentials)","summary":"85 mm queen with eight pearl crown points and central finial.","description":"85 mm queen with eight pearl crown points and central finial.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-queen-8a53338c","cdnUrl":"https://cdn.3dassets.dev/assets/1268/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-queen-8a53338c","thumbnailUrl":"https://cdn.3dassets.dev/assets/1268/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1268/v1/poster.webp","blurhash":"U3C?lq~W0000.5t6IVM|IURk-qxuD+M}t3xt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":77548,"triangles":1960,"vertices":5880,"meshes":14,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01800094586123017,0,-0.01800094586123017],"max":[0.01800094586123017,0.08500000089406967,0.01800094586123017]},"sizeMeters":[0.036,0.085,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:27.954Z","updatedAt":"2026-09-06T04:20:26.178Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1268/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoronetChessQueenClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1268/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1268/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1268/v1/model.glb\" alt=\"Coronet chess queen (Classic Chess Essentials)\" 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/1268/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/1268/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1269","slug":"classic-chess-essentials-king-e66ed8c1","title":"Cross finial chess king (Classic Chess Essentials)","summary":"99 mm king with cross finial and a distinctly tall collar.","description":"99 mm king with cross finial and a distinctly tall collar.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-king-e66ed8c1","cdnUrl":"https://cdn.3dassets.dev/assets/1269/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-king-e66ed8c1","thumbnailUrl":"https://cdn.3dassets.dev/assets/1269/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1269/v1/poster.webp","blurhash":"U4Bz5+?b000000WA_2kD01Rk~pxtIAbH%MjF","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64376,"triangles":1304,"vertices":3912,"meshes":7,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.01900164811468999,0,-0.01900164811468999],"max":[0.01900164811468999,0.0989999994635582,0.01900164811468999]},"sizeMeters":[0.038,0.099,0.038],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:27.633Z","updatedAt":"2026-09-06T04:20:26.212Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1269/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CrossFinialChessKingClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1269/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1269/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1269/v1/model.glb\" alt=\"Cross finial chess king (Classic Chess Essentials)\" 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/1269/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/1269/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1270","slug":"classic-chess-essentials-board-554eb147","title":"Walnut tournament chessboard (Classic Chess Essentials)","summary":"460 mm walnut board with 50 mm squares, contrasting inlay and a 19 mm playing surface.","description":"460 mm walnut board with 50 mm squares, contrasting inlay and a 19 mm playing surface.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-board-554eb147","cdnUrl":"https://cdn.3dassets.dev/assets/1270/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-board-554eb147","thumbnailUrl":"https://cdn.3dassets.dev/assets/1270/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1270/v1/poster.webp","blurhash":"U5AJf--V00NG?HW;M{so00I:_NkC0KsAxvNb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22348,"triangles":828,"vertices":2484,"meshes":69,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.23000000417232513,-0.000012726769377439592,-0.23000000417232513],"max":[0.23000000417232513,0.019000502907250864,0.23000000417232513]},"sizeMeters":[0.46,0.019,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:28.534Z","updatedAt":"2026-09-06T04:20:26.216Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1270/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WalnutTournamentChessboardClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1270/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1270/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1270/v1/model.glb\" alt=\"Walnut tournament chessboard (Classic Chess Essentials)\" 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/1270/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/1270/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1271","slug":"classic-chess-essentials-clock-84b8a32a","title":"Dual analog chess clock (Classic Chess Essentials)","summary":"160 mm dual clock with readable hour ticks, static hands and two named button pivots. No timing logic.","description":"160 mm dual clock with readable hour ticks, static hands and two named button pivots. No timing logic.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-clock-84b8a32a","cdnUrl":"https://cdn.3dassets.dev/assets/1271/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-clock-84b8a32a","thumbnailUrl":"https://cdn.3dassets.dev/assets/1271/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1271/v1/poster.webp","blurhash":"U6D+VX~p00wc~m~AxbD*00IT^*WD9hN?I9S$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":37408,"triangles":1000,"vertices":3000,"meshes":36,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999999821186066,0.000002383051389130697,-0.02500320388462981],"max":[0.07999999821186066,0.07899971024332356,0.0329997143922902]},"sizeMeters":[0.16,0.079,0.058],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:28.799Z","updatedAt":"2026-09-06T04:20:26.243Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1271/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DualAnalogChessClockClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1271/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1271/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1271/v1/model.glb\" alt=\"Dual analog chess clock (Classic Chess Essentials)\" 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/1271/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/1271/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1272","slug":"classic-chess-essentials-piece-case-7f8cc040","title":"Divided chess storage case (Classic Chess Essentials)","summary":"240 mm open walnut case with four padded compartments; sized for storing pieces laid down.","description":"240 mm open walnut case with four padded compartments; sized for storing pieces laid down.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-piece-case-7f8cc040","cdnUrl":"https://cdn.3dassets.dev/assets/1272/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-piece-case-7f8cc040","thumbnailUrl":"https://cdn.3dassets.dev/assets/1272/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1272/v1/poster.webp","blurhash":"U29ZQ0^j02Rq}]-nXNRk00NG%fJ40KD,EhBQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":6100,"triangles":96,"vertices":288,"meshes":8,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.11999999731779099,-0.0000068970432890252086,-0.07500689979069063],"max":[0.11999999731779099,0.03799404812493733,0.07500689979069063]},"sizeMeters":[0.24,0.038,0.15],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:28.731Z","updatedAt":"2026-09-06T04:20:26.245Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1272/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DividedChessStorageCaseClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1272/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1272/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1272/v1/model.glb\" alt=\"Divided chess storage case (Classic Chess Essentials)\" 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/1272/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/1272/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1273","slug":"classic-chess-essentials-score-pad-759aaf44","title":"Chess notation score pad (Classic Chess Essentials)","summary":"90 by 140 mm ruled notation pad with two blank move columns; no font textures.","description":"90 by 140 mm ruled notation pad with two blank move columns; no font textures.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-score-pad-759aaf44","cdnUrl":"https://cdn.3dassets.dev/assets/1273/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-score-pad-759aaf44","thumbnailUrl":"https://cdn.3dassets.dev/assets/1273/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1273/v1/poster.webp","blurhash":"UBC~|}xu00kC%gIoM{%L00M{~qkC9F-;%MD*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":7664,"triangles":204,"vertices":612,"meshes":17,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.04500320463509498,-0.000004165754941220959,-0.07000000029802322],"max":[0.04500320463509498,0.0021023697733996076,0.07000000029802322]},"sizeMeters":[0.09,0.002,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:19:28.668Z","updatedAt":"2026-09-06T04:20:26.276Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1273/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChessNotationScorePadClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1273/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1273/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1273/v1/model.glb\" alt=\"Chess notation score pad (Classic Chess Essentials)\" 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/1273/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/1273/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"1274","slug":"classic-chess-essentials-starting-positi-c18f1729-starter-scene","title":"Classic chess starting position (Classic Chess Essentials)","summary":"Composed example for Classic Chess Essentials.","description":"32 pieces on 50 mm squares. White at +Z, h1 light, queens on matching colour. Six canonical sculpts shared between two material sets.","status":"published","url":"https://3dassets.dev/assets/classic-chess-essentials-starting-positi-c18f1729-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/1274/v1/model.glb","downloadUrl":"https://3dassets.dev/download/classic-chess-essentials-starting-positi-c18f1729-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/1274/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/1274/v1/poster.webp","blurhash":"U49QN%~W00Md9tEM%L%2004o~qx^~C^iD%9Z","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"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":430228,"triangles":16340,"vertices":49020,"meshes":190,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.23000000417232513,-0.000012726769377439592,-0.31500320388462977],"max":[0.23000000417232513,0.1179999994635582,0.23000000417232513]},"sizeMeters":[0.46,0.118,0.545],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T04:19:29.599Z","updatedAt":"2026-09-06T04:20:26.297Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/1274/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClassicChessStartingPositionClassicChessEssentials(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/1274/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/1274/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/1274/v1/model.glb\" alt=\"Classic chess starting position (Classic Chess Essentials)\" 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/1274/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/1274/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}