{"data":{"id":11,"slug":"pocket-borough","title":"Pocket Borough","summary":"A compact voxel neighbourhood with civic details, delivery vehicles and readable game props.","description":"Build a walkable city block with consistent 12.5 cm cubic geometry and a muted brick, teal and cream palette. Architecture and roads fit a 2 m planning grid. The scene combines a bakery street, apartment frontage and a small park. No smoothed or curved geometry is used.","url":"https://3dassets.dev/packs/pocket-borough","coverUrl":"https://cdn.3dassets.dev/assets/300/v1/poster.webp","assetCount":25,"aiGenerated":true,"aiGeneratedAssetCount":25,"aiModels":["GPT-6 via Codex"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":385136,"totalTriangles":7224,"starterScene":{"id":"300","slug":"pocket-borough-starter-scene","title":"Pocket Borough starter scene","summary":"A composed pocket borough scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Pocket Borough kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/300/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/300/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/300/v1/poster.webp","blurhash":"U7EfTf5600=|00DitR%f00^k?GEK_N?v?aMd","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":154592,"triangles":3600,"vertices":10800,"meshes":98,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-7.499764435254982,-0.19955137940081896,-7],"max":[6.374764435254982,8.125,7.5625]},"sizeMeters":[13.875,8.325,14.563],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:24.548Z","updatedAt":"2026-09-06T03:41:44.226Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/300/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/300/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/300/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/300/v1/model.glb\" alt=\"Pocket Borough starter scene\" 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/300/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/300/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"276","slug":"pocket-borough-corner-bakery","title":"Pocket Borough corner bakery","summary":"Two-storey brick bakery with a stepped parapet, display window and striped street awning. Built on a consistent 12.5 cm voxel grid.","description":"Two-storey brick bakery with a stepped parapet, display window and striped street awning. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 4.25 m wide, 5 m high and 5 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-corner-bakery","cdnUrl":"https://cdn.3dassets.dev/assets/276/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-corner-bakery","thumbnailUrl":"https://cdn.3dassets.dev/assets/276/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/276/v1/poster.webp","blurhash":"UEI;bZyr00VY~qIVD%X80KVDELo#t7tktRxt","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":17512,"triangles":300,"vertices":900,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-2.1249275185399945,0,-2.5],"max":[2.1249275185399945,5,2.5]},"sizeMeters":[4.25,5,5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:36.145Z","updatedAt":"2026-09-06T03:41:44.427Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/276/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughCornerBakery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/276/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/276/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/276/v1/model.glb\" alt=\"Pocket Borough corner bakery\" 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/276/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/276/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"277","slug":"pocket-borough-apartment-block","title":"Pocket Borough apartment block","summary":"Three-storey apartment building with inset blue windows, a roof water box and two small balconies. Built on a consistent 12.5 cm voxel grid.","description":"Three-storey apartment building with inset blue windows, a roof water box and two small balconies. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 4.25 m wide, 8.13 m high and 4.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-apartment-block","cdnUrl":"https://cdn.3dassets.dev/assets/277/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-apartment-block","thumbnailUrl":"https://cdn.3dassets.dev/assets/277/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/277/v1/poster.webp","blurhash":"U5F$U^tB00s%9dt2$~M|00Rg~WR;I9Rn?bxt","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":17152,"triangles":372,"vertices":1116,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-2.125,0,-2.4375],"max":[2.125,8.125,2.4374599444563128]},"sizeMeters":[4.25,8.125,4.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:39.219Z","updatedAt":"2026-09-06T03:41:44.419Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/277/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughApartmentBlock(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/277/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/277/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/277/v1/model.glb\" alt=\"Pocket Borough apartment block\" 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/277/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/277/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"278","slug":"pocket-borough-tram-shelter","title":"Pocket Borough tram shelter","summary":"Open street shelter with a stepped canopy, route panel, back glazing and a timber bench. Built on a consistent 12.5 cm voxel grid.","description":"Open street shelter with a stepped canopy, route panel, back glazing and a timber bench. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 4.25 m wide, 3.25 m high and 2.25 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-tram-shelter","cdnUrl":"https://cdn.3dassets.dev/assets/278/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-tram-shelter","thumbnailUrl":"https://cdn.3dassets.dev/assets/278/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/278/v1/poster.webp","blurhash":"UAGc7D.S00Mw_M.8NHIA4ToHb_X9H@^+$gD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":10532,"triangles":144,"vertices":432,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2.125,-0.0000019074068422497703,-1.1249198889126255],"max":[2.125,3.250129703665273,1.1249198889126255]},"sizeMeters":[4.25,3.25,2.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:41.476Z","updatedAt":"2026-09-06T03:41:44.411Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/278/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughTramShelter(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/278/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/278/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/278/v1/model.glb\" alt=\"Pocket Borough tram shelter\" 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/278/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/278/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"279","slug":"pocket-borough-delivery-van","title":"Pocket Borough delivery van","summary":"Compact voxel delivery van with a rear cargo box, square tyres, mirrors and bright headlamps. Built on a consistent 12.5 cm voxel grid.","description":"Compact voxel delivery van with a rear cargo box, square tyres, mirrors and bright headlamps. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 2.25 m wide, 2.63 m high and 3.5 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-delivery-van","cdnUrl":"https://cdn.3dassets.dev/assets/279/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-delivery-van","thumbnailUrl":"https://cdn.3dassets.dev/assets/279/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/279/v1/poster.webp","blurhash":"UEB#Cm-=8wWE.lRQIAkW4TIANGtRrYocn,tR","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":16644,"triangles":300,"vertices":900,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.1250801110873745,0.000040055543687245176,-1.75],"max":[1.1250801110873745,2.6250209814752647,1.75]},"sizeMeters":[2.25,2.625,3.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:46.148Z","updatedAt":"2026-09-06T03:41:44.401Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/279/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughDeliveryVan(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/279/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/279/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/279/v1/model.glb\" alt=\"Pocket Borough delivery van\" 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/279/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/279/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"280","slug":"pocket-borough-cargo-bicycle","title":"Pocket Borough cargo bicycle","summary":"Block-built cargo bicycle with square wheel rings, a front parcel box and raised handlebars. Built on a consistent 12.5 cm voxel grid.","description":"Block-built cargo bicycle with square wheel rings, a front parcel box and raised handlebars. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 2 m high and 3.13 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-cargo-bicycle","cdnUrl":"https://cdn.3dassets.dev/assets/280/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-cargo-bicycle","thumbnailUrl":"https://cdn.3dassets.dev/assets/280/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/280/v1/poster.webp","blurhash":"UBATTK}?DOOst8jFjFtR009xpIVrIUNabbjF","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":14052,"triangles":228,"vertices":684,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.00006675923947874196,-1.5625],"max":[0.5,2.0000667592394787,1.5625]},"sizeMeters":[1,2,3.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:48.560Z","updatedAt":"2026-09-06T03:41:44.391Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/280/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughCargoBicycle(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/280/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/280/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/280/v1/model.glb\" alt=\"Pocket Borough cargo bicycle\" 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/280/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/280/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"281","slug":"pocket-borough-city-dog","title":"Pocket Borough city dog","summary":"Small cubic companion dog with a cream muzzle, upright ears and a blue collar. Built on a consistent 12.5 cm voxel grid.","description":"Small cubic companion dog with a cream muzzle, upright ears and a blue collar. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 0.63 m wide, 1.63 m high and 1.63 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-city-dog","cdnUrl":"https://cdn.3dassets.dev/assets/281/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-city-dog","thumbnailUrl":"https://cdn.3dassets.dev/assets/281/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/281/v1/poster.webp","blurhash":"U5BMMY_M008_kXR*-6sp008_~9%g9v%2S5M{","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":10176,"triangles":156,"vertices":468,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3125,0,-0.8125],"max":[0.3125,1.6250133518478957,0.8125]},"sizeMeters":[0.625,1.625,1.625],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:50.232Z","updatedAt":"2026-09-06T03:41:44.383Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/281/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughCityDog(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/281/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/281/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/281/v1/model.glb\" alt=\"Pocket Borough city dog\" 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/281/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/281/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"282","slug":"pocket-borough-park-pigeon","title":"Pocket Borough park pigeon","summary":"Cubic city pigeon with a teal neck, folded wings, short bill and two planted feet. Built on a consistent 12.5 cm voxel grid.","description":"Cubic city pigeon with a teal neck, folded wings, short bill and two planted feet. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 0.75 m wide, 1.13 m high and 1.13 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-park-pigeon","cdnUrl":"https://cdn.3dassets.dev/assets/282/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-park-pigeon","thumbnailUrl":"https://cdn.3dassets.dev/assets/282/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/282/v1/poster.webp","blurhash":"U6ATo}_30000Gta{+Hof009G_N_3rFtRKNI9","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":8772,"triangles":120,"vertices":360,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3749809259315775,-0.000007629627368999081,-0.5625],"max":[0.3749809259315775,1.125,0.5625]},"sizeMeters":[0.75,1.125,1.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:52.099Z","updatedAt":"2026-09-06T03:41:44.375Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/282/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughParkPigeon(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/282/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/282/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/282/v1/model.glb\" alt=\"Pocket Borough park pigeon\" 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/282/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/282/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"283","slug":"pocket-borough-bicycle-courier","title":"Pocket Borough bicycle courier","summary":"Static voxel courier wearing a teal helmet, reflective jacket and square delivery backpack. Built on a consistent 12.5 cm voxel grid.","description":"Static voxel courier wearing a teal helmet, reflective jacket and square delivery backpack. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 2.25 m high and 1 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-bicycle-courier","cdnUrl":"https://cdn.3dassets.dev/assets/283/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-bicycle-courier","thumbnailUrl":"https://cdn.3dassets.dev/assets/283/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/283/v1/poster.webp","blurhash":"UAA1CVyD00Hr?]o|DiR601nj?aS|E1nixuOE","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":12072,"triangles":180,"vertices":540,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.500030518509476,0,-0.500015259254738],"max":[0.500030518509476,2.25,0.5000019074068422]},"sizeMeters":[1,2.25,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:54.114Z","updatedAt":"2026-09-06T03:41:44.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/283/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughBicycleCourier(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/283/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/283/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/283/v1/model.glb\" alt=\"Pocket Borough bicycle courier\" 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/283/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/283/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"284","slug":"pocket-borough-street-maple","title":"Pocket Borough street maple","summary":"Tiered cubic street tree with a visible branching trunk and an offset block canopy. Built on a consistent 12.5 cm voxel grid.","description":"Tiered cubic street tree with a visible branching trunk and an offset block canopy. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.88 m wide, 2.88 m high and 1.25 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-street-maple","cdnUrl":"https://cdn.3dassets.dev/assets/284/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-street-maple","thumbnailUrl":"https://cdn.3dassets.dev/assets/284/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/284/v1/poster.webp","blurhash":"UH8=1cx]4TIU.mozH?V@MeWBoyoLMJaLb^W=","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":5204,"triangles":72,"vertices":216,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9375,0,-0.625038148136845],"max":[0.9375,2.875038148136845,0.625038148136845]},"sizeMeters":[1.875,2.875,1.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:55.581Z","updatedAt":"2026-09-06T03:41:44.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/284/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughStreetMaple(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/284/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/284/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/284/v1/model.glb\" alt=\"Pocket Borough street maple\" 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/284/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/284/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"285","slug":"pocket-borough-flower-planter","title":"Pocket Borough flower planter","summary":"Square civic planter with layered green foliage and six chunky yellow and pink blossoms. Built on a consistent 12.5 cm voxel grid.","description":"Square civic planter with layered green foliage and six chunky yellow and pink blossoms. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.5 m wide, 1.75 m high and 1.13 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-flower-planter","cdnUrl":"https://cdn.3dassets.dev/assets/285/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-flower-planter","thumbnailUrl":"https://cdn.3dassets.dev/assets/285/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/285/v1/poster.webp","blurhash":"U8HBb#_100R;J3D$E3s?029ZD$R6{R?v%zIU","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":14380,"triangles":252,"vertices":756,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0.000026703695791496784,-0.5625114444410535],"max":[0.75,1.75,0.562530518509476]},"sizeMeters":[1.5,1.75,1.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:57.737Z","updatedAt":"2026-09-06T03:41:44.350Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/285/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughFlowerPlanter(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/285/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/285/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/285/v1/model.glb\" alt=\"Pocket Borough flower planter\" 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/285/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/285/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"286","slug":"pocket-borough-road-module","title":"Pocket Borough road module","summary":"Two-metre road tile with a dashed centre marking and raised pavements on both sides. Built on a consistent 12.5 cm voxel grid.","description":"Two-metre road tile with a dashed centre marking and raised pavements on both sides. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 2 m wide, 0.25 m high and 2 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-road-module","cdnUrl":"https://cdn.3dassets.dev/assets/286/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-road-module","thumbnailUrl":"https://cdn.3dassets.dev/assets/286/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/286/v1/poster.webp","blurhash":"U3B:$]-=00%L~q-;M{9F00RP-;9F004nV@~q","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"slug":"modular","title":"Modular"},{"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":5796,"triangles":72,"vertices":216,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:23:59.963Z","updatedAt":"2026-09-06T03:41:44.342Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/286/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughRoadModule(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/286/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/286/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/286/v1/model.glb\" alt=\"Pocket Borough road module\" 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/286/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/286/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"287","slug":"pocket-borough-crosswalk-module","title":"Pocket Borough crosswalk module","summary":"Two-metre street crossing tile with four white bars and contrasting curb ends. Built on a consistent 12.5 cm voxel grid.","description":"Two-metre street crossing tile with four white bars and contrasting curb ends. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 2 m wide, 0.25 m high and 2 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-crosswalk-module","cdnUrl":"https://cdn.3dassets.dev/assets/287/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-crosswalk-module","thumbnailUrl":"https://cdn.3dassets.dev/assets/287/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/287/v1/poster.webp","blurhash":"U7DS?#t800%L_3t7IVRj00Rj~pIU00Ri%2og","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"slug":"modular","title":"Modular"},{"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":6368,"triangles":84,"vertices":252,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000003814813684499541,-1],"max":[1,0.2500038148136845,1]},"sizeMeters":[2,0.25,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:01.782Z","updatedAt":"2026-09-06T03:41:44.333Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/287/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughCrosswalkModule(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/287/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/287/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/287/v1/model.glb\" alt=\"Pocket Borough crosswalk module\" 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/287/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/287/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"288","slug":"pocket-borough-park-fence","title":"Pocket Borough park fence","summary":"Two-metre cubic park railing with capped posts and five evenly spaced uprights. Built on a consistent 12.5 cm voxel grid.","description":"Two-metre cubic park railing with capped posts and five evenly spaced uprights. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 2 m wide, 1.25 m high and 0.13 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-park-fence","cdnUrl":"https://cdn.3dassets.dev/assets/288/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-park-fence","thumbnailUrl":"https://cdn.3dassets.dev/assets/288/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/288/v1/poster.webp","blurhash":"U49Qmo%3H;-;~U~q?FRO00~A_4nhVu^gt8xu","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"slug":"modular","title":"Modular"},{"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":7428,"triangles":120,"vertices":360,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.00004387035737174472,-0.06250190740684225],"max":[1,1.2500019074068422,0.06250190740684225]},"sizeMeters":[2,1.25,0.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:03.444Z","updatedAt":"2026-09-06T03:41:44.326Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/288/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughParkFence(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/288/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/288/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/288/v1/model.glb\" alt=\"Pocket Borough park fence\" 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/288/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/288/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"289","slug":"pocket-borough-traffic-signal","title":"Pocket Borough traffic signal","summary":"Street signal with three recessed block lights and a side-mounted pedestrian panel. Built on a consistent 12.5 cm voxel grid.","description":"Street signal with three recessed block lights and a side-mounted pedestrian panel. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 3.38 m high and 0.5 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-traffic-signal","cdnUrl":"https://cdn.3dassets.dev/assets/289/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-traffic-signal","thumbnailUrl":"https://cdn.3dassets.dev/assets/289/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/289/v1/poster.webp","blurhash":"U36kYJ-;0000~qxt4nD*Mexa%fE1DkV[%etQ","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6252,"triangles":96,"vertices":288,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5000133518478957,0,-0.24987792596209601],"max":[0.5000133518478957,3.375,0.249992370372631]},"sizeMeters":[1,3.375,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:05.169Z","updatedAt":"2026-09-06T03:41:44.316Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/289/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughTrafficSignal(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/289/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/289/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/289/v1/model.glb\" alt=\"Pocket Borough traffic signal\" 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/289/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/289/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"290","slug":"pocket-borough-park-bench","title":"Pocket Borough park bench","summary":"Voxel park bench with separate wooden seat slats, high backrest and block metal legs. Built on a consistent 12.5 cm voxel grid.","description":"Voxel park bench with separate wooden seat slats, high backrest and block metal legs. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.75 m wide, 1.63 m high and 0.75 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-park-bench","cdnUrl":"https://cdn.3dassets.dev/assets/290/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-park-bench","thumbnailUrl":"https://cdn.3dassets.dev/assets/290/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/290/v1/poster.webp","blurhash":"UACFqzRj01xa~AoeE2M|03oJ-nWBE3t7n+WU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6920,"triangles":108,"vertices":324,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.875,0,-0.3749580370494705],"max":[0.875,1.625,0.374946592608417]},"sizeMeters":[1.75,1.625,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:06.890Z","updatedAt":"2026-09-06T03:41:44.307Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/290/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughParkBench(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/290/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/290/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/290/v1/model.glb\" alt=\"Pocket Borough park bench\" 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/290/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/290/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"291","slug":"pocket-borough-recycling-station","title":"Pocket Borough recycling station","summary":"Two-compartment street recycling station with open deposit slots and contrasting collection doors. Built on a consistent 12.5 cm voxel grid.","description":"Two-compartment street recycling station with open deposit slots and contrasting collection doors. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.5 m wide, 1.5 m high and 0.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-recycling-station","cdnUrl":"https://cdn.3dassets.dev/assets/291/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-recycling-station","thumbnailUrl":"https://cdn.3dassets.dev/assets/291/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/291/v1/poster.webp","blurhash":"U8B|$+%f00M#nOxvtlRi00aO%#t3_NoJDiR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6844,"triangles":96,"vertices":288,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0,-0.43749809259315775],"max":[0.75,1.5,0.43749809259315775]},"sizeMeters":[1.5,1.5,0.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:08.929Z","updatedAt":"2026-09-06T03:41:44.299Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/291/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughRecyclingStation(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/291/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/291/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/291/v1/model.glb\" alt=\"Pocket Borough recycling station\" 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/291/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/291/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"292","slug":"pocket-borough-parcel-locker","title":"Pocket Borough parcel locker","summary":"Freestanding delivery locker bank with six inset doors, pull handles and a side keypad. Built on a consistent 12.5 cm voxel grid.","description":"Freestanding delivery locker bank with six inset doors, pull handles and a side keypad. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.75 m wide, 2.13 m high and 0.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-parcel-locker","cdnUrl":"https://cdn.3dassets.dev/assets/292/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-parcel-locker","thumbnailUrl":"https://cdn.3dassets.dev/assets/292/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/292/v1/poster.webp","blurhash":"UDCsW~~9000NtRt7n$Rj02E3?G--kBf+WBWA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":12328,"triangles":192,"vertices":576,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8750782036805322,0,-0.437522888882107],"max":[0.8750782036805322,2.125,0.437522888882107]},"sizeMeters":[1.75,2.125,0.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:10.495Z","updatedAt":"2026-09-06T03:41:44.291Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/292/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughParcelLocker(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/292/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/292/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/292/v1/model.glb\" alt=\"Pocket Borough parcel locker\" 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/292/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/292/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"293","slug":"pocket-borough-newspaper-box","title":"Pocket Borough newspaper box","summary":"Street newspaper dispenser with a display window, coin slot and a hinged-style lower retrieval flap. Built on a consistent 12.5 cm voxel grid.","description":"Street newspaper dispenser with a display window, coin slot and a hinged-style lower retrieval flap. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 1.63 m high and 1 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-newspaper-box","cdnUrl":"https://cdn.3dassets.dev/assets/293/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-newspaper-box","thumbnailUrl":"https://cdn.3dassets.dev/assets/293/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/293/v1/poster.webp","blurhash":"UNEB{ftR00R5~CofE1RjE1aKxtgNjFV@S3t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6392,"triangles":84,"vertices":252,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4999885555589465,-0.000013351847895748392,-0.49996375926999725],"max":[0.4999885555589465,1.625,0.499992370372631]},"sizeMeters":[1,1.625,1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:12.285Z","updatedAt":"2026-09-06T03:41:44.283Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/293/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughNewspaperBox(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/293/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/293/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/293/v1/model.glb\" alt=\"Pocket Borough newspaper box\" 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/293/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/293/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"294","slug":"pocket-borough-repair-toolbox","title":"Pocket Borough repair toolbox","summary":"Compact voxel repair toolbox with a recessed lid, raised carry handle and two front latches. Built on a consistent 12.5 cm voxel grid.","description":"Compact voxel repair toolbox with a recessed lid, raised carry handle and two front latches. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 1 m high and 0.75 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-repair-toolbox","cdnUrl":"https://cdn.3dassets.dev/assets/294/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-repair-toolbox","thumbnailUrl":"https://cdn.3dassets.dev/assets/294/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/294/v1/poster.webp","blurhash":"UJELd5tQ4oIo0fso%1j[0LIpS2$%}@kCWEI:","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6408,"triangles":84,"vertices":252,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000038148136844995406,-0.37497901852473525],"max":[0.5,1.000038148136845,0.37498664815210425]},"sizeMeters":[1,1,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:14.090Z","updatedAt":"2026-09-06T03:41:44.275Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/294/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughRepairToolbox(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/294/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/294/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/294/v1/model.glb\" alt=\"Pocket Borough repair toolbox\" 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/294/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/294/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"295","slug":"pocket-borough-street-broom","title":"Pocket Borough street broom","summary":"Long-handled street broom with a wide block bristle head and a contrasting grip. Built on a consistent 12.5 cm voxel grid.","description":"Long-handled street broom with a wide block bristle head and a contrasting grip. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 0.88 m wide, 2 m high and 0.5 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-street-broom","cdnUrl":"https://cdn.3dassets.dev/assets/295/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-street-broom","thumbnailUrl":"https://cdn.3dassets.dev/assets/295/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/295/v1/poster.webp","blurhash":"U5ATAgNL00-O02t4~AM}5@Ip=W-o~B%K9u4=","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":6748,"triangles":84,"vertices":252,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.43755531479842524,0.000013351847895748392,-0.2499732963042085],"max":[0.43755531479842524,2,0.24998664815210425]},"sizeMeters":[0.875,2,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:15.816Z","updatedAt":"2026-09-06T03:41:44.267Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/295/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughStreetBroom(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/295/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/295/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/295/v1/model.glb\" alt=\"Pocket Borough street broom\" 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/295/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/295/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"296","slug":"pocket-borough-sandwich-tray","title":"Pocket Borough sandwich tray","summary":"Voxel lunch tray with a layered sandwich, carton drink and a side portion of block fries. Built on a consistent 12.5 cm voxel grid.","description":"Voxel lunch tray with a layered sandwich, carton drink and a side portion of block fries. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.25 m wide, 1.13 m high and 0.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-sandwich-tray","cdnUrl":"https://cdn.3dassets.dev/assets/296/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-sandwich-tray","thumbnailUrl":"https://cdn.3dassets.dev/assets/296/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/296/v1/poster.webp","blurhash":"UAGIigx]00Iv00RP%gj]00Mx.8${%j.8~BWA","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":8488,"triangles":120,"vertices":360,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.625,-0.000013351847895748392,-0.43752098147526475],"max":[0.625,1.1250133518478957,0.43752098147526475]},"sizeMeters":[1.25,1.125,0.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:17.500Z","updatedAt":"2026-09-06T03:41:44.259Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/296/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughSandwichTray(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/296/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/296/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/296/v1/model.glb\" alt=\"Pocket Borough sandwich tray\" 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/296/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/296/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"297","slug":"pocket-borough-fruit-crate","title":"Pocket Borough fruit crate","summary":"Open voxel market crate holding four chunky red apples with square green stalks. Built on a consistent 12.5 cm voxel grid.","description":"Open voxel market crate holding four chunky red apples with square green stalks. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.25 m wide, 0.63 m high and 0.88 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-fruit-crate","cdnUrl":"https://cdn.3dassets.dev/assets/297/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-fruit-crate","thumbnailUrl":"https://cdn.3dassets.dev/assets/297/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/297/v1/poster.webp","blurhash":"U8EeiD~A00E*GG$gv|Oq009uxvaLveXSo~RP","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":12224,"triangles":204,"vertices":612,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.625,0.000034333323160495866,-0.43752098147526475],"max":[0.625,0.6249866481521043,0.43752098147526475]},"sizeMeters":[1.25,0.625,0.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:19.361Z","updatedAt":"2026-09-06T03:41:44.251Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/297/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughFruitCrate(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/297/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/297/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/297/v1/model.glb\" alt=\"Pocket Borough fruit crate\" 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/297/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/297/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"298","slug":"pocket-borough-transit-pass-pickup","title":"Pocket Borough transit pass pickup","summary":"Raised transit card collectible with a stepped tram symbol and a contrasting corner chip. Built on a consistent 12.5 cm voxel grid.","description":"Raised transit card collectible with a stepped tram symbol and a contrasting corner chip. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1 m wide, 0.63 m high and 0.38 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-transit-pass-pickup","cdnUrl":"https://cdn.3dassets.dev/assets/298/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-transit-pass-pickup","thumbnailUrl":"https://cdn.3dassets.dev/assets/298/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/298/v1/poster.webp","blurhash":"UED0[VDi00rq?^%#DiH@00%f^*M}IAV@xut7","category":{"slug":"icons","title":"3D Icons & UI"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"}],"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":6064,"triangles":72,"vertices":216,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.000020981475264747473,-0.18750190740684225],"max":[0.5,0.6249790185247353,0.18750953703421125]},"sizeMeters":[1,0.625,0.375],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:20.976Z","updatedAt":"2026-09-06T03:41:44.243Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/298/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughTransitPassPickup(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/298/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/298/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/298/v1/model.glb\" alt=\"Pocket Borough transit pass pickup\" 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/298/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/298/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"299","slug":"pocket-borough-block-impact-mesh","title":"Pocket Borough block impact mesh","summary":"Static stepped impact marker with a ground cross and raised cubic fragments for scripted game effects. Built on a consistent 12.5 cm voxel grid.","description":"Static stepped impact marker with a ground cross and raised cubic fragments for scripted game effects. Built on a consistent 12.5 cm voxel grid.\n\nPart of the Pocket Borough collection. Dimensions: 1.25 m wide, 1.25 m high and 1.25 m deep. Uses metres with +Y up and +Z forward. The origin sits on the ground at the horizontal centre. Static mesh with no rig, animation or collision mesh. Shared collection colours support a consistent game environment. CC0 licensed for commercial and personal projects.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-block-impact-mesh","cdnUrl":"https://cdn.3dassets.dev/assets/299/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-block-impact-mesh","thumbnailUrl":"https://cdn.3dassets.dev/assets/299/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/299/v1/poster.webp","blurhash":"UAEfAy?Y00Io02WC-oWU00E3^+n,~pj]D%j=","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"}],"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":5788,"triangles":84,"vertices":252,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.625,-0.000013351847895748392,-0.625],"max":[0.6250267036957915,1.25,0.625]},"sizeMeters":[1.25,1.25,1.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:22.723Z","updatedAt":"2026-09-06T03:41:44.236Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/299/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughBlockImpactMesh(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/299/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/299/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/299/v1/model.glb\" alt=\"Pocket Borough block impact mesh\" 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/299/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/299/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"300","slug":"pocket-borough-starter-scene","title":"Pocket Borough starter scene","summary":"A composed pocket borough scene with named objects. Use it as a starting layout for a web or mobile game.","description":"A composed example built from the Pocket Borough kit. Each placed object has a named parent node for editing in three.js or Blender.\n\nUses metres, Y up and the pack's shared palette. This is a static environment layout. Individual models are also included in the pack. Collision meshes, navigation meshes, scripts and lighting are not included.\n\nPart of [Pocket Borough](/packs/pocket-borough).","status":"published","url":"https://3dassets.dev/assets/pocket-borough-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/300/v1/model.glb","downloadUrl":"https://3dassets.dev/download/pocket-borough-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/300/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/300/v1/poster.webp","blurhash":"U7EfTf5600=|00DitR%f00^k?GEK_N?v?aMd","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"voxel","title":"Voxel"},{"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":154592,"triangles":3600,"vertices":10800,"meshes":98,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-7.499764435254982,-0.19955137940081896,-7],"max":[6.374764435254982,8.125,7.5625]},"sizeMeters":[13.875,8.325,14.563],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":0,"publishedAt":"2026-09-06T03:24:24.548Z","updatedAt":"2026-09-06T03:41:44.226Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/300/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PocketBoroughStarterScene(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/300/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/300/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/300/v1/model.glb\" alt=\"Pocket Borough starter scene\" 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/300/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/300/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}