{"data":{"id":262,"slug":"bowling-alley-and-pool-hall","title":"Bowling Alley and Pool Hall","summary":"Realistic bowling alley and pool hall models on real dimensions: ported lane, gutter, approach and pin deck modules, pins, balls and returns, pool tables, cues and darts, and the front of house.","description":"A modern realistic bowling alley with the pool and darts hall next door, for building a whole leisure floor. The lane run is modular on the real 1.524 m pitch: a ten foot lane bed 1.054 m wide between 0.235 m gutters, a fifteen foot approach with the foul line and both rows of dots, a gutter pair whose kickbacks meet back to back between lanes, and a pin deck with a full rack standing on the 12 inch triangle. Six lane modules make the regulation 18.29 m. Around them go the pinsetter housing, the ball return console, loaded house racks, divider seating with a scoring screen, bumper rails for the childrens lane, hire shoes, balls and pins. The pool hall adds a nine foot table on slate with six pocketed rails, a set racked to break, cues with a real taper, ferrule and tip, a triangle rack, chalk, a scoreboard slate and a dartboard cabinet whose origin is the bull, so it hangs at the regulation 1.73 m with its oche 2.37 m back. Front of house covers the shoe hire counter and its pigeonholes, an arcade cabinet, a jukebox, a vending machine, a bar counter section, trays, baskets and a neon sign, and the room is built from 2 m patterned carpet modules, 2 m wall panels and 1.8 m bench runs. The ball return hood, the pinsetter cowl, the dartboard leaves, the vending door, the jukebox front, the scoring screen and a bowling ball are named nodes on their own pivots with rigid open, close, tilt and spin clips: node transforms only, no skinning. Pin action, ball travel down the lane, the pinsetter linkage, the pool cloth and the pocket nets stay static, because none of them is reachable with one rigid node transform and faking it costs a consumer more than it gives. Every file is self-contained CC0 geometry with no collision or navigation data.","url":"https://3dassets.dev/packs/bowling-alley-and-pool-hall","coverUrl":"https://cdn.3dassets.dev/assets/33882/v1/poster.webp","assetCount":49,"aiGenerated":true,"aiGeneratedAssetCount":49,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":7412208,"totalTriangles":203806,"starterScene":{"id":"33882","slug":"bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","title":"Bowling Alley and Pool Hall Floor (Bowling Alley and Pool Hall)","summary":"Four lanes laid on the real 1.524 m pitch with their approaches, gutters, bumpered childrens lane, pin decks racked and ready and the pinsetters standing behind them, ball returns and loaded racks between the lanes, divider seating with scoring screens on the approach, the...","description":"Four lanes laid on the real 1.524 m pitch with their approaches, gutters, bumpered childrens lane, pin decks racked and ready and the pinsetters standing behind them, ball returns and loaded racks between the lanes, divider seating with scoring screens on the approach, the shoe hire counter and a run of bench seating behind it, and beyond a bench divider the pool hall: two nine foot tables racked to break, cue racks, a dartboard on its oche, high tables and stools, the bar counter and the jukebox, arcade cabinet and vending machine along the back wall under the neon. Magenta and teal alternate down the room, lane by lane and bench by bench, over the navy shells and the bold carpet.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/33882/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/33882/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33882/v1/poster.webp","blurhash":"U58X2_%200RpaZWBa+kD00Io_3t0XFt7t0ae","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2747944,"triangles":79062,"vertices":177378,"meshes":262,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-8.099989317433144,-0.000010071331644496972,-11.669015647348218],"max":[9.099999976158143,3.50000030704779,7]},"sizeMeters":[17.2,3.5,18.669],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:08.142Z","updatedAt":"2026-09-11T05:07:08.252Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33882/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingAlleyAndPoolHallFloorBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33882/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33882/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33882/v1/model.glb\" alt=\"Bowling Alley and Pool Hall Floor (Bowling Alley and Pool Hall)\" 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/33882/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/33882/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"33838","slug":"bowling-alley-and-pool-hall-bowling-lane-module-b6009a8a","title":"Bowling Lane Module (Bowling Alley and Pool Hall)","summary":"A ten foot bowling lane bed module, 1.054 m wide between the gutters and 90 mm above the floor, laid as 39 maple and synthetic boards with a 1 mm shadow between them on a steel sub-frame. Six modules make the regulation 18.29 m from foul line to head pin.","description":"A ten foot bowling lane bed module, 1.054 m wide between the gutters and 90 mm above the floor, laid as 39 maple and synthetic boards with a 1 mm shadow between them on a steel sub-frame. Six modules make the regulation 18.29 m from foul line to head pin. Ports lane-back and lane-front butt module to module along Z; gutter-left and gutter-right take the gutter pair at the bed edges. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-lane-module-b6009a8a","cdnUrl":"https://cdn.3dassets.dev/assets/33838/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-lane-module-b6009a8a","thumbnailUrl":"https://cdn.3dassets.dev/assets/33838/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33838/v1/poster.webp","blurhash":"UBCGDI%20Lt7-:9ZIo%L00D*?at64:~p-:9a","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":42688,"triangles":960,"vertices":2130,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5289606174856727,0.000047424137258066795,-1.5240000486373901],"max":[0.5289606174856727,0.09006930913353345,1.5240000486373901]},"sizeMeters":[1.058,0.09,3.048],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:41.900Z","updatedAt":"2026-09-11T05:06:42.018Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33838/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingLaneModuleBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33838/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33838/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33838/v1/model.glb\" alt=\"Bowling Lane Module (Bowling Alley and Pool Hall)\" 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/33838/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/33838/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33837","slug":"bowling-alley-and-pool-hall-bowling-lane-module-arrows-414780de","title":"Bowling Lane Module with Range Finders (Bowling Alley and Pool Hall)","summary":"The same ten foot lane module carrying the seven range finder arrows in dark inlay, for the module that sits nearest the foul line. The arrows step back from the edges to the centre and point at the pins.","description":"The same ten foot lane module carrying the seven range finder arrows in dark inlay, for the module that sits nearest the foul line. The arrows step back from the edges to the centre and point at the pins. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-lane-module-arrows-414780de","cdnUrl":"https://cdn.3dassets.dev/assets/33837/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-lane-module-arrows-414780de","thumbnailUrl":"https://cdn.3dassets.dev/assets/33837/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33837/v1/poster.webp","blurhash":"UAC6oixu01oe-:9ZM|-p00E1^*t64p~p-:9H","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":45108,"triangles":1016,"vertices":2256,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5289606174856727,0.000047424137258066795,-1.5240000486373901],"max":[0.5289606174856727,0.09156347028697376,1.5240000486373901]},"sizeMeters":[1.058,0.092,3.048],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:41.888Z","updatedAt":"2026-09-11T05:06:42.016Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33837/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingLaneModuleWithRangeFindersBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33837/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33837/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33837/v1/model.glb\" alt=\"Bowling Lane Module with Range Finders (Bowling Alley and Pool Hall)\" 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/33837/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/33837/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33836","slug":"bowling-alley-and-pool-hall-bowling-gutter-pair-996931a5","title":"Bowling Gutter Pair (Bowling Alley and Pool Hall)","summary":"The pair of 235 mm gutter channels for one ten foot lane module, swept as a shallow U with the kickback wall on the outer side. The wall faces land on the 1.524 m lane pitch, so two lanes side by side share the kickback back to back.","description":"The pair of 235 mm gutter channels for one ten foot lane module, swept as a shallow U with the kickback wall on the outer side. The wall faces land on the 1.524 m lane pitch, so two lanes side by side share the kickback back to back. Ports lane-left and lane-right meet the lane module gutter-left and gutter-right at the bed edges. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-gutter-pair-996931a5","cdnUrl":"https://cdn.3dassets.dev/assets/33836/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-gutter-pair-996931a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/33836/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33836/v1/poster.webp","blurhash":"U15#hU?cIS%OM{D%WSRo009FWHD$.7~qxd-.","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":15644,"triangles":312,"vertices":732,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7632325150312006,0.000024569169708714422,-1.5252000093460083],"max":[0.7632325150312006,0.08991358357648185,1.5240000486373901]},"sizeMeters":[1.526,0.09,3.049],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:41.885Z","updatedAt":"2026-09-11T05:06:42.035Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33836/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingGutterPairBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33836/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33836/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33836/v1/model.glb\" alt=\"Bowling Gutter Pair (Bowling Alley and Pool Hall)\" 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/33836/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/33836/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33835","slug":"bowling-alley-and-pool-hall-bowling-approach-and-foul--abd3a2c0","title":"Bowling Approach and Foul Line (Bowling Alley and Pool Hall)","summary":"A fifteen foot approach module the full 1.524 m lane pitch wide, in the same board construction as the lane, with the foul line inlaid across its far end and both rows of approach dots. Approaches butt side to side so a row of lanes shares one continuous run-up.","description":"A fifteen foot approach module the full 1.524 m lane pitch wide, in the same board construction as the lane, with the foul line inlaid across its far end and both rows of approach dots. Approaches butt side to side so a row of lanes shares one continuous run-up. Port lane-back meets the lane module lane-front; approach-left and approach-right join the next lane approach. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-approach-and-foul--abd3a2c0","cdnUrl":"https://cdn.3dassets.dev/assets/33835/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-approach-and-foul--abd3a2c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/33835/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33835/v1/poster.webp","blurhash":"UBB:jL%M0Lt7%L9ZM{%L00E1^*s.D*~W-:9a","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":85612,"triangles":1968,"vertices":4375,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7638604127990026,0.0001404453356608111,-2.2860000133514404],"max":[0.7638604127990026,0.09142223279590657,2.2860000133514404]},"sizeMeters":[1.528,0.091,4.572],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:41.738Z","updatedAt":"2026-09-11T05:06:41.922Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33835/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingApproachAndFoulLineBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33835/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33835/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33835/v1/model.glb\" alt=\"Bowling Approach and Foul Line (Bowling Alley and Pool Hall)\" 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/33835/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/33835/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33839","slug":"bowling-alley-and-pool-hall-bowling-pin-deck-with-rack-8184af97","title":"Pin Deck with a Full Rack (Bowling Alley and Pool Hall)","summary":"A pin deck module on the 1.524 m lane pitch with a full rack of ten pins standing on the real 12 inch triangle, kickback walls either side and the pit shield across the back. The head pin is toward +Z, the way a bowler sees it.","description":"A pin deck module on the 1.524 m lane pitch with a full rack of ten pins standing on the real 12 inch triangle, kickback walls either side and the pit shield across the back. The head pin is toward +Z, the way a bowler sees it. Port lane-front meets the last lane module lane-back. The pins are geometry on their spots and do not fall: pin action is a physics result, not a node transform, so a consumer drives it with their own bodies. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-pin-deck-with-rack-8184af97","cdnUrl":"https://cdn.3dassets.dev/assets/33839/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-pin-deck-with-rack-8184af97","thumbnailUrl":"https://cdn.3dassets.dev/assets/33839/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33839/v1/poster.webp","blurhash":"U59kBM%~00mm*ITIJ*#900Nt^kRN8w-W:m5P","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":230920,"triangles":5752,"vertices":11986,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7620000243186951,-0.0000014498797553663678,-0.651199996471405],"max":[0.7620000243186951,0.7199995883376932,0.650003438817464]},"sizeMeters":[1.524,0.72,1.301],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:44.531Z","updatedAt":"2026-09-11T05:06:44.626Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33839/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PinDeckWithAFullRackBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33839/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33839/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33839/v1/model.glb\" alt=\"Pin Deck with a Full Rack (Bowling Alley and Pool Hall)\" 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/33839/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/33839/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33842","slug":"bowling-alley-and-pool-hall-bowling-pin-deck-cleared-d09ee4f7","title":"Pin Deck, Cleared (Bowling Alley and Pool Hall)","summary":"The same pin deck module swept clear, with the ten spots marked and no pins standing, for the frame between a strike and a respot or for a lane that is shut.","description":"The same pin deck module swept clear, with the ten spots marked and no pins standing, for the frame between a strike and a respot or for a lane that is shut. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-pin-deck-cleared-d09ee4f7","cdnUrl":"https://cdn.3dassets.dev/assets/33842/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-pin-deck-cleared-d09ee4f7","thumbnailUrl":"https://cdn.3dassets.dev/assets/33842/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33842/v1/poster.webp","blurhash":"U597^hyX0J+g*ITIK4vi00bu+}D$8_-W:S5Q","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":49028,"triangles":1072,"vertices":2376,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7620000243186951,-0.0000014498797553663678,-0.651199996471405],"max":[0.7620000243186951,0.7199995883376932,0.650003438817464]},"sizeMeters":[1.524,0.72,1.301],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:44.817Z","updatedAt":"2026-09-11T05:06:45.017Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33842/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PinDeckClearedBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33842/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33842/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33842/v1/model.glb\" alt=\"Pin Deck, Cleared (Bowling Alley and Pool Hall)\" 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/33842/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/33842/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33840","slug":"bowling-alley-and-pool-hall-bowling-pin-a135b977","title":"Bowling Pin (Bowling Alley and Pool Hall)","summary":"A single ten pin on the real profile: 381 mm tall, 121 mm across the belly, in coated white with the two red neck stripes and the dark base ring that keep it readable against a pale floor.","description":"A single ten pin on the real profile: 381 mm tall, 121 mm across the belly, in coated white with the two red neck stripes and the dark base ring that keep it readable against a pale floor. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-pin-a135b977","cdnUrl":"https://cdn.3dassets.dev/assets/33840/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-pin-a135b977","thumbnailUrl":"https://cdn.3dassets.dev/assets/33840/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33840/v1/poster.webp","blurhash":"U8CsXE-;0000w}WCI.kB00Rj~W%2?]t7DPM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21100,"triangles":468,"vertices":968,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.06049234178469209,0,-0.05958539269113976],"max":[0.06049234178469209,0.38100001215934753,0.05958539269113976]},"sizeMeters":[0.121,0.381,0.119],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:43.615Z","updatedAt":"2026-09-11T05:06:43.715Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33840/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingPinBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33840/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33840/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33840/v1/model.glb\" alt=\"Bowling Pin (Bowling Alley and Pool Hall)\" 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/33840/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/33840/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33841","slug":"bowling-alley-and-pool-hall-pinsetter-housing-72f2c440","title":"Pinsetter Machine Housing (Bowling Alley and Pool Hall)","summary":"The pinsetter that stands behind a pin deck on the lane pitch: a welded frame with side sheets, the accent masking panel a bowler sees above the pins, the distributor drum and chutes inside, and a control box. The cowl over the machine deck lifts on its back edge.","description":"The pinsetter that stands behind a pin deck on the lane pitch: a welded frame with side sheets, the accent masking panel a bowler sees above the pins, the distributor drum and chutes inside, and a control box. The cowl over the machine deck lifts on its back edge. The rake, the spotting table and the pin elevator are a linkage and are left static, because a linkage is not reachable with one rigid node transform and faking it costs a consumer more than it gives. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: setter-cowl. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-pinsetter-housing-72f2c440","cdnUrl":"https://cdn.3dassets.dev/assets/33841/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-pinsetter-housing-72f2c440","thumbnailUrl":"https://cdn.3dassets.dev/assets/33841/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33841/v1/poster.webp","blurhash":"U384lUtW009a?Js+E0S600M@-.xw0JtS?IRO","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51912,"triangles":1104,"vertices":2476,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-1.2239999771118164,0,-0.6600174846433285],"max":[0.7519999742507935,1.770024622001049,0.7550013729471434]},"sizeMeters":[1.976,1.77,1.415],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:43.635Z","updatedAt":"2026-09-11T05:06:43.748Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33841/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PinsetterMachineHousingBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33841/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33841/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33841/v1/model.glb\" alt=\"Pinsetter Machine Housing (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33841/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33841/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33843","slug":"bowling-alley-and-pool-hall-ball-return-unit-e3e0669f","title":"Ball Return Unit (Bowling Alley and Pool Hall)","summary":"The ball return console that stands between two lanes: a tapered frame body with glowing side bands, the chrome return rails and two balls waiting on the ramp, and a hood over the ball lift that opens on its back edge for a jam.","description":"The ball return console that stands between two lanes: a tapered frame body with glowing side bands, the chrome return rails and two balls waiting on the ramp, and a hood over the ball lift that opens on its back edge for a jam. The ball lift wheel and the underlane track are inside the machine and are left static; the ball travel itself belongs to the consumer. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: return-hood. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ball-return-unit-e3e0669f","cdnUrl":"https://cdn.3dassets.dev/assets/33843/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ball-return-unit-e3e0669f","thumbnailUrl":"https://cdn.3dassets.dev/assets/33843/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33843/v1/poster.webp","blurhash":"U59QaXys00vO:k54Ed^S4T9YTG=|%5tSpI$-","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80976,"triangles":2472,"vertices":5965,"meshes":8,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.44999998807907104,0.000001225508750590798,-0.7500127982779544],"max":[0.44999998807907104,1.1799956841528039,0.75]},"sizeMeters":[0.9,1.18,1.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:46.267Z","updatedAt":"2026-09-11T05:06:46.364Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33843/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BallReturnUnitBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33843/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33843/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33843/v1/model.glb\" alt=\"Ball Return Unit (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33843/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33843/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33844","slug":"bowling-alley-and-pool-hall-ball-rack-with-balls-cb7bda9f","title":"Ball Rack with Balls (Bowling Alley and Pool Hall)","summary":"A six ball house rack on two curved chrome rails and a welded frame, loaded with balls in the house colours. The rails hold every ball clear of its finger holes, the way a real rack does.","description":"A six ball house rack on two curved chrome rails and a welded frame, loaded with balls in the house colours. The rails hold every ball clear of its finger holes, the way a real rack does. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ball-rack-with-balls-cb7bda9f","cdnUrl":"https://cdn.3dassets.dev/assets/33844/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ball-rack-with-balls-cb7bda9f","thumbnailUrl":"https://cdn.3dassets.dev/assets/33844/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33844/v1/poster.webp","blurhash":"U8AAXZ-E4Txu~W=~MeM_00xZ%MD%4URi.8M_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":134368,"triangles":5976,"vertices":14952,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.7300000190734863,-0.0000400649345066173,-0.2574727689575574],"max":[0.7300000190734863,0.7076047349920265,0.2574727689575574]},"sizeMeters":[1.46,0.708,0.515],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:46.607Z","updatedAt":"2026-09-11T05:06:46.700Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33844/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallRackWithBallsBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33844/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33844/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33844/v1/model.glb\" alt=\"Ball Rack with Balls (Bowling Alley and Pool Hall)\" 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/33844/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/33844/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33845","slug":"bowling-alley-and-pool-hall-ball-rack-with-balls-warm-0030c8a7","title":"Ball Rack with Balls, Warm Set (Bowling Alley and Pool Hall)","summary":"The same house rack loaded with the warm half of the ball colours: magenta, timber marble and cream.","description":"The same house rack loaded with the warm half of the ball colours: magenta, timber marble and cream. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ball-rack-with-balls-warm-0030c8a7","cdnUrl":"https://cdn.3dassets.dev/assets/33845/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ball-rack-with-balls-warm-0030c8a7","thumbnailUrl":"https://cdn.3dassets.dev/assets/33845/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33845/v1/poster.webp","blurhash":"UBAvz.-W0Lsq}[-qIVNF00rs-VJ60fRP?HO9","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":207472,"triangles":5976,"vertices":14952,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.7300000190734863,-0.0000400649345066173,-0.2574727689575574],"max":[0.7300000190734863,0.7076047349920265,0.2574727689575574]},"sizeMeters":[1.46,0.708,0.515],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:47.267Z","updatedAt":"2026-09-11T05:06:47.357Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33845/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallRackWithBallsWarmSetBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33845/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33845/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33845/v1/model.glb\" alt=\"Ball Rack with Balls, Warm Set (Bowling Alley and Pool Hall)\" 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/33845/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/33845/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33846","slug":"bowling-alley-and-pool-hall-ball-rack-with-balls-cool-99ab2f97","title":"Ball Rack with Balls, Cool Set (Bowling Alley and Pool Hall)","summary":"The same house rack loaded with the cool half of the ball colours: glowing cyan, black and green.","description":"The same house rack loaded with the cool half of the ball colours: glowing cyan, black and green. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ball-rack-with-balls-cool-99ab2f97","cdnUrl":"https://cdn.3dassets.dev/assets/33846/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ball-rack-with-balls-cool-99ab2f97","thumbnailUrl":"https://cdn.3dassets.dev/assets/33846/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33846/v1/poster.webp","blurhash":"U99adK.8Di%2?].9aKVr00tQ%MIADPRPx^IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":279700,"triangles":5976,"vertices":14952,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7300000190734863,-0.00000505824548469036,-0.2574727689575574],"max":[0.7300000190734863,0.7076050557659315,0.2574727689575574]},"sizeMeters":[1.46,0.708,0.515],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:47.650Z","updatedAt":"2026-09-11T05:06:47.751Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33846/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallRackWithBallsCoolSetBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33846/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33846/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33846/v1/model.glb\" alt=\"Ball Rack with Balls, Cool Set (Bowling Alley and Pool Hall)\" 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/33846/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/33846/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33847","slug":"bowling-alley-and-pool-hall-ball-rack-empty-c8d74118","title":"Ball Rack, Empty (Bowling Alley and Pool Hall)","summary":"The same rack with every ball taken off it, for a lane that is closed or a rack a consumer loads themselves.","description":"The same rack with every ball taken off it, for a lane that is closed or a rack a consumer loads themselves. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ball-rack-empty-c8d74118","cdnUrl":"https://cdn.3dassets.dev/assets/33847/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ball-rack-empty-c8d74118","thumbnailUrl":"https://cdn.3dassets.dev/assets/33847/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33847/v1/poster.webp","blurhash":"U37d:_%ND*t8%M_4WEMw00Ri%KM|IT4mM|kC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27940,"triangles":576,"vertices":1356,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.7300000190734863,-0.0000400649345066173,-0.2574727689575574],"max":[0.7300000190734863,0.5540156223655937,0.2574727689575574]},"sizeMeters":[1.46,0.554,0.515],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:49.017Z","updatedAt":"2026-09-11T05:06:49.111Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33847/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallRackEmptyBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33847/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33847/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33847/v1/model.glb\" alt=\"Ball Rack, Empty (Bowling Alley and Pool Hall)\" 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/33847/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/33847/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33848","slug":"bowling-alley-and-pool-hall-bowling-ball-de3b7f6d","title":"Bowling Ball (Bowling Alley and Pool Hall)","summary":"A 218 mm house ball in magenta resin with the three drilled finger holes sunk into its top face. The whole ball is one named node on its own centre, so it rolls.","description":"A 218 mm house ball in magenta resin with the three drilled finger holes sunk into its top face. The whole ball is one named node on its own centre, so it rolls. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: ball. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-ball-de3b7f6d","cdnUrl":"https://cdn.3dassets.dev/assets/33848/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-ball-de3b7f6d","thumbnailUrl":"https://cdn.3dassets.dev/assets/33848/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33848/v1/poster.webp","blurhash":"UICNzNxH0]I.-Dj[I.ay0]NZ}cxH9?WV-DoL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44156,"triangles":900,"vertices":2266,"meshes":2,"materials":2,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.1088000014424324,-1.4424324096262708e-9,-0.10800310211243015],"max":[0.1088000014424324,0.2176000014424324,0.10800310211243015]},"sizeMeters":[0.218,0.218,0.216],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:48.343Z","updatedAt":"2026-09-11T05:06:48.443Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33848/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BowlingBallBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33848/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33848/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33848/v1/model.glb\" alt=\"Bowling Ball (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33848/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33848/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33849","slug":"bowling-alley-and-pool-hall-bowling-ball-marbled-7a5993a0","title":"Bowling Ball, Marbled (Bowling Alley and Pool Hall)","summary":"The same house ball in black resin with cream marbling swirled round it, for a rack that is not all one colour.","description":"The same house ball in black resin with cream marbling swirled round it, for a rack that is not all one colour. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: ball. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-ball-marbled-7a5993a0","cdnUrl":"https://cdn.3dassets.dev/assets/33849/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-ball-marbled-7a5993a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/33849/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33849/v1/poster.webp","blurhash":"UD9tJvt700Rj-;j[IUj[00Rj~qxuD$WB%Mj[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":48140,"triangles":988,"vertices":2442,"meshes":3,"materials":2,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.11550685098930176,-0.0008458926897642882,-0.1156904473900795],"max":[0.11550685098930176,0.21844588523918368,0.1156904473900795]},"sizeMeters":[0.231,0.219,0.231],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:48.856Z","updatedAt":"2026-09-11T05:06:48.981Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33849/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BowlingBallMarbledBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33849/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33849/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33849/v1/model.glb\" alt=\"Bowling Ball, Marbled (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33849/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33849/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33850","slug":"bowling-alley-and-pool-hall-bowling-shoes-838b23f8","title":"Bowling Shoes, Pair (Bowling Alley and Pool Hall)","summary":"A pair of house hire shoes set down side by side: navy uppers with a cream toe cap and a magenta heel counter, on a flat sliding sole, with laces and the size patch on the heel. 290 mm long.","description":"A pair of house hire shoes set down side by side: navy uppers with a cream toe cap and a magenta heel counter, on a flat sliding sole, with laces and the size patch on the heel. 290 mm long. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-shoes-838b23f8","cdnUrl":"https://cdn.3dassets.dev/assets/33850/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-shoes-838b23f8","thumbnailUrl":"https://cdn.3dassets.dev/assets/33850/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33850/v1/poster.webp","blurhash":"U4973MGr00]Y}JE_Fq,J00vg-?J50v]q=N60","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":68760,"triangles":1716,"vertices":3424,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1374133397858402,-0.000004289554166050924,-0.1462317854166031],"max":[0.1374133397858402,0.13024629454474373,0.1462317854166031]},"sizeMeters":[0.275,0.13,0.292],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:50.371Z","updatedAt":"2026-09-11T05:06:50.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33850/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingShoesPairBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33850/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33850/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33850/v1/model.glb\" alt=\"Bowling Shoes, Pair (Bowling Alley and Pool Hall)\" 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/33850/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/33850/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33851","slug":"bowling-alley-and-pool-hall-lane-divider-seating-1883064f","title":"Lane Divider Seating with Scoring Screen (Bowling Alley and Pool Hall)","summary":"The settee unit that sits between two lanes at the approach: two upholstered bucket seats side by side on a plinth facing the lane, with a timber score table on a pedestal behind them and the scoring screen on a post above it. The screen head tips on its mount.","description":"The settee unit that sits between two lanes at the approach: two upholstered bucket seats side by side on a plinth facing the lane, with a timber score table on a pedestal behind them and the scoring screen on a post above it. The screen head tips on its mount. The screen carries no wording or scores, so a consumer can render their own. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: score-arm. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-lane-divider-seating-1883064f","cdnUrl":"https://cdn.3dassets.dev/assets/33851/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-lane-divider-seating-1883064f","thumbnailUrl":"https://cdn.3dassets.dev/assets/33851/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33851/v1/poster.webp","blurhash":"UBA,64kD00oyIoennhXm0cV?}ckE-qS}S}#q","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":81908,"triangles":1856,"vertices":4006,"meshes":7,"materials":6,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.7300000190734863,0.000035778419282511686,-0.5799859845322125],"max":[0.7300000190734863,1.5326287263702218,0.5799859845322125]},"sizeMeters":[1.46,1.533,1.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:51.007Z","updatedAt":"2026-09-11T05:06:51.093Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33851/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LaneDividerSeatingWithScoringScreenBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33851/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33851/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33851/v1/model.glb\" alt=\"Lane Divider Seating with Scoring Screen (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33851/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33851/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33852","slug":"bowling-alley-and-pool-hall-lane-number-sign-59288499","title":"Lane Number Sign (Bowling Alley and Pool Hall)","summary":"The lit lane number panel that hangs over a pin deck: a double sided glowing face in a dark case on two drop rods, with an accent rail under it. The face carries no digits, so a consumer numbers their own lanes.","description":"The lit lane number panel that hangs over a pin deck: a double sided glowing face in a dark case on two drop rods, with an accent rail under it. The face carries no digits, so a consumer numbers their own lanes. The origin sits at the centre of the mounting bar at the top, because the sign hangs from a ceiling or a masking unit rather than standing on the floor. Metre units, +Y up, the player side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-lane-number-sign-59288499","cdnUrl":"https://cdn.3dassets.dev/assets/33852/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-lane-number-sign-59288499","thumbnailUrl":"https://cdn.3dassets.dev/assets/33852/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33852/v1/poster.webp","blurhash":"UDB|BK%g00Di5jt7=|NF4TIo.m-;?v$,DiEK","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19212,"triangles":448,"vertices":1005,"meshes":7,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.719981097199495,-0.0699740620474647],"max":[0.44999998807907104,0.024994658598709352,0.0699740620474647]},"sizeMeters":[0.9,0.745,0.14],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:50.450Z","updatedAt":"2026-09-11T05:06:50.551Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33852/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneNumberSignBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33852/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33852/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33852/v1/model.glb\" alt=\"Lane Number Sign (Bowling Alley and Pool Hall)\" 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/33852/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/33852/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33853","slug":"bowling-alley-and-pool-hall-bumper-rail-84280b46","title":"Bumper Rail (Bowling Alley and Pool Hall)","summary":"A ten foot bumper rail that fills one gutter for a childrens lane: a padded magenta section with a cream capping strip and a dark end block at each end. Rails butt end to end down the lane.","description":"A ten foot bumper rail that fills one gutter for a childrens lane: a padded magenta section with a cream capping strip and a dark end block at each end. Rails butt end to end down the lane. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bumper-rail-84280b46","cdnUrl":"https://cdn.3dassets.dev/assets/33853/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bumper-rail-84280b46","thumbnailUrl":"https://cdn.3dassets.dev/assets/33853/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33853/v1/poster.webp","blurhash":"UDBV#Dt7E1kC%M9sRjxa00IU=}oyIA~D%fEK","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":15636,"triangles":320,"vertices":684,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.09994347691335854,0.00009607056958284288,-1.5252000093460083],"max":[0.09994347691335854,0.22995504939178124,1.5252000093460083]},"sizeMeters":[0.2,0.23,3.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:50.795Z","updatedAt":"2026-09-11T05:06:50.894Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33853/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BumperRailBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33853/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33853/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33853/v1/model.glb\" alt=\"Bumper Rail (Bowling Alley and Pool Hall)\" 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/33853/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/33853/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33854","slug":"bowling-alley-and-pool-hall-pool-table-1e7397c5","title":"Pool Table, Nine Foot (Bowling Alley and Pool Hall)","summary":"A nine foot pool table: a 2.54 by 1.27 m green cloth bed on slate, timber rails with proud cushion faces and cream diamond sights, six iron pocket rings with leather nets slung under them, and a cabinet on six turned legs. Cushion tops at 0.8 m.","description":"A nine foot pool table: a 2.54 by 1.27 m green cloth bed on slate, timber rails with proud cushion faces and cream diamond sights, six iron pocket rings with leather nets slung under them, and a cabinet on six turned legs. Cushion tops at 0.8 m. The cloth and the pocket nets are modelled as rigid geometry: cloth drape is not reachable with a node transform. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-pool-table-1e7397c5","cdnUrl":"https://cdn.3dassets.dev/assets/33854/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-pool-table-1e7397c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/33854/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33854/v1/poster.webp","blurhash":"UAA19KxuHXr??^%MZ$n400ozg$Vs8wIVPBK5","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":161236,"triangles":3984,"vertices":8311,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.4149999618530273,0.00007585523806430405,-0.7799838041624005],"max":[1.4149999618530273,0.8014593894136696,0.7799838041624005]},"sizeMeters":[2.83,0.801,1.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:53.238Z","updatedAt":"2026-09-11T05:06:53.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33854/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoolTableNineFootBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33854/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33854/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33854/v1/model.glb\" alt=\"Pool Table, Nine Foot (Bowling Alley and Pool Hall)\" 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/33854/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/33854/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33855","slug":"bowling-alley-and-pool-hall-pool-balls-racked-9d23c69a","title":"Pool Balls, Racked (Bowling Alley and Pool Hall)","summary":"A full set racked ready to break: fifteen 57.2 mm balls in the triangle, solids and stripes alternating, with the cue ball on the head spot 0.86 m in front of the apex. The set rests on y=0 so it drops straight onto a table bed.","description":"A full set racked ready to break: fifteen 57.2 mm balls in the triangle, solids and stripes alternating, with the cue ball on the head spot 0.86 m in front of the apex. The set rests on y=0 so it drops straight onto a table bed. The cue ball is cream with no spots, so it reads against the cloth and against the table rail. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-pool-balls-racked-9d23c69a","cdnUrl":"https://cdn.3dassets.dev/assets/33855/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-pool-balls-racked-9d23c69a","thumbnailUrl":"https://cdn.3dassets.dev/assets/33855/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33855/v1/poster.webp","blurhash":"U55q*FI:-;?H$*9ZR%xG0Ks:MyE1EL~qxuI.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23868,"triangles":4832,"vertices":12280,"meshes":23,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.1446000039577484,-7.450580596923828e-9,-0.22777040302753448],"max":[0.1446000039577484,0.057200007140636444,0.8885999917984009]},"sizeMeters":[0.289,0.057,1.116],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:52.369Z","updatedAt":"2026-09-11T05:06:52.464Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33855/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoolBallsRackedBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33855/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33855/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33855/v1/model.glb\" alt=\"Pool Balls, Racked (Bowling Alley and Pool Hall)\" 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/33855/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/33855/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33856","slug":"bowling-alley-and-pool-hall-triangle-rack-ba249df8","title":"Triangle Rack (Bowling Alley and Pool Hall)","summary":"The wooden triangle a set is racked in, lying flat on its side rails with a brass hanging eye at the apex. 335 mm on the side, sized on the 57.2 mm ball.","description":"The wooden triangle a set is racked in, lying flat on its side rails with a brass hanging eye at the apex. 335 mm on the side, sized on the 57.2 mm ball. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-triangle-rack-ba249df8","cdnUrl":"https://cdn.3dassets.dev/assets/33856/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-triangle-rack-ba249df8","thumbnailUrl":"https://cdn.3dassets.dev/assets/33856/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33856/v1/poster.webp","blurhash":"U48zV@~A00t7_2t59ajd000g~CRl01IW?aot","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11408,"triangles":232,"vertices":499,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.10699515947401586,0.000006943899335146858,-0.17491471767425537],"max":[0.19705441751778188,0.03799935913119681,0.17491471767425537]},"sizeMeters":[0.304,0.038,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:53.441Z","updatedAt":"2026-09-11T05:06:53.561Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33856/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TriangleRackBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33856/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33856/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33856/v1/model.glb\" alt=\"Triangle Rack (Bowling Alley and Pool Hall)\" 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/33856/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/33856/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33857","slug":"bowling-alley-and-pool-hall-cue-rack-wall-62b104ec","title":"Wall Cue Rack with Six Cues (Bowling Alley and Pool Hall)","summary":"A full height cue rack that stands against a wall: a timber back board with a cupped top rail and a heel tray, loaded with six cues standing butt down. An accent header runs across the top.","description":"A full height cue rack that stands against a wall: a timber back board with a cupped top rail and a heel tray, loaded with six cues standing butt down. An accent header runs across the top. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-cue-rack-wall-62b104ec","cdnUrl":"https://cdn.3dassets.dev/assets/33857/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-cue-rack-wall-62b104ec","thumbnailUrl":"https://cdn.3dassets.dev/assets/33857/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33857/v1/poster.webp","blurhash":"U3B2}l:,00C4}sxF9uEgK1ozrrRP-W$kI.EL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":99416,"triangles":2576,"vertices":5387,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4599337783717518,0,-0.011941345926048702],"max":[0.4599337783717518,1.8600000143051147,0.1599413422454619]},"sizeMeters":[0.92,1.86,0.172],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:53.693Z","updatedAt":"2026-09-11T05:06:53.797Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33857/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallCueRackWithSixCuesBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33857/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33857/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33857/v1/model.glb\" alt=\"Wall Cue Rack with Six Cues (Bowling Alley and Pool Hall)\" 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/33857/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/33857/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33858","slug":"bowling-alley-and-pool-hall-pool-cue-03fdec43","title":"Pool Cue (Bowling Alley and Pool Hall)","summary":"A 1.47 m two piece cue lying flat: a turned butt with an accent wrap, a joint collar, the full taper up the shaft, a cream ferrule and a dark tip, so it reads as a cue in a hand and not as a dowel.","description":"A 1.47 m two piece cue lying flat: a turned butt with an accent wrap, a joint collar, the full taper up the shaft, a cream ferrule and a dark tip, so it reads as a cue in a hand and not as a dowel. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-pool-cue-03fdec43","cdnUrl":"https://cdn.3dassets.dev/assets/33858/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-pool-cue-03fdec43","thumbnailUrl":"https://cdn.3dassets.dev/assets/33858/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33858/v1/poster.webp","blurhash":"U37dLF=|DlxZ={~BxHV[00S0~UR-5701S0--","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15776,"triangles":336,"vertices":686,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7350000143051147,-0.0000013113654537162678,-0.0157013107723875],"max":[0.7380002313555715,0.03140131017932128,0.0157013107723875]},"sizeMeters":[1.473,0.031,0.031],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:55.052Z","updatedAt":"2026-09-11T05:06:55.172Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33858/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoolCueBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33858/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33858/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33858/v1/model.glb\" alt=\"Pool Cue (Bowling Alley and Pool Hall)\" 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/33858/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/33858/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33859","slug":"bowling-alley-and-pool-hall-chalk-cube-4e2cd4ca","title":"Chalk Cube (Bowling Alley and Pool Hall)","summary":"A 24 mm cube of table chalk in its paper wrap, dished on top where a tip has worn it. Green chalk on a dark wrap, so it reads on a pale rail.","description":"A 24 mm cube of table chalk in its paper wrap, dished on top where a tip has worn it. Green chalk on a dark wrap, so it reads on a pale rail. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-chalk-cube-4e2cd4ca","cdnUrl":"https://cdn.3dassets.dev/assets/33859/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-chalk-cube-4e2cd4ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/33859/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33859/v1/poster.webp","blurhash":"UG86HYx]MJV@uikCRjofL#RPX8f+QSWBidV@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9140,"triangles":168,"vertices":383,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.012400000356137753,2.273184827959046e-7,-0.012400000356137753],"max":[0.012400000356137753,0.02183958430370824,0.012400000356137753]},"sizeMeters":[0.025,0.022,0.025],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:56.063Z","updatedAt":"2026-09-11T05:06:56.155Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33859/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChalkCubeBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33859/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33859/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33859/v1/model.glb\" alt=\"Chalk Cube (Bowling Alley and Pool Hall)\" 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/33859/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/33859/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33860","slug":"bowling-alley-and-pool-hall-scoreboard-slate-daf22010","title":"Scoreboard Slate (Bowling Alley and Pool Hall)","summary":"The framed slate scoreboard that hangs beside a pool table: a timber frame round a ruled dark slate with an accent header, a ledge under it and a stick of chalk and a wiper on the ledge. No wording, so a consumer writes their own frames.","description":"The framed slate scoreboard that hangs beside a pool table: a timber frame round a ruled dark slate with an accent header, a ledge under it and a stick of chalk and a wiper on the ledge. No wording, so a consumer writes their own frames. The origin sits at the centre of the back face, which is the wall face, so the board hangs at whatever height a room wants. Metre units, +Y up, the player side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-scoreboard-slate-daf22010","cdnUrl":"https://cdn.3dassets.dev/assets/33860/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-scoreboard-slate-daf22010","thumbnailUrl":"https://cdn.3dassets.dev/assets/33860/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33860/v1/poster.webp","blurhash":"U2A,5*_M004o}^=}D~4.1C$%RsE2Gh_2wR01","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24376,"triangles":616,"vertices":1383,"meshes":10,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.36000001430511475,-0.5299857951834615,-0.0012155640699477513],"max":[0.3612000048160553,0.27000001072883606,0.09750236015918408]},"sizeMeters":[0.721,0.8,0.099],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:56.172Z","updatedAt":"2026-09-11T05:06:56.288Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33860/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScoreboardSlateBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33860/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33860/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33860/v1/model.glb\" alt=\"Scoreboard Slate (Bowling Alley and Pool Hall)\" 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/33860/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/33860/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33861","slug":"bowling-alley-and-pool-hall-dartboard-cabinet-4d3284da","title":"Dartboard in a Wall Cabinet (Bowling Alley and Pool Hall)","summary":"A bristle board in a timber cabinet: twenty segments with the doubles and trebles rings, the two bulls, a wire spider and a number ring, behind two leaves with cream scoring panels inside them. Board diameter 451 mm.","description":"A bristle board in a timber cabinet: twenty segments with the doubles and trebles rings, the two bulls, a wire spider and a number ring, behind two leaves with cream scoring panels inside them. Board diameter 451 mm. The origin is the bull itself, so the cabinet hangs with the bull at the regulation 1.73 m simply by placing it there. The wire spider is geometry, not a separate node. Metre units, +Y up, the player side toward +Z. Named pivoted nodes: cabinet-door-left, cabinet-door-right. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-dartboard-cabinet-4d3284da","cdnUrl":"https://cdn.3dassets.dev/assets/33861/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-dartboard-cabinet-4d3284da","thumbnailUrl":"https://cdn.3dassets.dev/assets/33861/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33861/v1/poster.webp","blurhash":"U4C677D,00X7~V$*E29u0Mod=_kB-mxt9wIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":129236,"triangles":3904,"vertices":8195,"meshes":20,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3100122940372234,-0.3210042439832946,-0.09798107776353945],"max":[0.3100122940372234,0.3210042439832946,0.0909996649166516]},"sizeMeters":[0.62,0.642,0.189],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:55.518Z","updatedAt":"2026-09-11T05:06:55.620Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33861/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DartboardInAWallCabinetBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33861/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33861/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33861/v1/model.glb\" alt=\"Dartboard in a Wall Cabinet (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33861/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33861/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33862","slug":"bowling-alley-and-pool-hall-dartboard-cabinet-open-fa1b41a0","title":"Dartboard Cabinet, Open (Bowling Alley and Pool Hall)","summary":"The same cabinet with both leaves standing open against the wall, for dressing a room without animating it.","description":"The same cabinet with both leaves standing open against the wall, for dressing a room without animating it. Metre units, +Y up, the player side toward +Z. Named pivoted nodes: cabinet-door-left, cabinet-door-right. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-dartboard-cabinet-open-fa1b41a0","cdnUrl":"https://cdn.3dassets.dev/assets/33862/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-dartboard-cabinet-open-fa1b41a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/33862/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33862/v1/poster.webp","blurhash":"U6DSUT8{00?uV??Hxb9Y00?a?d9G%gi^V?Oa","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":139548,"triangles":3904,"vertices":8161,"meshes":20,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.31201479771501267,-0.3210042439832946,-0.2290156473482191],"max":[0.31201479771501267,0.3210042439832946,0.0730156512169331]},"sizeMeters":[0.624,0.642,0.302],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:57.787Z","updatedAt":"2026-09-11T05:06:57.898Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33862/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DartboardCabinetOpenBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33862/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33862/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33862/v1/model.glb\" alt=\"Dartboard Cabinet, Open (Bowling Alley and Pool Hall)\" 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/33862/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/33862/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33863","slug":"bowling-alley-and-pool-hall-darts-set-c1bf166d","title":"Darts Set of Three (Bowling Alley and Pool Hall)","summary":"Three steel tip darts lying in an open flip case: each one a knurled brass barrel, a nylon shaft and four flights, which is what makes a thrown dart read as a dart. 165 mm long.","description":"Three steel tip darts lying in an open flip case: each one a knurled brass barrel, a nylon shaft and four flights, which is what makes a thrown dart read as a dart. 165 mm long. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-darts-set-c1bf166d","cdnUrl":"https://cdn.3dassets.dev/assets/33863/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-darts-set-c1bf166d","thumbnailUrl":"https://cdn.3dassets.dev/assets/33863/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33863/v1/poster.webp","blurhash":"UCCY2%}c0wFE]==#WoAA00J5-XM|1F1ER%;-","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58364,"triangles":1364,"vertices":2910,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.0949999988079071,0.000004800886953065797,-0.05206590362133519],"max":[0.0949999988079071,0.0625006765307438,0.05206590362133519]},"sizeMeters":[0.19,0.062,0.104],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:57.130Z","updatedAt":"2026-09-11T05:06:57.235Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33863/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DartsSetOfThreeBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33863/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33863/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33863/v1/model.glb\" alt=\"Darts Set of Three (Bowling Alley and Pool Hall)\" 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/33863/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/33863/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33864","slug":"bowling-alley-and-pool-hall-oche-line-88123955","title":"Oche Throw Line (Bowling Alley and Pool Hall)","summary":"The raised oche a player stands behind: a 1.24 m timber bar 38 mm high with an accent strip along its top and a block at each end. Set it 2.37 m from the board face for the regulation throw.","description":"The raised oche a player stands behind: a 1.24 m timber bar 38 mm high with an accent strip along its top and a block at each end. Set it 2.37 m from the board face for the regulation throw. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-oche-line-88123955","cdnUrl":"https://cdn.3dassets.dev/assets/33864/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-oche-line-88123955","thumbnailUrl":"https://cdn.3dassets.dev/assets/33864/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33864/v1/poster.webp","blurhash":"U59PsNn-0xX8$m}]W.EL00xb~CWTEu0Jwi}]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14864,"triangles":288,"vertices":648,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6200000047683716,0.000002837464327970496,-0.05503036677027896],"max":[0.6200000047683716,0.044024993794640144,0.05503036677027896]},"sizeMeters":[1.24,0.044,0.11],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:57.682Z","updatedAt":"2026-09-11T05:06:57.817Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33864/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OcheThrowLineBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33864/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33864/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33864/v1/model.glb\" alt=\"Oche Throw Line (Bowling Alley and Pool Hall)\" 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/33864/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/33864/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33865","slug":"bowling-alley-and-pool-hall-high-table-bfa5bc35","title":"High Poseur Table (Bowling Alley and Pool Hall)","summary":"A 0.7 m round poseur table at 1.05 m on a cast column and a weighted disc base, with a timber top and a brass edge band. The height a pool room drinks at.","description":"A 0.7 m round poseur table at 1.05 m on a cast column and a weighted disc base, with a timber top and a brass edge band. The height a pool room drinks at. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-high-table-bfa5bc35","cdnUrl":"https://cdn.3dassets.dev/assets/33865/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-high-table-bfa5bc35","thumbnailUrl":"https://cdn.3dassets.dev/assets/33865/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33865/v1/poster.webp","blurhash":"U89GzBxt00IV}+ocA0ai~UoL9aWqS5ahadf$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17616,"triangles":384,"vertices":784,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499999940395355,0,-0.3499999940395355],"max":[0.3499999940395355,1.0499784073209137,0.3499999940395355]},"sizeMeters":[0.7,1.05,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:57.953Z","updatedAt":"2026-09-11T05:06:58.149Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33865/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HighPoseurTableBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33865/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33865/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33865/v1/model.glb\" alt=\"High Poseur Table (Bowling Alley and Pool Hall)\" 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/33865/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/33865/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33866","slug":"bowling-alley-and-pool-hall-bar-stool-fbffb1b6","title":"Bar Stool (Bowling Alley and Pool Hall)","summary":"A 0.76 m bar stool: a welded four leg frame with a brass foot ring, a crowned and welted magenta seat pad and a low back rest. The height of the high table and the bar counter.","description":"A 0.76 m bar stool: a welded four leg frame with a brass foot ring, a crowned and welted magenta seat pad and a low back rest. The height of the high table and the bar counter. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bar-stool-fbffb1b6","cdnUrl":"https://cdn.3dassets.dev/assets/33866/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bar-stool-fbffb1b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/33866/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33866/v1/poster.webp","blurhash":"U59Gg%gM00#D{CJ52k=gvLNFK$%3bpnikES~","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45912,"triangles":1066,"vertices":2247,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.25699999928474426,0,-0.25699999928474426],"max":[0.25699999928474426,1.0202176145481394,0.25699999928474426]},"sizeMeters":[0.514,1.02,0.514],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:58.821Z","updatedAt":"2026-09-11T05:06:58.929Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33866/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarStoolBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33866/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33866/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33866/v1/model.glb\" alt=\"Bar Stool (Bowling Alley and Pool Hall)\" 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/33866/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/33866/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33867","slug":"bowling-alley-and-pool-hall-shoe-hire-counter-07376aed","title":"Shoe Hire Counter with Pigeonholes (Bowling Alley and Pool Hall)","summary":"The counter a game starts at: a 2.3 m desk panelled in alternating magenta and teal with a timber top, a lit toe band, a till on a stand and a spray bottle, standing in front of a twenty hole pigeonhole rack loaded with pairs of hire shoes.","description":"The counter a game starts at: a 2.3 m desk panelled in alternating magenta and teal with a timber top, a lit toe band, a till on a stand and a spray bottle, standing in front of a twenty hole pigeonhole rack loaded with pairs of hire shoes. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-shoe-hire-counter-07376aed","cdnUrl":"https://cdn.3dassets.dev/assets/33867/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-shoe-hire-counter-07376aed","thumbnailUrl":"https://cdn.3dassets.dev/assets/33867/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33867/v1/poster.webp","blurhash":"U8B|1{}]00OGIAW9oxaM000eR#xt%O%OM{M_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":282076,"triangles":6944,"vertices":14579,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.000048837388668232506,-0.9611822717408147],"max":[1.2000000476837158,1.8999511387694739,0.39995118627747006]},"sizeMeters":[2.4,1.9,1.361],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:00.400Z","updatedAt":"2026-09-11T05:07:00.504Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33867/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoeHireCounterWithPigeonholesBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33867/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33867/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33867/v1/model.glb\" alt=\"Shoe Hire Counter with Pigeonholes (Bowling Alley and Pool Hall)\" 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/33867/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/33867/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33868","slug":"bowling-alley-and-pool-hall-arcade-cabinet-bff3a400","title":"Arcade Cabinet (Bowling Alley and Pool Hall)","summary":"A full size upright arcade cabinet in teal side art: a lit marquee over a bezelled screen, a control deck with a ball top joystick and six buttons, and a coin door in the front panel. 1.85 m tall.","description":"A full size upright arcade cabinet in teal side art: a lit marquee over a bezelled screen, a control deck with a ball top joystick and six buttons, and a coin door in the front panel. 1.85 m tall. Nothing on it moves: a cabinet is a fixed box and its screen content belongs to the consumer. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-arcade-cabinet-bff3a400","cdnUrl":"https://cdn.3dassets.dev/assets/33868/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-arcade-cabinet-bff3a400","thumbnailUrl":"https://cdn.3dassets.dev/assets/33868/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33868/v1/poster.webp","blurhash":"U46lui,[007Y~Xxv9EDirEcEW,mlQnRju3xt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61280,"triangles":1344,"vertices":2936,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.37999893674940105,0,-0.37100848104959033],"max":[0.37999893674940105,1.851199984550476,0.3899989272126579]},"sizeMeters":[0.76,1.851,0.761],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:59.541Z","updatedAt":"2026-09-11T05:06:59.712Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33868/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArcadeCabinetBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33868/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33868/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33868/v1/model.glb\" alt=\"Arcade Cabinet (Bowling Alley and Pool Hall)\" 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/33868/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/33868/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33869","slug":"bowling-alley-and-pool-hall-jukebox-15ed8fab","title":"Jukebox (Bowling Alley and Pool Hall)","summary":"A bubbler jukebox: a timber cabinet with a half round lit head, chrome bands following the arch, chrome pilasters, a record stack and a labelled disc behind the glass and a sloped selection panel with lettered buttons. The glazed front lifts on its top edge to load the records.","description":"A bubbler jukebox: a timber cabinet with a half round lit head, chrome bands following the arch, chrome pilasters, a record stack and a labelled disc behind the glass and a sloped selection panel with lettered buttons. The glazed front lifts on its top edge to load the records. The record stack and the transfer arm behind the glass are static, because a changer is a linkage rather than one rigid node. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: juke-front. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-jukebox-15ed8fab","cdnUrl":"https://cdn.3dassets.dev/assets/33869/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-jukebox-15ed8fab","thumbnailUrl":"https://cdn.3dassets.dev/assets/33869/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33869/v1/poster.webp","blurhash":"U7A]?8TK00mj~ptQ9GR64naJ%gx^4TRP%zyD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":81376,"triangles":1736,"vertices":3902,"meshes":9,"materials":8,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.49003033364409315,0,-0.31000213201351334],"max":[0.49003033364409315,1.5199999809265137,0.3774524838019724]},"sizeMeters":[0.98,1.52,0.687],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:06:59.765Z","updatedAt":"2026-09-11T05:06:59.865Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33869/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function JukeboxBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33869/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33869/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33869/v1/model.glb\" alt=\"Jukebox (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33869/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33869/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33870","slug":"bowling-alley-and-pool-hall-vending-machine-d892b716","title":"Drinks Vending Machine (Bowling Alley and Pool Hall)","summary":"A 1.95 m chilled vending machine: four shelves of cans and bottles behind a framed glass door, a lit keypad and coin slot down the right pilaster and a delivery flap at the bottom. The door swings open on its left stile.","description":"A 1.95 m chilled vending machine: four shelves of cans and bottles behind a framed glass door, a lit keypad and coin slot down the right pilaster and a delivery flap at the bottom. The door swings open on its left stile. Metre units, +Y up, the player side toward +Z, resting on y=0. Named pivoted nodes: vending-door. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-vending-machine-d892b716","cdnUrl":"https://cdn.3dassets.dev/assets/33870/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-vending-machine-d892b716","thumbnailUrl":"https://cdn.3dassets.dev/assets/33870/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33870/v1/poster.webp","blurhash":"U79Q:Y?v0000?dt8I9Ri8_IB%M?ubxWCacxs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":173732,"triangles":4096,"vertices":8754,"meshes":10,"materials":9,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5000717307256161,0,-0.40993729314279975],"max":[0.5000717307256161,1.9500000476837158,0.44901824201003204]},"sizeMeters":[1,1.95,0.859],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:01.808Z","updatedAt":"2026-09-11T05:07:01.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33870/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DrinksVendingMachineBowlingAlleyAndPoolHall(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/33870/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33870/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33870/v1/model.glb\" alt=\"Drinks Vending Machine (Bowling Alley and Pool Hall)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/33870/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/33870/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"33871","slug":"bowling-alley-and-pool-hall-bar-counter-section-42b3060a","title":"Bar Counter Section (Bowling Alley and Pool Hall)","summary":"A 1.8 m bar counter section: a panelled timber front on a frame carcass with a brass nosing, a foot rail on two standoffs, a drip tray and a two tap keg font on the deck. Counter top at 1.06 m, the height of the bar stool.","description":"A 1.8 m bar counter section: a panelled timber front on a frame carcass with a brass nosing, a foot rail on two standoffs, a drip tray and a two tap keg font on the deck. Counter top at 1.06 m, the height of the bar stool. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bar-counter-section-42b3060a","cdnUrl":"https://cdn.3dassets.dev/assets/33871/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bar-counter-section-42b3060a","thumbnailUrl":"https://cdn.3dassets.dev/assets/33871/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33871/v1/poster.webp","blurhash":"U3BfkV}?009Y};?cE10K00JV~AIn0ke+%NI:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49648,"triangles":1076,"vertices":2415,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000011137223921854622,-0.3399548236002479],"max":[0.8999999761581421,1.4599996575122787,0.48299296007297493]},"sizeMeters":[1.8,1.46,0.823],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:01.285Z","updatedAt":"2026-09-11T05:07:01.381Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33871/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BarCounterSectionBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33871/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33871/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33871/v1/model.glb\" alt=\"Bar Counter Section (Bowling Alley and Pool Hall)\" 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/33871/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/33871/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33872","slug":"bowling-alley-and-pool-hall-drinks-tray-ee62e2d6","title":"Drinks Tray with Glasses (Bowling Alley and Pool Hall)","summary":"A service tray carried back to a lane: three tumblers and a stemmed glass, each lathed up the outside and back down the inside so it has a real opening, plus a can, on a rubber lined tray.","description":"A service tray carried back to a lane: three tumblers and a stemmed glass, each lathed up the outside and back down the inside so it has a real opening, plus a can, on a rubber lined tray. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-drinks-tray-ee62e2d6","cdnUrl":"https://cdn.3dassets.dev/assets/33872/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-drinks-tray-ee62e2d6","thumbnailUrl":"https://cdn.3dassets.dev/assets/33872/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33872/v1/poster.webp","blurhash":"U9AARHt800jFtRt7MxM{00WB~XNGIBM{.8%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51228,"triangles":1240,"vertices":2506,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2240000069141388,0.000007262075018662356,-0.16399915054384562],"max":[0.2240000069141388,0.1960022577042848,0.16399915054384562]},"sizeMeters":[0.448,0.196,0.328],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:01.496Z","updatedAt":"2026-09-11T05:07:01.586Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33872/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrinksTrayWithGlassesBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33872/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33872/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33872/v1/model.glb\" alt=\"Drinks Tray with Glasses (Bowling Alley and Pool Hall)\" 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/33872/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/33872/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33873","slug":"bowling-alley-and-pool-hall-snack-basket-13216285","title":"Snack Basket (Bowling Alley and Pool Hall)","summary":"A lined snack basket of fries with a dip pot in the corner, the food a bowling alley actually serves. 240 mm across, so it sits on a divider table or a high table.","description":"A lined snack basket of fries with a dip pot in the corner, the food a bowling alley actually serves. 240 mm across, so it sits on a divider table or a high table. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-snack-basket-13216285","cdnUrl":"https://cdn.3dassets.dev/assets/33873/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-snack-basket-13216285","thumbnailUrl":"https://cdn.3dassets.dev/assets/33873/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33873/v1/poster.webp","blurhash":"U8EUl.^l00InyV%2rwM{009?~pkBHZ9ZKatj","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70776,"triangles":1744,"vertices":3539,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1379999965429306,-0.000003888680323561877,-0.10300619267699199],"max":[0.1379999965429306,0.11555382846741363,0.10300619267699199]},"sizeMeters":[0.276,0.116,0.206],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:02.011Z","updatedAt":"2026-09-11T05:07:02.106Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33873/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SnackBasketBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33873/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33873/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33873/v1/model.glb\" alt=\"Snack Basket (Bowling Alley and Pool Hall)\" 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/33873/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/33873/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33874","slug":"bowling-alley-and-pool-hall-neon-wall-sign-c0d20cba","title":"Neon Wall Sign (Bowling Alley and Pool Hall)","summary":"The lit sign over a bowling alley counter: two pins and a ball drawn in glowing tube with speed strokes behind them, on a dark backing plate with chrome stand-offs. 1.7 m across.","description":"The lit sign over a bowling alley counter: two pins and a ball drawn in glowing tube with speed strokes behind them, on a dark backing plate with chrome stand-offs. 1.7 m across. The origin is the centre of the plate, which is the wall face, so the sign hangs at whatever height a room wants. The tubes carry no wording. Metre units, +Y up, the player side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-neon-wall-sign-c0d20cba","cdnUrl":"https://cdn.3dassets.dev/assets/33874/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-neon-wall-sign-c0d20cba","thumbnailUrl":"https://cdn.3dassets.dev/assets/33874/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33874/v1/poster.webp","blurhash":"U7AdD:%#4,rE.8_4s;In00rt?JX,iwROX5%3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38804,"triangles":1204,"vertices":2797,"meshes":11,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.8500000238418579,-0.38996705094804684,-0.05000686773858485],"max":[0.8500000238418579,0.38996705094804684,0.05799273579765196]},"sizeMeters":[1.7,0.78,0.108],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:02.966Z","updatedAt":"2026-09-11T05:07:03.066Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33874/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NeonWallSignBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33874/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33874/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33874/v1/model.glb\" alt=\"Neon Wall Sign (Bowling Alley and Pool Hall)\" 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/33874/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/33874/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33875","slug":"bowling-alley-and-pool-hall-carpet-floor-module-6fd93cda","title":"Patterned Carpet Floor Module (Bowling Alley and Pool Hall)","summary":"A 2 m carpet module in the bold house pattern: four magenta arrowheads chasing round a cream ring on deep indigo, with green flecks between them. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric.","description":"A 2 m carpet module in the bold house pattern: four magenta arrowheads chasing round a cream ring on deep indigo, with green flecks between them. Modules tile on a 2 m grid in any rotation, because the pattern is four way symmetric. Ports carpet-left, carpet-right, carpet-front and carpet-back sit at the module edge midpoints at half thickness. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-carpet-floor-module-6fd93cda","cdnUrl":"https://cdn.3dassets.dev/assets/33875/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-carpet-floor-module-6fd93cda","thumbnailUrl":"https://cdn.3dassets.dev/assets/33875/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33875/v1/poster.webp","blurhash":"U67U3?t90JW=t9fkWAf800Ri^-n}Imf6s;bE","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":40072,"triangles":872,"vertices":1953,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000010071331644496972,-1],"max":[1,0.02268244422225598,1]},"sizeMeters":[2,0.023,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:03.161Z","updatedAt":"2026-09-11T05:07:03.359Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33875/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatternedCarpetFloorModuleBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33875/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33875/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33875/v1/model.glb\" alt=\"Patterned Carpet Floor Module (Bowling Alley and Pool Hall)\" 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/33875/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/33875/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33876","slug":"bowling-alley-and-pool-hall-plain-floor-module-4400d627","title":"Plain Floor Module (Bowling Alley and Pool Hall)","summary":"The same 2 m module in plain indigo carpet with no pattern, for the run behind the approach and under the machines where a pattern would fight with the lane wood.","description":"The same 2 m module in plain indigo carpet with no pattern, for the run behind the approach and under the machines where a pattern would fight with the lane wood. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-plain-floor-module-4400d627","cdnUrl":"https://cdn.3dassets.dev/assets/33876/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-plain-floor-module-4400d627","thumbnailUrl":"https://cdn.3dassets.dev/assets/33876/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33876/v1/poster.webp","blurhash":"U46a*,t94mkCt9fiWnja00Rh-@WAIljcn%bF","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":3824,"triangles":64,"vertices":142,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.000010071331644496972,-1],"max":[1,0.02001007088460966,1]},"sizeMeters":[2,0.02,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:03.580Z","updatedAt":"2026-09-11T05:07:03.682Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33876/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlainFloorModuleBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33876/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33876/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33876/v1/model.glb\" alt=\"Plain Floor Module (Bowling Alley and Pool Hall)\" 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/33876/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/33876/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33877","slug":"bowling-alley-and-pool-hall-wall-panel-module-2473be30","title":"Wall Panel Module (Bowling Alley and Pool Hall)","summary":"A 2 m by 2.6 m wall module: a dark panel with a timber dado below an accent band, vertical battens above it and a skirting along the floor. Panels butt on the 2 m module with a 4 mm shadow gap at each joint.","description":"A 2 m by 2.6 m wall module: a dark panel with a timber dado below an accent band, vertical battens above it and a skirting along the floor. Panels butt on the 2 m module with a 4 mm shadow gap at each joint. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-wall-panel-module-2473be30","cdnUrl":"https://cdn.3dassets.dev/assets/33877/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-wall-panel-module-2473be30","thumbnailUrl":"https://cdn.3dassets.dev/assets/33877/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33877/v1/poster.webp","blurhash":"U89jM_?H00E1NGoes:M|9uM{w]xZ~A-pEiE2","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":34092,"triangles":768,"vertices":1714,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.9991999864578247,0,-0.09998931743314418],"max":[0.9991999864578247,2.602048635482788,0.030934942876995993]},"sizeMeters":[1.998,2.602,0.131],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:03.731Z","updatedAt":"2026-09-11T05:07:03.904Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33877/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallPanelModuleBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33877/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33877/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33877/v1/model.glb\" alt=\"Wall Panel Module (Bowling Alley and Pool Hall)\" 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/33877/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/33877/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33878","slug":"bowling-alley-and-pool-hall-bench-seating-run-cb58ccd2","title":"Bench Seating Run (Bowling Alley and Pool Hall)","summary":"A 1.8 m bench of moulded seating: a crowned and welted magenta pad on a welded frame with a tipped back rest, for the row behind an approach. Runs butt end to end.","description":"A 1.8 m bench of moulded seating: a crowned and welted magenta pad on a welded frame with a tipped back rest, for the row behind an approach. Runs butt end to end. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bench-seating-run-cb58ccd2","cdnUrl":"https://cdn.3dassets.dev/assets/33878/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bench-seating-run-cb58ccd2","thumbnailUrl":"https://cdn.3dassets.dev/assets/33878/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33878/v1/poster.webp","blurhash":"UKDkv5Sz5ObF}IxbE_I.0c,Js;J55%r?#rNZ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"}],"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":43872,"triangles":1004,"vertices":2186,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8799999952316284,0.000011152352463655868,-0.2631201799478603],"max":[0.8799999952316284,0.8385213328356651,0.24996572254698507]},"sizeMeters":[1.76,0.839,0.513],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:04.587Z","updatedAt":"2026-09-11T05:07:04.679Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33878/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BenchSeatingRunBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33878/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33878/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33878/v1/model.glb\" alt=\"Bench Seating Run (Bowling Alley and Pool Hall)\" 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/33878/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/33878/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33879","slug":"bowling-alley-and-pool-hall-litter-bin-dbd9bb67","title":"Litter Bin (Bowling Alley and Pool Hall)","summary":"A 0.76 m open top litter bin: a charcoal drum with a magenta band and a chrome rim, with the sack liner turned over the rim the way a cleaned one is.","description":"A 0.76 m open top litter bin: a charcoal drum with a magenta band and a chrome rim, with the sack liner turned over the rim the way a cleaned one is. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-litter-bin-dbd9bb67","cdnUrl":"https://cdn.3dassets.dev/assets/33879/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-litter-bin-dbd9bb67","thumbnailUrl":"https://cdn.3dassets.dev/assets/33879/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33879/v1/poster.webp","blurhash":"U37-mH?v0000~SV[4rtQjDRjS3xu%0oKRpS3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23844,"triangles":528,"vertices":1070,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.19949999451637268,0,-0.19648012704971046],"max":[0.19949999451637268,0.7799963423014815,0.19648012704971046]},"sizeMeters":[0.399,0.78,0.393],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:05.215Z","updatedAt":"2026-09-11T05:07:05.307Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33879/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LitterBinBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33879/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33879/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33879/v1/model.glb\" alt=\"Litter Bin (Bowling Alley and Pool Hall)\" 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/33879/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/33879/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33880","slug":"bowling-alley-and-pool-hall-cleaning-kit-de7accdf","title":"Lane Cleaning Kit (Bowling Alley and Pool Hall)","summary":"The kit that keeps a house running: a mop bucket on castors with a wringer and a mop standing in it, and a lane duster leaning beside it. Everything is rigid geometry; the mop head and the duster pad do not flex.","description":"The kit that keeps a house running: a mop bucket on castors with a wringer and a mop standing in it, and a lane duster leaning beside it. Everything is rigid geometry; the mop head and the duster pad do not flex. Metre units, +Y up, the player side toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-cleaning-kit-de7accdf","cdnUrl":"https://cdn.3dassets.dev/assets/33880/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-cleaning-kit-de7accdf","thumbnailUrl":"https://cdn.3dassets.dev/assets/33880/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33880/v1/poster.webp","blurhash":"U78p.Z]V002-9XTE?Iz[0wNs-p$l}w,^9rAS","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30840,"triangles":616,"vertices":1313,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.27579013770439076,-8.842713861839657e-7,-0.213961206153748],"max":[0.6736087690270642,1.3648905754089355,0.16999237345638507]},"sizeMeters":[0.949,1.365,0.384],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:05.343Z","updatedAt":"2026-09-11T05:07:05.706Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33880/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaneCleaningKitBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33880/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33880/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33880/v1/model.glb\" alt=\"Lane Cleaning Kit (Bowling Alley and Pool Hall)\" 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/33880/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/33880/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33881","slug":"bowling-alley-and-pool-hall-ceiling-light-bar-7e990452","title":"Ceiling Light Bar (Bowling Alley and Pool Hall)","summary":"A 2.4 m linear light bar on two drop rods, with a glowing cyan tube in a charcoal channel. The run of them over the lanes is what gives an alley its colour.","description":"A 2.4 m linear light bar on two drop rods, with a glowing cyan tube in a charcoal channel. The run of them over the lanes is what gives an alley its colour. The origin sits at the centre of the two mounting plates at the top, because the bar hangs from a ceiling rather than standing on the floor. The fixture emits through its material only; there is no light node in the file. Metre units, +Y up, the player side toward +Z. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-ceiling-light-bar-7e990452","cdnUrl":"https://cdn.3dassets.dev/assets/33881/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-ceiling-light-bar-7e990452","thumbnailUrl":"https://cdn.3dassets.dev/assets/33881/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33881/v1/poster.webp","blurhash":"U78ESgj]ITtQ9E.8x]M{00IAx^tR_4Di8_t8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19176,"triangles":496,"vertices":1122,"meshes":8,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000030585564019,-0.5600642371649533,-0.08000001311302185],"max":[1.2000030585564019,3.070477899332069e-7,0.08000001311302185]},"sizeMeters":[2.4,0.56,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:05.485Z","updatedAt":"2026-09-11T05:07:05.729Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33881/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CeilingLightBarBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33881/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33881/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33881/v1/model.glb\" alt=\"Ceiling Light Bar (Bowling Alley and Pool Hall)\" 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/33881/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/33881/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33882","slug":"bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","title":"Bowling Alley and Pool Hall Floor (Bowling Alley and Pool Hall)","summary":"Four lanes laid on the real 1.524 m pitch with their approaches, gutters, bumpered childrens lane, pin decks racked and ready and the pinsetters standing behind them, ball returns and loaded racks between the lanes, divider seating with scoring screens on the approach, the...","description":"Four lanes laid on the real 1.524 m pitch with their approaches, gutters, bumpered childrens lane, pin decks racked and ready and the pinsetters standing behind them, ball returns and loaded racks between the lanes, divider seating with scoring screens on the approach, the shoe hire counter and a run of bench seating behind it, and beyond a bench divider the pool hall: two nine foot tables racked to break, cue racks, a dartboard on its oche, high tables and stools, the bar counter and the jukebox, arcade cabinet and vending machine along the back wall under the neon. Magenta and teal alternate down the room, lane by lane and bench by bench, over the navy shells and the bold carpet.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/33882/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-bowling-alle-4f825364-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/33882/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33882/v1/poster.webp","blurhash":"U58X2_%200RpaZWBa+kD00Io_3t0XFt7t0ae","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2747944,"triangles":79062,"vertices":177378,"meshes":262,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-8.099989317433144,-0.000010071331644496972,-11.669015647348218],"max":[9.099999976158143,3.50000030704779,7]},"sizeMeters":[17.2,3.5,18.669],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:08.142Z","updatedAt":"2026-09-11T05:07:08.252Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33882/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BowlingAlleyAndPoolHallFloorBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33882/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33882/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33882/v1/model.glb\" alt=\"Bowling Alley and Pool Hall Floor (Bowling Alley and Pool Hall)\" 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/33882/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/33882/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"33883","slug":"bowling-alley-and-pool-hall-pool-and-darts-corner-534c9d7a","title":"Pool and Darts Corner (Bowling Alley and Pool Hall)","summary":"The pool end on its own: two nine foot tables, one racked and ready and one with a cue on the cloth, a wall cue rack and a scoreboard, a dartboard cabinet with its oche at the regulation 2.37 m, the bar counter with stools at it, high tables with drinks and a basket, the...","description":"The pool end on its own: two nine foot tables, one racked and ready and one with a cue on the cloth, a wall cue rack and a scoreboard, a dartboard cabinet with its oche at the regulation 2.37 m, the bar counter with stools at it, high tables with drinks and a basket, the jukebox, arcade cabinet and vending machine along the panelled back wall under the neon, and a bench run, a litter bin and the cleaning kit on the patterned carpet.","status":"published","url":"https://3dassets.dev/assets/bowling-alley-and-pool-hall-pool-and-darts-corner-534c9d7a","cdnUrl":"https://cdn.3dassets.dev/assets/33883/v1/model.glb","downloadUrl":"https://3dassets.dev/download/bowling-alley-and-pool-hall-pool-and-darts-corner-534c9d7a","thumbnailUrl":"https://cdn.3dassets.dev/assets/33883/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/33883/v1/poster.webp","blurhash":"U88;Dhnn4moxoDWARqa#00bqx^V@tDt8t0n*","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1358584,"triangles":37502,"vertices":82444,"meshes":169,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-5.0999893174331445,-0.000010071331644496972,-5.499989317433145],"max":[5.2999999761581424,3.50000030704779,5]},"sizeMeters":[10.4,3.5,10.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T05:07:08.231Z","updatedAt":"2026-09-11T05:07:08.323Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/33883/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoolAndDartsCornerBowlingAlleyAndPoolHall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/33883/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/33883/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/33883/v1/model.glb\" alt=\"Pool and Darts Corner (Bowling Alley and Pool Hall)\" 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/33883/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/33883/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"bowling-alley-and-pool-hall","title":"Bowling Alley and Pool Hall","url":"https://3dassets.dev/demos/bowling-alley-and-pool-hall"}}}