{"data":{"id":338,"slug":"korean-hanok-village-and-street","title":"Korean Hanok Village and Street","summary":"A Korean hanok village: timber framed houses on stone plinths with raised maru floors and tiled upturned eaves, papered sliding doors, a gate house, clay walls, an ondol firebox and kitchen hearth, a jangdokdae of fermentation jars, a well and a market street.","description":"Everything a developer needs to build a Korean hanok village and the street through it, for a historical, folk tale or village life setting. The architecture is modular on a 3 m grid: a dressed stone plinth base, a raised maru floor of joists and boards, a post and beam frame bay, a walled room bay with a four leaf papered front, hipped and gabled tile roof cassettes closed by a ridge tile run, an eave run of round end tiles, an exposed rafter set, beaten earth courtyard ground, a stone street, a stepped lane, an underfloor ondol flue run, and boundary wall straights, corners and end piers of stone and clay under a tiled capping. The set pieces are a three bay main house with the open maru floor between two papered rooms under a hip and gable roof, a smaller side wing, a gate house whose two heavy timber leaves swing, a thatched outbuilding, a free standing sliding lattice door set in a plain and a diamond lattice, a fixed and a lifting hanji window, a chimney stack, an ondol firebox and a kitchen hearth with two iron cauldrons. The yard and the rooms are furnished: a jangdokdae terrace with fermentation jars in three sizes, a chest of drawers, a rice chest, a low table, floor cushions, a folding screen, a charcoal brazier, a hanging lantern, a standing lamp, a bench, a hand loom, a mortar and pestle stand, a water trough, a stone basin, a well head, buckets, a firewood stack, straw sacks of grain, a stack of roof tiles, a persimmon drying rack, a market stall with an awning, produce baskets, a blank hanging sign board, a stone pagoda ornament, a persimmon tree, a pine, bamboo, stepping stones, a pond edge run and a pond water module. Movement is rigid node transforms only: the sliding papered leaves, the swinging gate, the lifting window, the firebox door, the cauldron lid, the jar lids, the chest lid, the drawers, the screen panels, the bobbing lantern, the turning windlass and the turning cloth beam of the loom. What does not move is deliberate and is said in each description: hanji paper, thatch, straw rope, hanging cloth and the strings of drying persimmons are flexible material, which needs a joint per element or a shader, and one rigid node transform reaches none of it, so they ship in the single pose they hang in; fire, smoke and water are effects and fluid rather than geometry, so the firebox and the hearth are modelled cold and every water surface is a flat pane. There are no people or animals in the pack and nothing here is skinned. Nothing depicts a real village, house, palace, temple, dynasty landmark or institution, no real building is reproduced, and every board, banner and painted field is a blank shape inside a plain border: there is no hangul, no hanja and no script of any kind anywhere in the pack. All original CC0 geometry, no brands and no logos.","url":"https://3dassets.dev/packs/korean-hanok-village-and-street","coverUrl":"https://cdn.3dassets.dev/assets/38093/v1/poster.webp","assetCount":62,"aiGenerated":true,"aiGeneratedAssetCount":62,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":5860956,"totalTriangles":210020,"starterScene":{"id":"38093","slug":"korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","title":"Walled hanok plot and village street (Korean Hanok Village and Street)","summary":"A whole village plot laid from 3 m modules on a 30 m square of beaten earth, with the street running past its gate. The tile roofed gate house stands on the south axis of a clay and stone boundary wall, with a paper lantern hanging each side of it and a stepping stone path...","description":"A whole village plot laid from 3 m modules on a 30 m square of beaten earth, with the street running past its gate. The tile roofed gate house stands on the south axis of a clay and stone boundary wall, with a paper lantern hanging each side of it and a stepping stone path leading in. The main house sits at the head of the yard on its stone plinth, three bays of timber frame with the open maru floor in the middle and a papered room each side, and the side wing closes the west. The east range is deliberately open topped: plinth, raised maru floor and walled room modules with the rafter and eave runs carried round both sides at roof height, so the roof line reads while the maru, the chest, the low table, the cushions, the folding screen, the brazier, the rice chest, the lamp and the loom inside stay visible and walkable. A walk through the scene has no vertical movement, so a roofed interior would be neither reachable nor photographable, which is why the roof cassettes are proved instead on the two bay store in the south west corner, where two frames on two plinths carry two hipped cassettes closed by ridge runs and a stepped lane climbs to the plinth. The kitchen hearth with its two cauldrons, the ondol firebox, its underfloor flue run and the chimney line the north east of the yard with the firewood beside them, the jangdokdae terrace carries nine fermentation jars in three sizes, and the yard holds the well, the water trough, the mortar and pestle, the stone basin, the persimmon drying rack, a persimmon tree, a pine, bamboo and a stone pagoda ornament, with a lotus pond of four water modules inside its coping in the south. Outside the wall the street carries a market shed of two gabled cassettes over the trestle stall, the produce baskets, the straw sacks, a bench, a stack of roof tiles and a hanging sign board whose faces are blank. Every board and painted field in the scene is an abstract shape and carries no characters of any script.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/38093/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/38093/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38093/v1/poster.webp","blurhash":"U6B:mUx^00WAE1Rjn,t800Vr~WRk?ZxuoyM{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2437040,"triangles":89850,"vertices":115804,"meshes":226,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-15,-0.30001953363420397,-15],"max":[15,5.838151920558543,18.414999961853027]},"sizeMeters":[30,6.138,33.415],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-12T13:57:36.665Z","updatedAt":"2026-09-13T16:04:08.665Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38093/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WalledHanokPlotAndVillageStreetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38093/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38093/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38093/v1/model.glb\" alt=\"Walled hanok plot and village street (Korean Hanok Village and Street)\" 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/38093/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/38093/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"38035","slug":"korean-hanok-village-and-street-hanok-main-house-58d31dd2","title":"Hanok Main House (Korean Hanok Village and Street)","summary":"A three bay timber framed hanok on a stone plinth: an open maru floor in the middle, a papered room each side and a hip and gable tiled roof on exposed rafters.","description":"A three bay timber framed hanok on a stone plinth: an open maru floor in the middle, a papered room each side and a hip and gable tiled roof on exposed rafters. Overall 11.20 by 5.72 by 7.96 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Plinth 9.6 m by 5.4 m, maru deck at 0.64 m, roof 11.2 m by 7.8 m with the ridge at 5.72 m. The two inner leaves of each room front slide behind the outer pair. Origin on the footprint centre, the yard side toward +Z. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanok-main-house-58d31dd2","cdnUrl":"https://cdn.3dassets.dev/assets/38035/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanok-main-house-58d31dd2","thumbnailUrl":"https://cdn.3dassets.dev/assets/38035/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38035/v1/poster.webp","blurhash":"U4Csga?c00D%0M-q?ZIU00E1~qxt=oE0E5WE","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":420740,"triangles":17924,"vertices":19807,"meshes":14,"materials":8,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-5.599999904632568,0.00014684821090515943,-3.8996794892393547],"max":[5.599999904632568,5.718151920558543,4.063743910634653]},"sizeMeters":[11.2,5.718,7.963],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:56.337Z","updatedAt":"2026-09-12T13:56:56.428Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38035/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HanokMainHouseKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38035/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38035/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38035/v1/model.glb\" alt=\"Hanok Main House (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38035/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38035/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38034","slug":"korean-hanok-village-and-street-hanok-side-wing-13e49593","title":"Hanok Side Wing (Korean Hanok Village and Street)","summary":"A smaller two bay hanok wing on a low plinth with a papered sliding front, a lattice window and a plain gabled tiled roof, for the side of a courtyard.","description":"A smaller two bay hanok wing on a low plinth with a papered sliding front, a lattice window and a plain gabled tiled roof, for the side of a courtyard. Overall 7.90 by 4.99 by 5.80 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Plinth 6.6 m by 4.2 m, deck at 0.58 m, roof 7.9 m by 5.8 m with the ridge at 4.99 m. Origin on the footprint centre, the yard side toward +Z. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanok-side-wing-13e49593","cdnUrl":"https://cdn.3dassets.dev/assets/38034/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanok-side-wing-13e49593","thumbnailUrl":"https://cdn.3dassets.dev/assets/38034/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38034/v1/poster.webp","blurhash":"U8DvZh_N009GES%N%2M{00My-;s.#$R%NLM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":232312,"triangles":10500,"vertices":10754,"meshes":13,"materials":8,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-3.950000047683716,-0.000024403215930834943,-2.900146523855551],"max":[3.950000047683716,4.989823055783215,2.900146523855551]},"sizeMeters":[7.9,4.99,5.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:54.458Z","updatedAt":"2026-09-12T13:56:54.589Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38034/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HanokSideWingKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38034/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38034/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38034/v1/model.glb\" alt=\"Hanok Side Wing (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38034/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38034/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38032","slug":"korean-hanok-village-and-street-village-gate-house-94dd896b","title":"Village Gate House (Korean Hanok Village and Street)","summary":"A raised tiled gate house with two heavy timber leaves on iron straps, a stone threshold and clay flanking walls, sized to stand in a village wall run.","description":"A raised tiled gate house with two heavy timber leaves on iron straps, a stone threshold and clay flanking walls, sized to stand in a village wall run. Overall 7.30 by 5.67 by 3.83 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Opening 2.66 m wide by 3.0 m high, overall 6 m across the flanking walls, ridge at 5.67 m. Its ports sit on the 3 m grid so it stands in a wall run. Both leaves swing away from the street. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-village-gate-house-94dd896b","cdnUrl":"https://cdn.3dassets.dev/assets/38032/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-village-gate-house-94dd896b","thumbnailUrl":"https://cdn.3dassets.dev/assets/38032/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38032/v1/poster.webp","blurhash":"U9C?fg.800Rj?w?bxYD*00t7?as+Dgs:NMMx","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":149292,"triangles":6400,"vertices":6634,"meshes":11,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-3.6500000953674316,-0.00016570971819920843,-1.9148381493382411],"max":[3.6500000953674316,5.670094770948186,1.9148381493382411]},"sizeMeters":[7.3,5.67,3.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:54.409Z","updatedAt":"2026-09-12T13:56:54.530Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38032/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function VillageGateHouseKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38032/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38032/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38032/v1/model.glb\" alt=\"Village Gate House (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38032/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38032/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38033","slug":"korean-hanok-village-and-street-stone-plinth-base-modu-fd550e95","title":"Stone Plinth Base Module (Korean Hanok Village and Street)","summary":"A 3 m square dressed stone plinth course in three steps, the raised base a hanok floor is laid on. Tiles on a 3 m grid.","description":"A 3 m square dressed stone plinth course in three steps, the raised base a hanok floor is laid on. Tiles on a 3 m grid. Overall 3.00 by 0.50 by 3.00 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Top at 0.5 m. Ports on all four grid lines at 0.25 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stone-plinth-base-modu-fd550e95","cdnUrl":"https://cdn.3dassets.dev/assets/38033/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stone-plinth-base-modu-fd550e95","thumbnailUrl":"https://cdn.3dassets.dev/assets/38033/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38033/v1/poster.webp","blurhash":"U5ECtT_300NF~qWBE1oy009G~qRj00xbxuM{","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":7604,"triangles":324,"vertices":278,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.000053407242571357205,-1.5],"max":[1.5,0.49994659245940537,1.5]},"sizeMeters":[3,0.5,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:54.439Z","updatedAt":"2026-09-12T13:56:54.567Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38033/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StonePlinthBaseModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38033/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38033/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38033/v1/model.glb\" alt=\"Stone Plinth Base Module (Korean Hanok Village and Street)\" 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/38033/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/38033/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38038","slug":"korean-hanok-village-and-street-hanok-maru-floor-modul-1be3f4e4","title":"Hanok Maru Floor Module (Korean Hanok Village and Street)","summary":"A 3 m square of raised maru floor: three joists carrying twelve hardwood boards with an open gap between each. Sits on the plinth module.","description":"A 3 m square of raised maru floor: three joists carrying twelve hardwood boards with an open gap between each. Sits on the plinth module. Overall 3.00 by 0.14 by 2.99 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Overall 0.14 m thick. Place at y = 0.5 on a plinth module for a deck at 0.64 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanok-maru-floor-modul-1be3f4e4","cdnUrl":"https://cdn.3dassets.dev/assets/38038/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanok-maru-floor-modul-1be3f4e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/38038/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38038/v1/poster.webp","blurhash":"U8CPhR%K00W.?GjsM|j?00M|~UV[0LflxYWD","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":9772,"triangles":180,"vertices":420,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00001068222337465008,-1.4939573351237525],"max":[1.5,0.13995910624038344,1.4939573351237525]},"sizeMeters":[3,0.14,2.988],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:58.177Z","updatedAt":"2026-09-12T13:56:58.356Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38038/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HanokMaruFloorModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38038/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38038/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38038/v1/model.glb\" alt=\"Hanok Maru Floor Module (Korean Hanok Village and Street)\" 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/38038/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/38038/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38037","slug":"korean-hanok-village-and-street-hanok-post-and-beam-fr-919433bc","title":"Hanok Post And Beam Frame (Korean Hanok Village and Street)","summary":"One bay of hanok frame: two round timber posts on stone footings under a tie beam and a lintel, with a bracket over each post head.","description":"One bay of hanok frame: two round timber posts on stone footings under a tie beam and a lintel, with a bracket over each post head. Overall 3.00 by 3.06 by 0.80 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m by 0.94 m over the brackets, posts 2.1 m apart, beam soffit at 2.4 m, overall 3.06 m high. Ports on the bay lines at 1.2 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanok-post-and-beam-fr-919433bc","cdnUrl":"https://cdn.3dassets.dev/assets/38037/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanok-post-and-beam-fr-919433bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/38037/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38037/v1/poster.webp","blurhash":"U59j7R-T00NH};%1EjE20gs--.WX9v$*=_Io","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":21220,"triangles":712,"vertices":932,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00004151781250276432,-0.3995941038239692],"max":[1.5,3.05658244706535,0.3995941038239692]},"sizeMeters":[3,3.057,0.799],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:56.272Z","updatedAt":"2026-09-12T13:56:56.382Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38037/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HanokPostAndBeamFrameKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38037/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38037/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38037/v1/model.glb\" alt=\"Hanok Post And Beam Frame (Korean Hanok Village and Street)\" 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/38037/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/38037/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38036","slug":"korean-hanok-village-and-street-hanok-room-module-bc2bd008","title":"Hanok Room Module (Korean Hanok Village and Street)","summary":"One walled bay of a hanok: clay walls rendered white inside, corner posts, a header beam and a four leaf papered front whose two inner leaves slide.","description":"One walled bay of a hanok: clay walls rendered white inside, corner posts, a header beam and a four leaf papered front whose two inner leaves slide. Overall 3.00 by 2.64 by 3.01 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m square, 2.64 m to the top of the header. The side walls are half thickness so two modules butt into one wall. Place on a maru floor module. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanok-room-module-bc2bd008","cdnUrl":"https://cdn.3dassets.dev/assets/38036/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanok-room-module-bc2bd008","thumbnailUrl":"https://cdn.3dassets.dev/assets/38036/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38036/v1/poster.webp","blurhash":"U8HUzk^*00V[.TD%9E%f00IWD,V_8^-;-=D%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":72504,"triangles":3180,"vertices":3770,"meshes":12,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.5,-0.00006404118618386079,-1.5000924448576687],"max":[1.5,2.6400018835626557,1.5099679725186943]},"sizeMeters":[3,2.64,3.01],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:57.324Z","updatedAt":"2026-09-12T13:56:57.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38036/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HanokRoomModuleKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38036/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38036/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38036/v1/model.glb\" alt=\"Hanok Room Module (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38036/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38036/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38039","slug":"korean-hanok-village-and-street-hipped-tile-roof-modul-fb2a5427","title":"Hipped Tile Roof Module (Korean Hanok Village and Street)","summary":"A 3 m bay of hipped tiled roof with lifted eave corners, a round end tile course along both eaves and a ridge run over it.","description":"A 3 m bay of hipped tiled roof with lifted eave corners, a round end tile course along both eaves and a ridge run over it. Overall 3.00 by 1.05 by 3.83 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m along the ridge, 3.8 m across the eaves, 0.9 m from eave to ridge. Origin on the eave line; place at eave height and close the top with a ridge tile run. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hipped-tile-roof-modul-fb2a5427","cdnUrl":"https://cdn.3dassets.dev/assets/38039/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hipped-tile-roof-modul-fb2a5427","thumbnailUrl":"https://cdn.3dassets.dev/assets/38039/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38039/v1/poster.webp","blurhash":"U7AwF]_4009FM{Rjj]fj00D$?b%Mx[xuoeoM","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":42268,"triangles":1856,"vertices":1816,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.50013426261749,-0.00010988001573553063,-1.9149999618530273],"max":[1.50013426261749,1.0501098323320197,1.9149999618530273]},"sizeMeters":[3,1.05,3.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:59.056Z","updatedAt":"2026-09-12T13:56:59.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38039/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HippedTileRoofModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38039/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38039/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38039/v1/model.glb\" alt=\"Hipped Tile Roof Module (Korean Hanok Village and Street)\" 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/38039/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/38039/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38040","slug":"korean-hanok-village-and-street-gabled-tile-roof-modul-b0f6ca5f","title":"Gabled Tile Roof Module (Korean Hanok Village and Street)","summary":"A 3 m bay of gabled tiled roof with a round end tile course along both eaves and a plain ridge, for a run between two gable ends.","description":"A 3 m bay of gabled tiled roof with a round end tile course along both eaves and a plain ridge, for a run between two gable ends. Overall 3.00 by 1.05 by 3.83 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m along the ridge, 3.8 m across the eaves. Origin on the eave line; place at eave height and close the top with a ridge tile run. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-gabled-tile-roof-modul-b0f6ca5f","cdnUrl":"https://cdn.3dassets.dev/assets/38040/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-gabled-tile-roof-modul-b0f6ca5f","thumbnailUrl":"https://cdn.3dassets.dev/assets/38040/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38040/v1/poster.webp","blurhash":"U7A^Uc~X00ITIUM{WBs:009Y?ct7-;%Mxuay","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":40396,"triangles":1808,"vertices":1717,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.50013426261749,-0.00010988001573553063,-1.9149999618530273],"max":[1.50013426261749,1.0501098323320197,1.9149999618530273]},"sizeMeters":[3,1.05,3.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:59.139Z","updatedAt":"2026-09-12T13:56:59.411Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38040/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GabledTileRoofModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38040/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38040/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38040/v1/model.glb\" alt=\"Gabled Tile Roof Module (Korean Hanok Village and Street)\" 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/38040/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/38040/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38041","slug":"korean-hanok-village-and-street-roof-ridge-tile-run-84fe6e09","title":"Roof Ridge Tile Run (Korean Hanok Village and Street)","summary":"A 3 m run of ridge tiling: a stacked clay course with a capping of round tiles along the top, to close the ridge of a roof run.","description":"A 3 m run of ridge tiling: a stacked clay course with a capping of round tiles along the top, to close the ridge of a roof run. Overall 3.00 by 0.41 by 0.42 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 0.42 m, 0.52 m high. Origin on the underside; place on the ridge line of a roof run. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-roof-ridge-tile-run-84fe6e09","cdnUrl":"https://cdn.3dassets.dev/assets/38041/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-roof-ridge-tile-run-84fe6e09","thumbnailUrl":"https://cdn.3dassets.dev/assets/38041/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38041/v1/poster.webp","blurhash":"U69jyCxuD%tRtR_4tRM{00j@?bk8Ri00M|-;","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":16764,"triangles":840,"vertices":658,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00003516662170663376,-0.21002838221381265],"max":[1.5,0.41496482145736446,0.21002838221381265]},"sizeMeters":[3,0.415,0.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:00.103Z","updatedAt":"2026-09-12T13:57:00.210Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38041/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofRidgeTileRunKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38041/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38041/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38041/v1/model.glb\" alt=\"Roof Ridge Tile Run (Korean Hanok Village and Street)\" 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/38041/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/38041/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38042","slug":"korean-hanok-village-and-street-eave-tile-run-3ddac357","title":"Eave Tile Run (Korean Hanok Village and Street)","summary":"A 3 m run of eave: a fascia board, a course of round end tiles and a lifted corner tile, the edge a tiled roof reads by at a distance.","description":"A 3 m run of eave: a fascia board, a course of round end tiles and a lifted corner tile, the edge a tiled roof reads by at a distance. Overall 3.00 by 0.33 by 0.43 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 0.42 m, 0.51 m high. Origin under the fascia; place on the eave beam of a roof. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-eave-tile-run-3ddac357","cdnUrl":"https://cdn.3dassets.dev/assets/38042/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-eave-tile-run-3ddac357","thumbnailUrl":"https://cdn.3dassets.dev/assets/38042/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38042/v1/poster.webp","blurhash":"U5ATZd-o4n%1tm~pxtIU00Oa_3R%RM00EO-=","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":33952,"triangles":1752,"vertices":1344,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00001953363420398313,-0.21497238074892422],"max":[1.5,0.33132097878092526,0.21497238074892422]},"sizeMeters":[3,0.331,0.43],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:56:59.949Z","updatedAt":"2026-09-12T13:57:00.044Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38042/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EaveTileRunKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38042/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38042/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38042/v1/model.glb\" alt=\"Eave Tile Run (Korean Hanok Village and Street)\" 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/38042/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/38042/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38043","slug":"korean-hanok-village-and-street-exposed-rafter-set-2923ce1a","title":"Exposed Rafter Set (Korean Hanok Village and Street)","summary":"A 3 m bay of round rafters on their purlin, left exposed the way a hanok soffit is, rising from the eave line toward the ridge.","description":"A 3 m bay of round rafters on their purlin, left exposed the way a hanok soffit is, rising from the eave line toward the ridge. Overall 3.00 by 0.88 by 1.42 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m by 1.4 m, rising 0.62 m. Origin on the purlin underside at the eave line, the eave toward +Z. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-exposed-rafter-set-2923ce1a","cdnUrl":"https://cdn.3dassets.dev/assets/38043/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-exposed-rafter-set-2923ce1a","thumbnailUrl":"https://cdn.3dassets.dev/assets/38043/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38043/v1/poster.webp","blurhash":"U2A,E]~B00oz^*xuRl4:00E2-TE24;?FIpNa","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":12988,"triangles":288,"vertices":628,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00006164977332728805,-0.8199673296976531],"max":[1.5,0.8800616450049557,0.5999673606920684]},"sizeMeters":[3,0.88,1.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:00.997Z","updatedAt":"2026-09-12T13:57:01.090Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38043/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExposedRafterSetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38043/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38043/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38043/v1/model.glb\" alt=\"Exposed Rafter Set (Korean Hanok Village and Street)\" 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/38043/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/38043/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38044","slug":"korean-hanok-village-and-street-sliding-lattice-door-s-c6fbf39d","title":"Sliding Lattice Door Set (Korean Hanok Village and Street)","summary":"A free standing set of four papered lattice leaves in a timber frame, the inner pair sliding behind the outer pair on a grooved sill.","description":"A free standing set of four papered lattice leaves in a timber frame, the inner pair sliding behind the outer pair on a grooved sill. Overall 2.64 by 2.42 by 0.34 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Frame 2.64 m wide by 2.42 m high by 0.34 m deep, clear opening 2.48 m by 2.1 m. Origin on the sill centre, the room side toward -Z. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-sliding-lattice-door-s-c6fbf39d","cdnUrl":"https://cdn.3dassets.dev/assets/38044/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-sliding-lattice-door-s-c6fbf39d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38044/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38044/v1/poster.webp","blurhash":"U9FYS#-:00M{%2^*oe4:00WV~VfRt7%Lj[E3","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61876,"triangles":2928,"vertices":3348,"meshes":9,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.3200000524520874,0.00005705968088043356,-0.17000031194029996],"max":[1.3200000524520874,2.4199430166130647,0.17000031194029996]},"sizeMeters":[2.64,2.42,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:02.042Z","updatedAt":"2026-09-12T13:57:02.139Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38044/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SlidingLatticeDoorSetKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38044/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38044/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38044/v1/model.glb\" alt=\"Sliding Lattice Door Set (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38044/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38044/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38045","slug":"korean-hanok-village-and-street-sliding-lattice-door-s-6d7207d6","title":"Sliding Lattice Door Set, Diamond Lattice (Korean Hanok Village and Street)","summary":"The same four leaf sliding door set with a diagonal lattice over the hanji paper instead of the plain grid, for a room with a finer front.","description":"The same four leaf sliding door set with a diagonal lattice over the hanji paper instead of the plain grid, for a room with a finer front. Overall 2.64 by 2.42 by 0.34 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-sliding-lattice-door-s-6d7207d6","cdnUrl":"https://cdn.3dassets.dev/assets/38045/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-sliding-lattice-door-s-6d7207d6","thumbnailUrl":"https://cdn.3dassets.dev/assets/38045/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38045/v1/poster.webp","blurhash":"U9FYS#-:00M{%2^*oe4:00WV~Va#t7%Lj[E2","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":67464,"triangles":3120,"vertices":3732,"meshes":9,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.3200000524520874,0.00005705968088043356,-0.17000031194029996],"max":[1.3200000524520874,2.4199430166130647,0.17000031194029996]},"sizeMeters":[2.64,2.42,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:02.727Z","updatedAt":"2026-09-12T13:57:02.819Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38045/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SlidingLatticeDoorSetDiamondLatticeKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38045/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38045/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38045/v1/model.glb\" alt=\"Sliding Lattice Door Set, Diamond Lattice (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38045/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38045/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38046","slug":"korean-hanok-village-and-street-hanji-lattice-window-ff57a158","title":"Hanji Lattice Window (Korean Hanok Village and Street)","summary":"A fixed lattice window panel on its sill board, hanji paper stretched behind an upright bar lattice, sized to sit in a clay wall.","description":"A fixed lattice window panel on its sill board, hanji paper stretched behind an upright bar lattice, sized to sit in a clay wall. Overall 1.50 by 1.42 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Overall 1.5 m by 1.42 m by 0.3 m. Origin under the sill; place at wall height. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanji-lattice-window-ff57a158","cdnUrl":"https://cdn.3dassets.dev/assets/38046/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanji-lattice-window-ff57a158","thumbnailUrl":"https://cdn.3dassets.dev/assets/38046/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38046/v1/poster.webp","blurhash":"UAGuUJ^k00Me?G^kae4:00NZ~qX9tQ%LR+Iq","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":22092,"triangles":852,"vertices":880,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0.000009744092831054374,-0.14996795556505021],"max":[0.75,1.4199902122467665,0.14996795556505021]},"sizeMeters":[1.5,1.42,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:02.759Z","updatedAt":"2026-09-12T13:57:02.852Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38046/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HanjiLatticeWindowKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38046/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38046/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38046/v1/model.glb\" alt=\"Hanji Lattice Window (Korean Hanok Village and Street)\" 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/38046/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/38046/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38047","slug":"korean-hanok-village-and-street-lifting-lattice-window-1962214e","title":"Lifting Lattice Window (Korean Hanok Village and Street)","summary":"The same window with a top hinged leaf that lifts out and is propped, which is how a hanok room is opened to the yard in summer.","description":"The same window with a top hinged leaf that lifts out and is propped, which is how a hanok room is opened to the yard in summer. Overall 1.50 by 1.42 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. The leaf is hinged along its head and lifts out over the sill. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-lifting-lattice-window-1962214e","cdnUrl":"https://cdn.3dassets.dev/assets/38047/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-lifting-lattice-window-1962214e","thumbnailUrl":"https://cdn.3dassets.dev/assets/38047/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38047/v1/poster.webp","blurhash":"UBGk?$%g00D$_1?GIq9a00RP~qtSsmt5M{Ip","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25204,"triangles":888,"vertices":964,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.75,0.000009744092831054374,-0.14996795556505021],"max":[0.75,1.4199902122467665,0.14996795556505021]},"sizeMeters":[1.5,1.42,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:03.695Z","updatedAt":"2026-09-12T13:57:03.785Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38047/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LiftingLatticeWindowKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38047/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38047/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38047/v1/model.glb\" alt=\"Lifting Lattice Window (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38047/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38047/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38048","slug":"korean-hanok-village-and-street-village-wall-straight-10dd1da2","title":"Village Wall Straight (Korean Hanok Village and Street)","summary":"A 3 m run of village boundary wall: a rough stone footing course, a clay body with stones bedded in it and a tiled capping with a ridge tile.","description":"A 3 m run of village boundary wall: a rough stone footing course, a clay body with stones bedded in it and a tiled capping with a ridge tile. Overall 3.00 by 2.11 by 0.62 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 0.62 m, 2.16 m to the ridge tile. Ports on the run lines at 1 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-village-wall-straight-10dd1da2","cdnUrl":"https://cdn.3dassets.dev/assets/38048/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-village-wall-straight-10dd1da2","thumbnailUrl":"https://cdn.3dassets.dev/assets/38048/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38048/v1/poster.webp","blurhash":"U9G8[v_300%KD%~p-:9F009G?Gt6%gx_WGMw","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":32268,"triangles":628,"vertices":1612,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00004909169296651861,-0.3100070192571795],"max":[1.5,2.1100278665804284,0.3100070192571795]},"sizeMeters":[3,2.11,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:04.825Z","updatedAt":"2026-09-12T13:57:04.930Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38048/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VillageWallStraightKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38048/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38048/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38048/v1/model.glb\" alt=\"Village Wall Straight (Korean Hanok Village and Street)\" 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/38048/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/38048/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38049","slug":"korean-hanok-village-and-street-village-wall-corner-36c0db5b","title":"Village Wall Corner (Korean Hanok Village and Street)","summary":"A corner of village wall on the 3 m grid: two half runs of stone and clay meeting in a square pier under a continuous tiled capping.","description":"A corner of village wall on the 3 m grid: two half runs of stone and clay meeting in a square pier under a continuous tiled capping. Overall 1.83 by 2.22 by 1.83 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. One 3 m grid cell. As built it turns a run coming from the west into one running south; rotate for the other three corners. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-village-wall-corner-36c0db5b","cdnUrl":"https://cdn.3dassets.dev/assets/38049/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-village-wall-corner-36c0db5b","thumbnailUrl":"https://cdn.3dassets.dev/assets/38049/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38049/v1/poster.webp","blurhash":"U3C?fe0000~qE8of$xt801~U=qNf$wIUtntP","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":18700,"triangles":548,"vertices":847,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.000018775304847340468,-0.33000001311302185],"max":[0.33000001311302185,2.219982748143742,1.5]},"sizeMeters":[1.83,2.22,1.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:05.409Z","updatedAt":"2026-09-12T13:57:05.512Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38049/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VillageWallCornerKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38049/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38049/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38049/v1/model.glb\" alt=\"Village Wall Corner (Korean Hanok Village and Street)\" 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/38049/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/38049/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38050","slug":"korean-hanok-village-and-street-village-wall-end-pier-1430de44","title":"Village Wall End Pier (Korean Hanok Village and Street)","summary":"A square stone and clay pier with a tiled cap, to stop the end of a wall run at a gate or an opening.","description":"A square stone and clay pier with a tiled cap, to stop the end of a wall run at a gate or an opening. Overall 0.86 by 2.24 by 0.86 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Pier 0.72 m square, 2.24 m high. Its port is on the west face; rotate 180 degrees for the other end of a run. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-village-wall-end-pier-1430de44","cdnUrl":"https://cdn.3dassets.dev/assets/38050/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-village-wall-end-pier-1430de44","thumbnailUrl":"https://cdn.3dassets.dev/assets/38050/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38050/v1/poster.webp","blurhash":"U5CsaG~p00009GoK-oj]0QIX^I--.TNKIAxs","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":7708,"triangles":240,"vertices":244,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4300000071525574,0.000019817163732727128,-0.4300000071525574],"max":[0.4300000071525574,2.2399816845692078,0.4300000071525574]},"sizeMeters":[0.86,2.24,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:05.481Z","updatedAt":"2026-09-12T13:57:05.764Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38050/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VillageWallEndPierKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38050/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38050/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38050/v1/model.glb\" alt=\"Village Wall End Pier (Korean Hanok Village and Street)\" 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/38050/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/38050/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38051","slug":"korean-hanok-village-and-street-courtyard-ground-modul-6ce611a9","title":"Courtyard Ground Module (Korean Hanok Village and Street)","summary":"A 3 m square of beaten earth madang, the swept yard a hanok stands round, with a few small stones bedded in the surface.","description":"A 3 m square of beaten earth madang, the swept yard a hanok stands round, with a few small stones bedded in the surface. Overall 3.00 by 0.15 by 3.00 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Surface at 0.12 m. Ports on all four grid lines. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-courtyard-ground-modul-6ce611a9","cdnUrl":"https://cdn.3dassets.dev/assets/38051/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-courtyard-ground-modul-6ce611a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/38051/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38051/v1/poster.webp","blurhash":"U7C?T1-p00V[%3WVWVs:00IU~VWU9Zs:V[NF","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":16156,"triangles":264,"vertices":784,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.000060427989866981835,-1.5],"max":[1.5,0.15229123818982865,1.5]},"sizeMeters":[3,0.152,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:06.414Z","updatedAt":"2026-09-12T13:57:06.512Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38051/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtyardGroundModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38051/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38051/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38051/v1/model.glb\" alt=\"Courtyard Ground Module (Korean Hanok Village and Street)\" 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/38051/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/38051/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38052","slug":"korean-hanok-village-and-street-stone-street-module-92994f78","title":"Stone Street Module (Korean Hanok Village and Street)","summary":"A 3 m square of village street laid in irregular stone setts on an earth bed, with the joints left open between them.","description":"A 3 m square of village street laid in irregular stone setts on an earth bed, with the joints left open between them. Overall 3.00 by 0.14 by 3.00 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Surface at 0.14 m, one setts course over the bed. Ports on all four grid lines. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stone-street-module-92994f78","cdnUrl":"https://cdn.3dassets.dev/assets/38052/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stone-street-module-92994f78","thumbnailUrl":"https://cdn.3dassets.dev/assets/38052/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38052/v1/poster.webp","blurhash":"U8C?in%M00Rj%gbGRjja00M{~qjZ8_n+ozWV","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":21228,"triangles":444,"vertices":1036,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.00008178871132599741,-1.5],"max":[1.5,0.13997985620978085,1.5]},"sizeMeters":[3,0.14,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:07.467Z","updatedAt":"2026-09-12T13:57:07.564Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38052/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneStreetModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38052/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38052/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38052/v1/model.glb\" alt=\"Stone Street Module (Korean Hanok Village and Street)\" 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/38052/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/38052/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38053","slug":"korean-hanok-village-and-street-stepped-lane-module-647f30fc","title":"Stepped Lane Module (Korean Hanok Village and Street)","summary":"A 3 m wide flight of four shallow stone steps with a rubble kerb each side, the way a village lane climbs a slope.","description":"A 3 m wide flight of four shallow stone steps with a rubble kerb each side, the way a village lane climbs a slope. Overall 3.00 by 0.91 by 2.88 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bay 3 m wide by 2.88 m deep, climbing 0.6 m toward -Z. Ports on the side lines so flights lay side by side. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stepped-lane-module-647f30fc","cdnUrl":"https://cdn.3dassets.dev/assets/38053/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stepped-lane-module-647f30fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/38053/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38053/v1/poster.webp","blurhash":"U6EMLA-=00M|WAM|R*bF00IT~qRikD-:xtWB","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":28016,"triangles":768,"vertices":1387,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00008562612632534439,-1.3799395709670517],"max":[1.5,0.9060394387255073,1.4999395757354232]},"sizeMeters":[3,0.906,2.88],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:08.345Z","updatedAt":"2026-09-12T13:57:08.459Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38053/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteppedLaneModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38053/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38053/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38053/v1/model.glb\" alt=\"Stepped Lane Module (Korean Hanok Village and Street)\" 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/38053/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/38053/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38054","slug":"korean-hanok-village-and-street-ondol-firebox-3a9ac24d","title":"Ondol Firebox (Korean Hanok Village and Street)","summary":"The agungi that heats a hanok floor: a clay and stone block with an arched mouth, an iron door on a hinge, an ash pit and a stack of split wood beside it.","description":"The agungi that heats a hanok floor: a clay and stone block with an arched mouth, an iron door on a hinge, an ash pit and a stack of split wood beside it. Overall 1.90 by 1.36 by 1.28 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Block 1.78 m by 1.18 m by 1.36 m, the mouth facing +Z. The fire itself is not modelled. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-ondol-firebox-3a9ac24d","cdnUrl":"https://cdn.3dassets.dev/assets/38054/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-ondol-firebox-3a9ac24d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38054/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38054/v1/poster.webp","blurhash":"U8F$CP9u00IA~9%M9aIV00sjV@x]p0t7oMM_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19716,"triangles":432,"vertices":745,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.0099804746088525,0.0000020015824356844902,-0.5900015164422834],"max":[0.8899999856948853,1.3600381488796156,0.6899858738058002]},"sizeMeters":[1.9,1.36,1.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:08.364Z","updatedAt":"2026-09-12T13:57:08.472Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38054/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OndolFireboxKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38054/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38054/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38054/v1/model.glb\" alt=\"Ondol Firebox (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38054/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38054/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38055","slug":"korean-hanok-village-and-street-ondol-flue-run-bcb58056","title":"Ondol Flue Run (Korean Hanok Village and Street)","summary":"A 3 m run of underfloor flue: a clay duct on a stone bed with removable cover slabs over it, the heat path from the firebox to the chimney.","description":"A 3 m run of underfloor flue: a clay duct on a stone bed with removable cover slabs over it, the heat path from the firebox to the chimney. Overall 3.00 by 0.52 by 0.74 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 0.74 m, 0.52 m high. Origin on the bed underside. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-ondol-flue-run-bcb58056","cdnUrl":"https://cdn.3dassets.dev/assets/38055/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-ondol-flue-run-bcb58056","thumbnailUrl":"https://cdn.3dassets.dev/assets/38055/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38055/v1/poster.webp","blurhash":"UAD]e$%M4nt7%M~pt7IV00kC?bWAIU00Rkxu","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":11932,"triangles":468,"vertices":452,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00001771027223929078,-0.369884334849086],"max":[1.5,0.520017691198753,0.369884334849086]},"sizeMeters":[3,0.52,0.74],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:09.114Z","updatedAt":"2026-09-12T13:57:09.206Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38055/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OndolFlueRunKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38055/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38055/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38055/v1/model.glb\" alt=\"Ondol Flue Run (Korean Hanok Village and Street)\" 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/38055/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/38055/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38056","slug":"korean-hanok-village-and-street-chimney-stack-b7f9cd50","title":"Chimney Stack (Korean Hanok Village and Street)","summary":"A free standing clay and stone chimney with a banded shaft and a small tiled cap, which is where a hanok flue comes up, well clear of the house.","description":"A free standing clay and stone chimney with a banded shaft and a small tiled cap, which is where a hanok flue comes up, well clear of the house. Overall 1.06 by 3.18 by 1.06 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Base 0.96 m square, 3.18 m high. Smoke is not modelled. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-chimney-stack-b7f9cd50","cdnUrl":"https://cdn.3dassets.dev/assets/38056/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-chimney-stack-b7f9cd50","thumbnailUrl":"https://cdn.3dassets.dev/assets/38056/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38056/v1/poster.webp","blurhash":"U4CPw^_400000LM|?F%L0nad=qohxvWBR%xa","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":16632,"triangles":612,"vertices":636,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5299999713897705,0,-0.5299999713897705],"max":[0.5299999713897705,3.1800143137389107,0.5299999713897705]},"sizeMeters":[1.06,3.18,1.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:10.131Z","updatedAt":"2026-09-12T13:57:10.227Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38056/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChimneyStackKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38056/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38056/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38056/v1/model.glb\" alt=\"Chimney Stack (Korean Hanok Village and Street)\" 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/38056/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/38056/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38058","slug":"korean-hanok-village-and-street-kitchen-hearth-block-9012cad3","title":"Kitchen Hearth Block (Korean Hanok Village and Street)","summary":"The raised clay hearth of a hanok kitchen with two iron cauldrons sunk into it, a lifting wooden lid on the larger one and two stoke holes below.","description":"The raised clay hearth of a hanok kitchen with two iron cauldrons sunk into it, a lifting wooden lid on the larger one and two stoke holes below. Overall 2.50 by 1.19 by 1.37 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Block 2.5 m by 1.3 m, hearth top at 0.96 m, the stoke holes facing +Z. Fire and smoke are not modelled. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-kitchen-hearth-block-9012cad3","cdnUrl":"https://cdn.3dassets.dev/assets/38058/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-kitchen-hearth-block-9012cad3","thumbnailUrl":"https://cdn.3dassets.dev/assets/38058/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38058/v1/poster.webp","blurhash":"U5E{LV_300WA00~V-;IV009EsSxZkYE3t8D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28520,"triangles":1084,"vertices":1096,"meshes":4,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.25,0.00004150338474800952,-0.6500642152364032],"max":[1.25,1.1850040417980847,0.7200642676884906]},"sizeMeters":[2.5,1.185,1.37],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:11.125Z","updatedAt":"2026-09-12T13:57:11.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38058/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function KitchenHearthBlockKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38058/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38058/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38058/v1/model.glb\" alt=\"Kitchen Hearth Block (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38058/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38058/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38057","slug":"korean-hanok-village-and-street-thatched-outbuilding-d60d046d","title":"Thatched Outbuilding (Korean Hanok Village and Street)","summary":"A small store with clay walls on a stone footing, an open timber front and a straw thatched gable roof held down by a net of rope.","description":"A small store with clay walls on a stone footing, an open timber front and a straw thatched gable roof held down by a net of rope. Overall 4.64 by 3.92 by 4.05 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Footing 3.8 m by 3.2 m, thatch 4.64 m across, ridge at 3.92 m, the open front toward +Z. Thatch and rope are one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-thatched-outbuilding-d60d046d","cdnUrl":"https://cdn.3dassets.dev/assets/38057/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-thatched-outbuilding-d60d046d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38057/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38057/v1/poster.webp","blurhash":"UCGIP;~W00D*${%Lt8M}00M|%1NH02M|xuWU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":37424,"triangles":812,"vertices":1736,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2.322000026702881,-0.00006560695183363552,-2.0001372918256943],"max":[2.322000026702881,3.9154701204305677,2.049975467667929]},"sizeMeters":[4.644,3.916,4.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:11.106Z","updatedAt":"2026-09-12T13:57:11.223Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38057/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThatchedOutbuildingKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38057/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38057/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38057/v1/model.glb\" alt=\"Thatched Outbuilding (Korean Hanok Village and Street)\" 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/38057/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/38057/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38059","slug":"korean-hanok-village-and-street-jangdokdae-terrace-fd10afaf","title":"Jangdokdae Terrace (Korean Hanok Village and Street)","summary":"The raised stone terrace a household stands its fermentation jars on, with a kerb of dressed blocks and a swept flagged top.","description":"The raised stone terrace a household stands its fermentation jars on, with a kerb of dressed blocks and a swept flagged top. Overall 3.48 by 0.34 by 2.76 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Terrace 3.3 m by 2.76 m, flagged top at 0.26 m and a kerb to 0.34 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-jangdokdae-terrace-fd10afaf","cdnUrl":"https://cdn.3dassets.dev/assets/38059/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-jangdokdae-terrace-fd10afaf","thumbnailUrl":"https://cdn.3dassets.dev/assets/38059/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38059/v1/poster.webp","blurhash":"U4D,4W_300M{~q-;IUIU00IT~pRi004oa$s.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":23648,"triangles":732,"vertices":1078,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.7400000095367432,-0.00008057184644943982,-1.379967047573209],"max":[1.7400000095367432,0.33992706258777305,1.379967047573209]},"sizeMeters":[3.48,0.34,2.76],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:10.782Z","updatedAt":"2026-09-12T13:57:10.964Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38059/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JangdokdaeTerraceKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38059/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38059/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38059/v1/model.glb\" alt=\"Jangdokdae Terrace (Korean Hanok Village and Street)\" 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/38059/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/38059/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38060","slug":"korean-hanok-village-and-street-onggi-jar-large-57747607","title":"Onggi Jar, Large (Korean Hanok Village and Street)","summary":"A large bellied earthenware onggi jar with a shallow lid that lifts, the kind a household keeps soy and bean paste in.","description":"A large bellied earthenware onggi jar with a shallow lid that lifts, the kind a household keeps soy and bean paste in. Overall 0.84 by 1.04 by 0.84 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Body 0.84 m across and 0.86 m high, lid to 1.0 m. The lid lifts on its back edge. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-onggi-jar-large-57747607","cdnUrl":"https://cdn.3dassets.dev/assets/38060/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-onggi-jar-large-57747607","thumbnailUrl":"https://cdn.3dassets.dev/assets/38060/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38060/v1/poster.webp","blurhash":"UABy:C-:009GxukCRiae00Io~V%LIpWCxtkB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9884,"triangles":448,"vertices":281,"meshes":2,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4200265580899046,0,-0.4200265580899046],"max":[0.4200265580899046,1.0363898641843599,0.4200265580899046]},"sizeMeters":[0.84,1.036,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:12.832Z","updatedAt":"2026-09-12T13:57:12.924Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38060/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OnggiJarLargeKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38060/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38060/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38060/v1/model.glb\" alt=\"Onggi Jar, Large (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38060/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38060/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38061","slug":"korean-hanok-village-and-street-onggi-jar-medium-106bc5df","title":"Onggi Jar, Medium (Korean Hanok Village and Street)","summary":"The same onggi jar at two thirds the size, for the middle row of a jangdokdae terrace.","description":"The same onggi jar at two thirds the size, for the middle row of a jangdokdae terrace. Overall 0.58 by 0.70 by 0.58 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-onggi-jar-medium-106bc5df","cdnUrl":"https://cdn.3dassets.dev/assets/38061/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-onggi-jar-medium-106bc5df","thumbnailUrl":"https://cdn.3dassets.dev/assets/38061/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38061/v1/poster.webp","blurhash":"UBBpOb%M009axtoeRQWC00M{~V%2NGagxaj[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9892,"triangles":448,"vertices":281,"meshes":2,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.28999999165534973,0,-0.28999999165534973],"max":[0.28999999165534973,0.7017929966736073,0.28999999165534973]},"sizeMeters":[0.58,0.702,0.58],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:13.665Z","updatedAt":"2026-09-12T13:57:13.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38061/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OnggiJarMediumKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38061/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38061/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38061/v1/model.glb\" alt=\"Onggi Jar, Medium (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38061/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38061/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38062","slug":"korean-hanok-village-and-street-onggi-jar-small-ed06606f","title":"Onggi Jar, Small (Korean Hanok Village and Street)","summary":"The smallest onggi jar, a squat lidded pot for pickles and seasoning, for the front row of a terrace or a kitchen shelf.","description":"The smallest onggi jar, a squat lidded pot for pickles and seasoning, for the front row of a terrace or a kitchen shelf. Overall 0.38 by 0.42 by 0.38 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-onggi-jar-small-ed06606f","cdnUrl":"https://cdn.3dassets.dev/assets/38062/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-onggi-jar-small-ed06606f","thumbnailUrl":"https://cdn.3dassets.dev/assets/38062/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38062/v1/poster.webp","blurhash":"UBBy,3-o00D*tQfQRPk900Io~V%2M|jbxtay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9884,"triangles":448,"vertices":281,"meshes":2,"materials":1,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.1899999976158142,-0.000006710150642269541,-0.1899999976158142],"max":[0.1899999976158142,0.419795425981697,0.1899999976158142]},"sizeMeters":[0.38,0.42,0.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:12.851Z","updatedAt":"2026-09-12T13:57:13.037Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38062/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OnggiJarSmallKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38062/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38062/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38062/v1/model.glb\" alt=\"Onggi Jar, Small (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38062/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38062/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38068","slug":"korean-hanok-village-and-street-chest-of-drawers-af1b6672","title":"Chest Of Drawers (Korean Hanok Village and Street)","summary":"A hardwood chest on a plinth with three drawers on runners and iron plates and pulls, the storage of a hanok room.","description":"A hardwood chest on a plinth with three drawers on runners and iron plates and pulls, the storage of a hanok room. Overall 1.18 by 1.26 by 0.65 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Chest 1.18 m by 0.58 m by 1.26 m, the drawer fronts facing +Z. The carcass behind each front is open. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-chest-of-drawers-af1b6672","cdnUrl":"https://cdn.3dassets.dev/assets/38068/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-chest-of-drawers-af1b6672","thumbnailUrl":"https://cdn.3dassets.dev/assets/38068/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38068/v1/poster.webp","blurhash":"UAE{2q~T00D*~U%KIVNH4=D+Rmxvt7xtRlE2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18192,"triangles":888,"vertices":998,"meshes":8,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5900085398796553,1.7881393032936899e-9,-0.28996688918392954],"max":[0.5900085398796553,1.2599999904632568,0.35996796514170437]},"sizeMeters":[1.18,1.26,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:18.461Z","updatedAt":"2026-09-12T13:57:18.590Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38068/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ChestOfDrawersKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38068/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38068/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38068/v1/model.glb\" alt=\"Chest Of Drawers (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38068/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38068/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38064","slug":"korean-hanok-village-and-street-wooden-rice-chest-a32e48a3","title":"Wooden Rice Chest (Korean Hanok Village and Street)","summary":"A heavy plank grain chest on short legs with an iron banded lid that lifts, the store a household measures its rice out of.","description":"A heavy plank grain chest on short legs with an iron banded lid that lifts, the store a household measures its rice out of. Overall 1.00 by 1.03 by 0.80 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Chest 1.0 m by 0.8 m by 0.97 m. The lid is hinged along its back edge. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-wooden-rice-chest-a32e48a3","cdnUrl":"https://cdn.3dassets.dev/assets/38064/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-wooden-rice-chest-a32e48a3","thumbnailUrl":"https://cdn.3dassets.dev/assets/38064/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38064/v1/poster.webp","blurhash":"UBC~t}~T01E0?HxZRjV[01D+xcbJ9af+xaM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19824,"triangles":672,"vertices":674,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5,-3.0326601146990484e-7,-0.40002135997640104],"max":[0.5,1.02998687344687,0.4000213659368654]},"sizeMeters":[1,1.03,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:15.704Z","updatedAt":"2026-09-12T13:57:15.815Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38064/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WoodenRiceChestKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38064/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38064/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38064/v1/model.glb\" alt=\"Wooden Rice Chest (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38064/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38064/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38063","slug":"korean-hanok-village-and-street-low-table-d9a2a718","title":"Low Table (Korean Hanok Village and Street)","summary":"A small lacquered soban with a rimmed round top on four turned splayed legs, low enough to eat from on the floor.","description":"A small lacquered soban with a rimmed round top on four turned splayed legs, low enough to eat from on the floor. Overall 0.79 by 0.35 by 0.80 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Top 0.8 m across, 0.345 m high. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-low-table-d9a2a718","cdnUrl":"https://cdn.3dassets.dev/assets/38063/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-low-table-d9a2a718","thumbnailUrl":"https://cdn.3dassets.dev/assets/38063/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38063/v1/poster.webp","blurhash":"UCBMi4xa01ae~Vo2E2k901Rk^%oe01S2-oaf","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12480,"triangles":520,"vertices":510,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.39594714784165974,0.000013893676345494432,-0.4000000059604645],"max":[0.39594714784165974,0.35043963210528595,0.4000000059604645]},"sizeMeters":[0.792,0.35,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:15.686Z","updatedAt":"2026-09-12T13:57:15.798Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38063/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LowTableKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38063/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38063/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38063/v1/model.glb\" alt=\"Low Table (Korean Hanok Village and Street)\" 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/38063/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/38063/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38065","slug":"korean-hanok-village-and-street-floor-cushion-set-dc9c83b9","title":"Floor Cushion Set (Korean Hanok Village and Street)","summary":"Three flat woven floor cushions, one laid out and two stacked, in plain bands with no pattern that reads as writing.","description":"Three flat woven floor cushions, one laid out and two stacked, in plain bands with no pattern that reads as writing. Overall 1.37 by 0.15 by 0.64 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Set 1.38 m by 0.64 m overall, a cushion 0.58 m square and 0.082 m thick. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-floor-cushion-set-dc9c83b9","cdnUrl":"https://cdn.3dassets.dev/assets/38065/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-floor-cushion-set-dc9c83b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/38065/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38065/v1/poster.webp","blurhash":"UADl.qxu00ax%M?HoJD%00WE~qRQDi01R-_2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9512,"triangles":348,"vertices":332,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.28999999165534973,0.000009459195307884305,-0.2899537713397909],"max":[1.0800000429153442,0.1520223665595824,0.3499537737239767]},"sizeMeters":[1.37,0.152,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:16.371Z","updatedAt":"2026-09-12T13:57:16.483Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38065/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FloorCushionSetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38065/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38065/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38065/v1/model.glb\" alt=\"Floor Cushion Set (Korean Hanok Village and Street)\" 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/38065/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/38065/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38066","slug":"korean-hanok-village-and-street-folding-screen-9e9bc656","title":"Folding Screen (Korean Hanok Village and Street)","summary":"A four leaf paper screen in a timber frame, the two outer leaves hinged so they fold forward, its fields painted in plain bands and blocks.","description":"A four leaf paper screen in a timber frame, the two outer leaves hinged so they fold forward, its fields painted in plain bands and blocks. Overall 2.04 by 1.70 by 0.05 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Open flat it is 2.04 m wide and 1.7 m high. The painted fields are abstract blocks and carry no characters. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-folding-screen-9e9bc656","cdnUrl":"https://cdn.3dassets.dev/assets/38066/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-folding-screen-9e9bc656","thumbnailUrl":"https://cdn.3dassets.dev/assets/38066/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38066/v1/poster.webp","blurhash":"UDFO}t-;00M{-;-;Rj9F00Rj~qofNFn~ogS5","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17492,"triangles":336,"vertices":784,"meshes":12,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.0199520785539387,0,-0.02500686736605582],"max":[1.0199520785539387,1.7000000476837158,0.02500686736605582]},"sizeMeters":[2.04,1.7,0.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:18.654Z","updatedAt":"2026-09-12T13:57:18.841Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38066/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FoldingScreenKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38066/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38066/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38066/v1/model.glb\" alt=\"Folding Screen (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38066/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38066/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38067","slug":"korean-hanok-village-and-street-charcoal-brazier-2aca29dc","title":"Charcoal Brazier (Korean Hanok Village and Street)","summary":"A cast iron brazier on three legs with a ring rim, a bed of ash and charcoal and a pair of tongs laid across it.","description":"A cast iron brazier on three legs with a ring rim, a bed of ash and charcoal and a pair of tongs laid across it. Overall 0.61 by 0.49 by 0.62 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bowl 0.62 m across, 0.48 m high. The fire is not modelled. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-charcoal-brazier-2aca29dc","cdnUrl":"https://cdn.3dassets.dev/assets/38067/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-charcoal-brazier-2aca29dc","thumbnailUrl":"https://cdn.3dassets.dev/assets/38067/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38067/v1/poster.webp","blurhash":"UB84i8og4mfh~qofD%axM{a#t7od4nWC%Moe","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22444,"triangles":756,"vertices":995,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3053074763310666,-0.00001803652976878345,-0.3100000023841858],"max":[0.3053074763310666,0.4852610589716328,0.3100000023841858]},"sizeMeters":[0.611,0.485,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:17.512Z","updatedAt":"2026-09-12T13:57:17.612Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38067/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CharcoalBrazierKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38067/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38067/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38067/v1/model.glb\" alt=\"Charcoal Brazier (Korean Hanok Village and Street)\" 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/38067/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/38067/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38069","slug":"korean-hanok-village-and-street-hanging-paper-lantern-539f8e2b","title":"Hanging Paper Lantern (Korean Hanok Village and Street)","summary":"A cylindrical hanji lantern on wooden rings, hung from a hook on a short cord, with a plain painted band round the paper.","description":"A cylindrical hanji lantern on wooden rings, hung from a hook on a short cord, with a plain painted band round the paper. Overall 0.35 by 1.09 by 0.35 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Lantern 0.34 m across and 1.08 m to the top of the hook. Origin under the tassel; hang it so the hook meets a beam. The paper is one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: bob. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanging-paper-lantern-539f8e2b","cdnUrl":"https://cdn.3dassets.dev/assets/38069/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanging-paper-lantern-539f8e2b","thumbnailUrl":"https://cdn.3dassets.dev/assets/38069/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38069/v1/poster.webp","blurhash":"UEBWShxu00IUD*of%MRk00Rj~pxa%MRkIUt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23488,"triangles":984,"vertices":887,"meshes":3,"materials":3,"textures":0,"animations":["bob"],"boundingBox":{"min":[-0.17400020279534448,2.8610229518832853e-8,-0.1725432492436784],"max":[0.17400020279534448,1.090000033378601,0.1725432492436784]},"sizeMeters":[0.348,1.09,0.345],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:18.473Z","updatedAt":"2026-09-12T13:57:18.609Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38069/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HangingPaperLanternKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38069/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38069/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38069/v1/model.glb\" alt=\"Hanging Paper Lantern (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38069/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38069/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38070","slug":"korean-hanok-village-and-street-standing-paper-lamp-e8a82fcc","title":"Standing Paper Lamp (Korean Hanok Village and Street)","summary":"A floor standing lamp: a square hanji shade in a timber frame on a turned post and a spread foot, for a room or a veranda.","description":"A floor standing lamp: a square hanji shade in a timber frame on a turned post and a spread foot, for a room or a veranda. Overall 0.65 by 1.68 by 0.65 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Foot 0.48 m across, overall 1.68 m high. The paper is one rigid pose and the flame is not modelled. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-standing-paper-lamp-e8a82fcc","cdnUrl":"https://cdn.3dassets.dev/assets/38070/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-standing-paper-lamp-e8a82fcc","thumbnailUrl":"https://cdn.3dassets.dev/assets/38070/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38070/v1/poster.webp","blurhash":"U7A0p|xt009t~Wof4oRkR5jax[W:4nWB?boy","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15288,"triangles":532,"vertices":626,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0,-0.32499998807907104],"max":[0.32499998807907104,1.6799999475479126,0.32499998807907104]},"sizeMeters":[0.65,1.68,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:19.342Z","updatedAt":"2026-09-12T13:57:19.462Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38070/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandingPaperLampKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38070/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38070/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38070/v1/model.glb\" alt=\"Standing Paper Lamp (Korean Hanok Village and Street)\" 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/38070/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/38070/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38071","slug":"korean-hanok-village-and-street-wooden-bench-94b3dfde","title":"Wooden Bench (Korean Hanok Village and Street)","summary":"A plank bench on four splayed legs with a rail under each end, the seat a household keeps by the veranda for work and rest.","description":"A plank bench on four splayed legs with a rail under each end, the seat a household keeps by the veranda for work and rest. Overall 1.90 by 0.52 by 0.53 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Bench 1.9 m by 0.5 m, seat at 0.51 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-wooden-bench-94b3dfde","cdnUrl":"https://cdn.3dassets.dev/assets/38071/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-wooden-bench-94b3dfde","thumbnailUrl":"https://cdn.3dassets.dev/assets/38071/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38071/v1/poster.webp","blurhash":"UDBMi3xtD*%1~V?GRjM|02-o%LE202E2%Ls.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":10696,"triangles":272,"vertices":442,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.949999988079071,-0.000004639367645137282,-0.2634282954357569],"max":[0.949999988079071,0.5194570198311784,0.2634282954357569]},"sizeMeters":[1.9,0.519,0.527],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:20.234Z","updatedAt":"2026-09-12T13:57:20.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38071/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WoodenBenchKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38071/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38071/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38071/v1/model.glb\" alt=\"Wooden Bench (Korean Hanok Village and Street)\" 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/38071/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/38071/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38072","slug":"korean-hanok-village-and-street-hand-loom-278890aa","title":"Hand Loom (Korean Hanok Village and Street)","summary":"A timber frame loom with a turning cloth beam, a heddle frame, a reed and a stretch of plain woven cloth on it.","description":"A timber frame loom with a turning cloth beam, a heddle frame, a reed and a stretch of plain woven cloth on it. Overall 1.60 by 1.49 by 1.22 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Loom 1.34 m by 1.14 m by 1.49 m. The warp threads and the cloth are rigid: a thread under tension is not one rigid node. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hand-loom-278890aa","cdnUrl":"https://cdn.3dassets.dev/assets/38072/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hand-loom-278890aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/38072/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38072/v1/poster.webp","blurhash":"U5D9I#_40001waoaNfxu00Mv^+_2cZ-=-N4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24496,"triangles":492,"vertices":1100,"meshes":4,"materials":3,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.800000011920929,0,-0.5700215191976026],"max":[0.800000011920929,1.4900000095367432,0.6450160174765436]},"sizeMeters":[1.6,1.49,1.215],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:21.274Z","updatedAt":"2026-09-12T13:57:21.480Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38072/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HandLoomKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38072/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38072/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38072/v1/model.glb\" alt=\"Hand Loom (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38072/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38072/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38073","slug":"korean-hanok-village-and-street-mortar-and-pestle-stan-26fabc1b","title":"Mortar And Pestle Stand (Korean Hanok Village and Street)","summary":"A stone mortar bedded in a timber stand with a long wooden pestle leaning in it, for husking grain in the yard.","description":"A stone mortar bedded in a timber stand with a long wooden pestle leaning in it, for husking grain in the yard. Overall 1.05 by 1.52 by 0.85 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Stand 0.78 m square, mortar rim at 0.76 m, pestle to 1.54 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-mortar-and-pestle-stan-26fabc1b","cdnUrl":"https://cdn.3dassets.dev/assets/38073/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-mortar-and-pestle-stan-26fabc1b","thumbnailUrl":"https://cdn.3dassets.dev/assets/38073/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38073/v1/poster.webp","blurhash":"U88|qv-:009ZEMRkxGt600IV~p%M$$t6kCWC","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":13004,"triangles":400,"vertices":480,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.38999998569488525,-0.000022265902425461226,-0.38999998569488525],"max":[0.6594519870981648,1.5242867469787598,0.46108416459469226]},"sizeMeters":[1.049,1.524,0.851],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:21.496Z","updatedAt":"2026-09-12T13:57:21.627Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38073/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MortarAndPestleStandKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38073/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38073/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38073/v1/model.glb\" alt=\"Mortar And Pestle Stand (Korean Hanok Village and Street)\" 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/38073/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/38073/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38074","slug":"korean-hanok-village-and-street-stone-water-basin-3fc6ace3","title":"Stone Water Basin (Korean Hanok Village and Street)","summary":"A carved stone basin on a rough footing with a still pane of water in it and a bamboo dipper across the rim.","description":"A carved stone basin on a rough footing with a still pane of water in it and a bamboo dipper across the rim. Overall 0.77 by 0.56 by 0.78 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Basin 0.86 m across, rim at 0.52 m. The water is a flat pane. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stone-water-basin-3fc6ace3","cdnUrl":"https://cdn.3dassets.dev/assets/38074/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stone-water-basin-3fc6ace3","thumbnailUrl":"https://cdn.3dassets.dev/assets/38074/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38074/v1/poster.webp","blurhash":"U8D0Gl-;00E1~qRjD%xu00M{_2t74Uxu%LIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":10988,"triangles":332,"vertices":381,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3975902395770006,-0.000007533668202053256,-0.3799999952316284],"max":[0.37421827488393117,0.5587580039563802,0.39759892225265503]},"sizeMeters":[0.772,0.559,0.778],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:21.106Z","updatedAt":"2026-09-12T13:57:21.216Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38074/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneWaterBasinKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38074/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38074/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38074/v1/model.glb\" alt=\"Stone Water Basin (Korean Hanok Village and Street)\" 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/38074/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/38074/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38075","slug":"korean-hanok-village-and-street-water-trough-878d599c","title":"Water Trough (Korean Hanok Village and Street)","summary":"A hollowed stone trough on two block supports with a still surface of water in it, for a yard or a street corner.","description":"A hollowed stone trough on two block supports with a still surface of water in it, for a yard or a street corner. Overall 1.56 by 0.70 by 0.66 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Trough 1.56 m by 0.66 m, rim at 0.7 m. The water is a flat pane. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-water-trough-878d599c","cdnUrl":"https://cdn.3dassets.dev/assets/38075/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-water-trough-878d599c","thumbnailUrl":"https://cdn.3dassets.dev/assets/38075/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38075/v1/poster.webp","blurhash":"UDF$bC?b00xu_N?bxaIU00oyxuV@I9M{E1M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":6156,"triangles":96,"vertices":224,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7799999713897705,0.00005097278641447156,-0.3299532945778866],"max":[0.7799999713897705,0.6999490152926566,0.3299532945778866]},"sizeMeters":[1.56,0.7,0.66],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:22.005Z","updatedAt":"2026-09-12T13:57:22.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38075/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterTroughKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38075/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38075/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38075/v1/model.glb\" alt=\"Water Trough (Korean Hanok Village and Street)\" 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/38075/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/38075/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38076","slug":"korean-hanok-village-and-street-well-head-2795f6c1","title":"Well Head (Korean Hanok Village and Street)","summary":"A village well: a ring of rough stone on a flagged apron, a timber frame over it and a windlass that turns, with a bucket on the rope.","description":"A village well: a ring of rough stone on a flagged apron, a timber frame over it and a windlass that turns, with a bucket on the rope. Overall 2.20 by 2.44 by 2.20 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Apron 2.2 m square, well ring 1.6 m across, frame to 2.37 m. The rope is rigid in the shape it hangs in; the water is a dark pane inside the ring. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-well-head-2795f6c1","cdnUrl":"https://cdn.3dassets.dev/assets/38076/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-well-head-2795f6c1","thumbnailUrl":"https://cdn.3dassets.dev/assets/38076/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38076/v1/poster.webp","blurhash":"UDDJ9Z%M00M{00V@x^R*Ipoft5Rk_4ozxZay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":122924,"triangles":2696,"vertices":6229,"meshes":8,"materials":6,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.100000023841858,-0.000024165108558460435,-1.100000023841858],"max":[1.100000023841858,2.440009508344817,1.100000023841858]},"sizeMeters":[2.2,2.44,2.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:23.055Z","updatedAt":"2026-09-12T13:57:23.152Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38076/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WellHeadKoreanHanokVillageAndStreet(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38076/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38076/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38076/v1/model.glb\" alt=\"Well Head (Korean Hanok Village and Street)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/38076/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/38076/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"38077","slug":"korean-hanok-village-and-street-wooden-bucket-pair-2b3f71d9","title":"Wooden Bucket Pair (Korean Hanok Village and Street)","summary":"Two staved and hooped water buckets with a shouldered carrying yoke laid across them, for the well or the kitchen door.","description":"Two staved and hooped water buckets with a shouldered carrying yoke laid across them, for the well or the kitchen door. Overall 1.24 by 0.54 by 0.60 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Pair 1.24 m across, bucket 0.38 m over the hoops. The yoke ropes are rigid. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-wooden-bucket-pair-2b3f71d9","cdnUrl":"https://cdn.3dassets.dev/assets/38077/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-wooden-bucket-pair-2b3f71d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/38077/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38077/v1/poster.webp","blurhash":"U8B:QmM|02xt~Vt6IoD+00xtM|M|0L%1WBxb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":24600,"triangles":1236,"vertices":894,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6200000047683716,0.000009469390297445202,-0.34996215637500305],"max":[0.6200000047683716,0.5399905520673747,0.24996216233546753]},"sizeMeters":[1.24,0.54,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:24.119Z","updatedAt":"2026-09-12T13:57:24.320Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38077/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WoodenBucketPairKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38077/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38077/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38077/v1/model.glb\" alt=\"Wooden Bucket Pair (Korean Hanok Village and Street)\" 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/38077/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/38077/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38078","slug":"korean-hanok-village-and-street-firewood-stack-ef44023d","title":"Firewood Stack (Korean Hanok Village and Street)","summary":"A stack of split logs laid in courses against two stakes, the winter fuel of an ondol firebox.","description":"A stack of split logs laid in courses against two stakes, the winter fuel of an ondol firebox. Overall 1.82 by 1.10 by 0.83 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Stack 1.72 m by 0.74 m by 1.1 m. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-firewood-stack-ef44023d","cdnUrl":"https://cdn.3dassets.dev/assets/38078/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-firewood-stack-ef44023d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38078/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38078/v1/poster.webp","blurhash":"U9GRkx~U00RP-:^%xZNH00Ip-obbD*j^j]IV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":41064,"triangles":968,"vertices":2076,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9100000262260437,-0.00004913873164902327,-0.4190260073543596],"max":[0.9100000262260437,1.100049162573507,0.40922193735847945]},"sizeMeters":[1.82,1.1,0.828],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:24.254Z","updatedAt":"2026-09-12T13:57:24.385Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38078/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirewoodStackKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38078/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38078/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38078/v1/model.glb\" alt=\"Firewood Stack (Korean Hanok Village and Street)\" 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/38078/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/38078/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38081","slug":"korean-hanok-village-and-street-straw-rice-sack-stack-56a248a9","title":"Straw Rice Sack Stack (Korean Hanok Village and Street)","summary":"Four woven straw sacks of grain tied at both ends, three standing and one laid over them, for a store or a market pitch.","description":"Four woven straw sacks of grain tied at both ends, three standing and one laid over them, for a store or a market pitch. Overall 1.15 by 1.24 by 1.14 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Stack about 1.1 m by 1.2 m by 1.3 m. Straw and ties are one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-straw-rice-sack-stack-56a248a9","cdnUrl":"https://cdn.3dassets.dev/assets/38081/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-straw-rice-sack-stack-56a248a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/38081/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38081/v1/poster.webp","blurhash":"UADI~|S500D%NK%LkBIV00xa~ofQn~D*Rk-:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":25184,"triangles":1392,"vertices":920,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5934812426567078,0,-0.41998476688859376],"max":[0.5534812808036804,1.2400106703487086,0.7199997196695528]},"sizeMeters":[1.147,1.24,1.14],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:27.546Z","updatedAt":"2026-09-12T13:57:27.750Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38081/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StrawRiceSackStackKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38081/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38081/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38081/v1/model.glb\" alt=\"Straw Rice Sack Stack (Korean Hanok Village and Street)\" 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/38081/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/38081/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38079","slug":"korean-hanok-village-and-street-clay-roof-tile-stack-f7d92f3d","title":"Clay Roof Tile Stack (Korean Hanok Village and Street)","summary":"Two stacks of curved roof tiles and a row of round end tiles beside them, the spare material a village keeps by the wall.","description":"Two stacks of curved roof tiles and a row of round end tiles beside them, the spare material a village keeps by the wall. Overall 1.14 by 0.88 by 0.73 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Two stacks 1.12 m across and 0.62 m high, with a row of end tiles in front of them. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-clay-roof-tile-stack-f7d92f3d","cdnUrl":"https://cdn.3dassets.dev/assets/38079/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-clay-roof-tile-stack-f7d92f3d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38079/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38079/v1/poster.webp","blurhash":"U9Bpqgj?00Mx~q%MIUIU00xvR+IUIUofM{M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":21140,"triangles":1104,"vertices":828,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.5699999928474426,-0.000002564495889811891,-0.20999344019888633],"max":[0.5699999928474426,0.8760025516212866,0.5199934276819109]},"sizeMeters":[1.14,0.876,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:25.115Z","updatedAt":"2026-09-12T13:57:25.216Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38079/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClayRoofTileStackKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38079/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38079/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38079/v1/model.glb\" alt=\"Clay Roof Tile Stack (Korean Hanok Village and Street)\" 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/38079/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/38079/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38080","slug":"korean-hanok-village-and-street-market-stall-with-awni-064ed223","title":"Market Stall With Awning (Korean Hanok Village and Street)","summary":"A village market pitch: a plank trestle board on timber legs under a hemp awning on four poles, with a crate and a jar of stock on the board.","description":"A village market pitch: a plank trestle board on timber legs under a hemp awning on four poles, with a crate and a jar of stock on the board. Overall 2.66 by 2.58 by 1.27 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Pitch 2.66 m by 1.28 m, board at 0.84 m, awning from 2.2 m at the front to 2.5 m at the back. The hemp is one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-market-stall-with-awni-064ed223","cdnUrl":"https://cdn.3dassets.dev/assets/38080/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-market-stall-with-awni-064ed223","thumbnailUrl":"https://cdn.3dassets.dev/assets/38080/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38080/v1/poster.webp","blurhash":"UOEorZ%M00jF~qxuDjIV9aa~t6M{D$ofxvRi","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"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":35388,"triangles":892,"vertices":1591,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.3300000429153442,-0.0000021271256396282467,-0.6370463952861897],"max":[1.3300000429153442,2.5800020508316943,0.6370463952861897]},"sizeMeters":[2.66,2.58,1.274],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:27.268Z","updatedAt":"2026-09-12T13:57:27.372Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38080/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarketStallWithAwningKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38080/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38080/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38080/v1/model.glb\" alt=\"Market Stall With Awning (Korean Hanok Village and Street)\" 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/38080/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/38080/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38083","slug":"korean-hanok-village-and-street-produce-basket-set-0d57d77d","title":"Produce Basket Set (Korean Hanok Village and Street)","summary":"Three woven straw baskets of vegetables and roots at different sizes, for a market pitch, a kitchen door or a store.","description":"Three woven straw baskets of vegetables and roots at different sizes, for a market pitch, a kitchen door or a store. Overall 1.22 by 0.36 by 0.99 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Set about 1.1 m by 0.9 m, the largest basket 0.67 m across and 0.28 m high. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-produce-basket-set-0d57d77d","cdnUrl":"https://cdn.3dassets.dev/assets/38083/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-produce-basket-set-0d57d77d","thumbnailUrl":"https://cdn.3dassets.dev/assets/38083/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38083/v1/poster.webp","blurhash":"U9By]LRk00M{-;%2R*IW00%L~UWB4oD+t6-o","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":47008,"triangles":1464,"vertices":2205,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.750695526599884,0.0000015622480717403242,-0.47560892709989544],"max":[0.4686901271343231,0.35910425303176385,0.5120089770247459]},"sizeMeters":[1.219,0.359,0.988],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:28.339Z","updatedAt":"2026-09-12T13:57:28.444Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38083/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProduceBasketSetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38083/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38083/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38083/v1/model.glb\" alt=\"Produce Basket Set (Korean Hanok Village and Street)\" 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/38083/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/38083/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38082","slug":"korean-hanok-village-and-street-hanging-sign-board-15b20163","title":"Hanging Sign Board (Korean Hanok Village and Street)","summary":"A timber shop board hung from an iron ring on a bracket over two posts, its faces left blank but for a plain painted border.","description":"A timber shop board hung from an iron ring on a bracket over two posts, its faces left blank but for a plain painted border. Overall 2.13 by 2.65 by 0.42 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Posts 1.8 m apart, board 1.5 m by 0.66 m hanging at 1.7 m, overall 2.62 m high. Both faces are blank fields inside a painted border and carry no characters of any script. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-hanging-sign-board-15b20163","cdnUrl":"https://cdn.3dassets.dev/assets/38082/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-hanging-sign-board-15b20163","thumbnailUrl":"https://cdn.3dassets.dev/assets/38082/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38082/v1/poster.webp","blurhash":"U89jP[%100Io~Uxt4;E2E2ae%2W=9Gxa?aIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":24144,"triangles":660,"vertices":1032,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.080057827089072,0,-0.15698731343412284],"max":[1.0500577364900119,2.6493844985961914,0.26004660277549163]},"sizeMeters":[2.13,2.649,0.417],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:27.786Z","updatedAt":"2026-09-12T13:57:27.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38082/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HangingSignBoardKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38082/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38082/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38082/v1/model.glb\" alt=\"Hanging Sign Board (Korean Hanok Village and Street)\" 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/38082/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/38082/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38084","slug":"korean-hanok-village-and-street-stone-pagoda-ornament-5acf5291","title":"Stone Pagoda Ornament (Korean Hanok Village and Street)","summary":"A three tier stone pagoda ornament on a stepped base, each tier a body block under a wide tapered roof stone, with a carved finial.","description":"A three tier stone pagoda ornament on a stepped base, each tier a body block under a wide tapered roof stone, with a carved finial. Overall 1.50 by 2.57 by 1.50 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Base 1.5 m square, overall 2.35 m high. Every carved shape is invented and no face carries characters. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stone-pagoda-ornament-5acf5291","cdnUrl":"https://cdn.3dassets.dev/assets/38084/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stone-pagoda-ornament-5acf5291","thumbnailUrl":"https://cdn.3dassets.dev/assets/38084/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38084/v1/poster.webp","blurhash":"U8DJO{-;009F00Rj-;t700Rj~qxtt7j[%Mof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":24580,"triangles":1152,"vertices":1026,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.7500506407208746,1.7881394143159923e-9,-0.7500506407208746],"max":[0.7500506407208746,2.569999933242798,0.7500506407208746]},"sizeMeters":[1.5,2.57,1.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:30.167Z","updatedAt":"2026-09-12T13:57:30.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38084/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StonePagodaOrnamentKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38084/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38084/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38084/v1/model.glb\" alt=\"Stone Pagoda Ornament (Korean Hanok Village and Street)\" 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/38084/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/38084/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38085","slug":"korean-hanok-village-and-street-persimmon-tree-ec7be2f6","title":"Persimmon Tree (Korean Hanok Village and Street)","summary":"A yard persimmon with a short forked trunk, a broad canopy and ripe orange fruit hanging in it, the tree a hanok courtyard usually has one of.","description":"A yard persimmon with a short forked trunk, a broad canopy and ripe orange fruit hanging in it, the tree a hanok courtyard usually has one of. Overall 3.81 by 3.96 by 4.16 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. About 3.6 m across and 3.8 m high. Foliage and fruit are one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-persimmon-tree-ec7be2f6","cdnUrl":"https://cdn.3dassets.dev/assets/38085/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-persimmon-tree-ec7be2f6","thumbnailUrl":"https://cdn.3dassets.dev/assets/38085/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38085/v1/poster.webp","blurhash":"UD84@.oz4VbG_LofH[oeICayxtoK8yWByBfi","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":96904,"triangles":1796,"vertices":5200,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.9221156575978322,0,-2.065390110015869],"max":[1.8915260770619435,3.963271598934956,2.0940346717834473]},"sizeMeters":[3.814,3.963,4.159],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:30.434Z","updatedAt":"2026-09-12T13:57:30.543Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38085/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PersimmonTreeKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38085/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38085/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38085/v1/model.glb\" alt=\"Persimmon Tree (Korean Hanok Village and Street)\" 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/38085/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/38085/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38086","slug":"korean-hanok-village-and-street-pine-tree-3a5a94a4","title":"Pine Tree (Korean Hanok Village and Street)","summary":"A leaning village pine with a bare twisting trunk and three flat plates of needles, the shape a Korean yard pine is pruned into.","description":"A leaning village pine with a bare twisting trunk and three flat plates of needles, the shape a Korean yard pine is pruned into. Overall 3.12 by 4.47 by 2.42 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. About 3.1 m across and 4.5 m high. Needles are one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-pine-tree-3a5a94a4","cdnUrl":"https://cdn.3dassets.dev/assets/38086/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-pine-tree-3a5a94a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/38086/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38086/v1/poster.webp","blurhash":"U86uLgoL00WV?[ofDQV@IVof%LRjM|V[tPtP","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":50700,"triangles":950,"vertices":2684,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.4740997552871704,0,-1.1274337348937407],"max":[1.6440927982330322,4.468666566279743,1.2972138700484648]},"sizeMeters":[3.118,4.469,2.425],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:30.902Z","updatedAt":"2026-09-12T13:57:31.003Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38086/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PineTreeKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38086/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38086/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38086/v1/model.glb\" alt=\"Pine Tree (Korean Hanok Village and Street)\" 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/38086/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/38086/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38087","slug":"korean-hanok-village-and-street-bamboo-clump-01131093","title":"Bamboo Clump (Korean Hanok Village and Street)","summary":"A clump of nine bamboo culms with jointed rings and sprays of leaves near the top, for the back of a yard or a wall corner.","description":"A clump of nine bamboo culms with jointed rings and sprays of leaves near the top, for the back of a yard or a wall corner. Overall 1.84 by 4.41 by 2.27 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Clump about 1.6 m across and 4.4 m high. Leaves are one rigid pose. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-bamboo-clump-01131093","cdnUrl":"https://cdn.3dassets.dev/assets/38087/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-bamboo-clump-01131093","thumbnailUrl":"https://cdn.3dassets.dev/assets/38087/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38087/v1/poster.webp","blurhash":"U57LGYyB00DQ_LWC9GtPDPMy%z.6MeV[tRtP","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":97940,"triangles":3384,"vertices":4774,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.8746066359416476,0,-1.1754008046558488],"max":[0.9638955263034334,4.409794330596924,1.094969700949489]},"sizeMeters":[1.839,4.41,2.27],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:31.084Z","updatedAt":"2026-09-12T13:57:31.182Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38087/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BambooClumpKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38087/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38087/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38087/v1/model.glb\" alt=\"Bamboo Clump (Korean Hanok Village and Street)\" 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/38087/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/38087/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38088","slug":"korean-hanok-village-and-street-persimmon-drying-rack-e6c7ede2","title":"Persimmon Drying Rack (Korean Hanok Village and Street)","summary":"A timber A frame hung with strings of peeled persimmons drying in the sun, a yard fixture through the autumn.","description":"A timber A frame hung with strings of peeled persimmons drying in the sun, a yard fixture through the autumn. Overall 1.34 by 1.92 by 1.44 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Frame 1.34 m by 1.44 m by 1.91 m. The strings are rigid in the shape they hang in. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-persimmon-drying-rack-e6c7ede2","cdnUrl":"https://cdn.3dassets.dev/assets/38088/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-persimmon-drying-rack-e6c7ede2","thumbnailUrl":"https://cdn.3dassets.dev/assets/38088/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38088/v1/poster.webp","blurhash":"U7Acezoz00aw-mRj9uxa03Rk-.t64=oy~AoM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"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":61676,"triangles":1168,"vertices":3237,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6678466375620579,0,-0.720001049148999],"max":[0.6678466375620579,1.9244860410690308,0.720001049148999]},"sizeMeters":[1.336,1.924,1.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:32.996Z","updatedAt":"2026-09-12T13:57:33.095Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38088/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PersimmonDryingRackKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38088/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38088/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38088/v1/model.glb\" alt=\"Persimmon Drying Rack (Korean Hanok Village and Street)\" 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/38088/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/38088/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38089","slug":"korean-hanok-village-and-street-stepping-stone-path-d15fb986","title":"Stepping Stone Path (Korean Hanok Village and Street)","summary":"A 3 m run of flat stepping stones bedded in earth with moss between them, the way across a yard or a wet corner.","description":"A 3 m run of flat stepping stones bedded in earth with moss between them, the way across a yard or a wet corner. Overall 3.12 by 0.19 by 1.10 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 1.1 m, stones about 0.12 m proud of the bed. Ports on the run lines. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-stepping-stone-path-d15fb986","cdnUrl":"https://cdn.3dassets.dev/assets/38089/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-stepping-stone-path-d15fb986","thumbnailUrl":"https://cdn.3dassets.dev/assets/38089/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38089/v1/poster.webp","blurhash":"U7By{d-p00j=xu^+t6D%00NH~pWCM{00Ip?b","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":22804,"triangles":372,"vertices":1108,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.000030213994933490917,-0.5499282815027314],"max":[1.6209230422973633,0.1866409211166647,0.5499282815027314]},"sizeMeters":[3.121,0.187,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-12T13:57:33.148Z","updatedAt":"2026-09-14T13:56:55.097Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38089/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteppingStonePathKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38089/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38089/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38089/v1/model.glb\" alt=\"Stepping Stone Path (Korean Hanok Village and Street)\" 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/38089/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/38089/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38090","slug":"korean-hanok-village-and-street-lotus-pond-edge-straig-ba4093ac","title":"Lotus Pond Edge Straight (Korean Hanok Village and Street)","summary":"A 3 m run of pond edge: a coping of rough stone blocks over a bank of packed clay, with reeds growing at the water line.","description":"A 3 m run of pond edge: a coping of rough stone blocks over a bank of packed clay, with reeds growing at the water line. Overall 3.00 by 0.70 by 1.08 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Run 3 m by 0.78 m, coping at about 0.6 m. Origin at the bank underside, the water toward -Z. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-lotus-pond-edge-straig-ba4093ac","cdnUrl":"https://cdn.3dassets.dev/assets/38090/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-lotus-pond-edge-straig-ba4093ac","thumbnailUrl":"https://cdn.3dassets.dev/assets/38090/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38090/v1/poster.webp","blurhash":"U7CsgP~V00%2E{_2=|D*004:_3i{+x0156-;","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":31772,"triangles":604,"vertices":1580,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,0.0000836195238713422,-0.6815269758715823],"max":[1.5,0.7005444451073766,0.39992522667155156]},"sizeMeters":[3,0.7,1.081],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:33.673Z","updatedAt":"2026-09-12T13:57:33.829Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38090/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LotusPondEdgeStraightKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38090/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38090/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38090/v1/model.glb\" alt=\"Lotus Pond Edge Straight (Korean Hanok Village and Street)\" 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/38090/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/38090/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38091","slug":"korean-hanok-village-and-street-pond-water-module-4e3f2baa","title":"Pond Water Module (Korean Hanok Village and Street)","summary":"A 3 m square of still pond water with a silt bed under it, lily pads on the surface and two lotus flowers standing out of it.","description":"A 3 m square of still pond water with a silt bed under it, lily pads on the surface and two lotus flowers standing out of it. Overall 3.00 by 0.90 by 3.00 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Module 3 m square, water surface at 0.46 m over a 0.16 m bed. The water is a flat pane. No surface carries hangul, hanja or characters of any other script, and nothing here copies a real building or place. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-pond-water-module-4e3f2baa","cdnUrl":"https://cdn.3dassets.dev/assets/38091/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-pond-water-module-4e3f2baa","thumbnailUrl":"https://cdn.3dassets.dev/assets/38091/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38091/v1/poster.webp","blurhash":"U5A^q7?u00jD57M{xaoz00IAyXNG}=%MxYi_","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"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":20956,"triangles":920,"vertices":770,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.5,-0.00001953363420398313,-1.5],"max":[1.5,0.900014484630286,1.5]},"sizeMeters":[3,0.9,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:33.843Z","updatedAt":"2026-09-12T13:57:34.043Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38091/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PondWaterModuleKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38091/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38091/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38091/v1/model.glb\" alt=\"Pond Water Module (Korean Hanok Village and Street)\" 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/38091/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/38091/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38093","slug":"korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","title":"Walled hanok plot and village street (Korean Hanok Village and Street)","summary":"A whole village plot laid from 3 m modules on a 30 m square of beaten earth, with the street running past its gate. The tile roofed gate house stands on the south axis of a clay and stone boundary wall, with a paper lantern hanging each side of it and a stepping stone path...","description":"A whole village plot laid from 3 m modules on a 30 m square of beaten earth, with the street running past its gate. The tile roofed gate house stands on the south axis of a clay and stone boundary wall, with a paper lantern hanging each side of it and a stepping stone path leading in. The main house sits at the head of the yard on its stone plinth, three bays of timber frame with the open maru floor in the middle and a papered room each side, and the side wing closes the west. The east range is deliberately open topped: plinth, raised maru floor and walled room modules with the rafter and eave runs carried round both sides at roof height, so the roof line reads while the maru, the chest, the low table, the cushions, the folding screen, the brazier, the rice chest, the lamp and the loom inside stay visible and walkable. A walk through the scene has no vertical movement, so a roofed interior would be neither reachable nor photographable, which is why the roof cassettes are proved instead on the two bay store in the south west corner, where two frames on two plinths carry two hipped cassettes closed by ridge runs and a stepped lane climbs to the plinth. The kitchen hearth with its two cauldrons, the ondol firebox, its underfloor flue run and the chimney line the north east of the yard with the firewood beside them, the jangdokdae terrace carries nine fermentation jars in three sizes, and the yard holds the well, the water trough, the mortar and pestle, the stone basin, the persimmon drying rack, a persimmon tree, a pine, bamboo and a stone pagoda ornament, with a lotus pond of four water modules inside its coping in the south. Outside the wall the street carries a market shed of two gabled cassettes over the trestle stall, the produce baskets, the straw sacks, a bench, a stack of roof tiles and a hanging sign board whose faces are blank. Every board and painted field in the scene is an abstract shape and carries no characters of any script.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/38093/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-walled-h-d28cafda-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/38093/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38093/v1/poster.webp","blurhash":"U6B:mUx^00WAE1Rjn,t800Vr~WRk?ZxuoyM{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2437040,"triangles":89850,"vertices":115804,"meshes":226,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-15,-0.30001953363420397,-15],"max":[15,5.838151920558543,18.414999961853027]},"sizeMeters":[30,6.138,33.415],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-12T13:57:36.665Z","updatedAt":"2026-09-13T16:04:08.665Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38093/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WalledHanokPlotAndVillageStreetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38093/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38093/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38093/v1/model.glb\" alt=\"Walled hanok plot and village street (Korean Hanok Village and Street)\" 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/38093/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/38093/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"38092","slug":"korean-hanok-village-and-street-village-gate-and-marke-813aa6fd","title":"Village gate and market street (Korean Hanok Village and Street)","summary":"The gate end of the plot on its own at working scale, open topped like the plot scene so everything inside the wall stays visible from a walk at eye height. The tile roofed gate house stands on the axis of a clay and stone boundary wall that runs the full frontage and is...","description":"The gate end of the plot on its own at working scale, open topped like the plot scene so everything inside the wall stays visible from a walk at eye height. The tile roofed gate house stands on the axis of a clay and stone boundary wall that runs the full frontage and is closed by an end pier at each end, with a paper lantern hanging either side of the gate and a stepping stone path leading in. Inside the wall the beaten earth yard carries the well head, a pair of buckets, a stone water basin, two fermentation jars, a firewood stack, a persimmon tree, bamboo and a stone pagoda ornament. Outside it the street runs the whole width with a market shed of two post and beam bays under two gabled roof cassettes closed by their ridge runs, a trestle stall with an awning, produce baskets, straw sacks of grain, a bench, a stack of roof tiles and a hanging sign board whose faces are blank. Every board and painted field here is an abstract shape and carries no characters of any script.","status":"published","url":"https://3dassets.dev/assets/korean-hanok-village-and-street-village-gate-and-marke-813aa6fd","cdnUrl":"https://cdn.3dassets.dev/assets/38092/v1/model.glb","downloadUrl":"https://3dassets.dev/download/korean-hanok-village-and-street-village-gate-and-marke-813aa6fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/38092/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/38092/v1/poster.webp","blurhash":"UABz8:-=00s+9Z%L-pIV00E0-;e?~CD%E1x[","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":943016,"triangles":30856,"vertices":44083,"meshes":74,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-9.790000007152557,-0.000060427989866981835,5.42459919534415],"max":[9.790000007152557,5.790094770948185,18.414999961853027]},"sizeMeters":[19.58,5.79,12.99],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T13:57:36.645Z","updatedAt":"2026-09-12T13:57:36.770Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/38092/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VillageGateAndMarketStreetKoreanHanokVillageAndStreet(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/38092/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/38092/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/38092/v1/model.glb\" alt=\"Village gate and market street (Korean Hanok Village and Street)\" 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/38092/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/38092/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"korean-hanok-village-and-street","title":"Hanok village lanes and market street","url":"https://3dassets.dev/demos/korean-hanok-village-and-street"}}}