{"data":{"id":194,"slug":"squash-club-and-racket-workshop","title":"Squash Club and Racket Workshop","summary":"Fifty premium court, racket servicing, spectator and club interior designs.","description":"Original singles squash enclosure and furnished roofed club with glazed rear viewing, stringing workshop, reception and changing facilities. Metres, +Y up, +Z forward. Court dimensions are visual modelling references, not certified facility construction guidance. Static geometry without animation, collision or live scoring.","url":"https://3dassets.dev/packs/squash-club-and-racket-workshop","coverUrl":"https://cdn.3dassets.dev/assets/29786/v1/poster.webp","assetCount":51,"aiGenerated":true,"aiGeneratedAssetCount":51,"aiModels":["GPT-6"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":6898104,"totalTriangles":429336,"starterScene":{"id":"29786","slug":"squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","title":"Singles Court and Club Workshop (Squash Club and Racket Workshop)","summary":"Enclosed singles court opens visually through a glazed rear into sheltered spectator access and a roofed club with reception, racket servicing, changing facilities and training corner.","description":"Enclosed singles court opens visually through a glazed rear into sheltered spectator access and a roofed club with reception, racket servicing, changing facilities and training corner.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/29786/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/29786/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29786/v1/poster.webp","blurhash":"U6CQ0*S*00~qs:DitR-=00Vq~q9GIU_3V?IT","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":3086792,"triangles":212140,"vertices":147632,"meshes":161,"materials":16,"textures":0,"animations":[],"boundingBox":{"min":[-9.100000381469727,0.00003739097167709815,-12.149999904632569],"max":[9.100000381469727,5.405218467709592,8.3280286049244]},"sizeMeters":[18.2,5.405,20.478],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:47.869Z","updatedAt":"2026-09-08T04:20:47.974Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29786/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SinglesCourtAndClubWorkshopSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29786/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29786/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29786/v1/model.glb\" alt=\"Singles Court and Club Workshop (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29786/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/29786/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"29735","slug":"squash-club-and-racket-workshop-complete-squash-court--76f10edb","title":"Complete Squash Court Shell (Squash Club and Racket Workshop)","summary":"Complete four-wall roofed squash enclosure with9.75×6.40m clear playing surfaces, marked maple floor, white front and sidewalls, thick glazed rear and integral door. Front/rear out-lines4.57m/2.13m above playing surface. Model proportions only; no facility certification.","description":"Complete four-wall roofed squash enclosure with9.75×6.40m clear playing surfaces, marked maple floor, white front and sidewalls, thick glazed rear and integral door. Front/rear out-lines4.57m/2.13m above playing surface. Model proportions only; no facility certification. Dimensions 6.80 × 5.41 × 10.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-complete-squash-court--76f10edb","cdnUrl":"https://cdn.3dassets.dev/assets/29735/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-complete-squash-court--76f10edb","thumbnailUrl":"https://cdn.3dassets.dev/assets/29735/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29735/v1/poster.webp","blurhash":"U6HLk~k700?cyZ01en_300%24n9F=^xt9Fx]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":422672,"triangles":23852,"vertices":17075,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-3.4002669091649165,0.00003739097167709815,-5.099999904632568],"max":[3.4002669091649165,5.405218467709592,5.099999904632568]},"sizeMeters":[6.801,5.405,10.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:23.151Z","updatedAt":"2026-09-08T04:20:23.262Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29735/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompleteSquashCourtShellSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29735/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29735/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29735/v1/model.glb\" alt=\"Complete Squash Court Shell (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29735/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/29735/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29737","slug":"squash-club-and-racket-workshop-court-back-glass-wall-10d7e508","title":"Court Back Glass Wall (Squash Club and Racket Workshop)","summary":"Independent thick glass court rear module with four clamp plates, structural posts and rear out-line.","description":"Independent thick glass court rear module with four clamp plates, structural posts and rear out-line. Dimensions 3.30 × 2.25 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-court-back-glass-wall-10d7e508","cdnUrl":"https://cdn.3dassets.dev/assets/29737/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-court-back-glass-wall-10d7e508","thumbnailUrl":"https://cdn.3dassets.dev/assets/29737/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29737/v1/poster.webp","blurhash":"UPJ[9hxu00afxG?bbv9F00ae~qbbkWaee.oz","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":47608,"triangles":2528,"vertices":1842,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.649999976158142,-0.000043472619562834325,-0.04300007483279794],"max":[1.649999976158142,2.250043472619563,0.04303540046795774]},"sizeMeters":[3.3,2.25,0.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:22.330Z","updatedAt":"2026-09-08T04:20:22.426Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29737/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtBackGlassWallSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29737/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29737/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29737/v1/model.glb\" alt=\"Court Back Glass Wall (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29737/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/29737/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29738","slug":"squash-club-and-racket-workshop-glass-access-door-25ef9205","title":"Glass Access Door (Squash Club and Racket Workshop)","summary":"Flush glass access door with twin patch hinges and compact pull, static closed leaf.","description":"Flush glass access door with twin patch hinges and compact pull, static closed leaf. Dimensions 0.96 × 2.10 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-glass-access-door-25ef9205","cdnUrl":"https://cdn.3dassets.dev/assets/29738/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-glass-access-door-25ef9205","thumbnailUrl":"https://cdn.3dassets.dev/assets/29738/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29738/v1/poster.webp","blurhash":"UBHC1R%M00D$%M%MM{9F00WB~qofogogWAM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":46884,"triangles":2528,"vertices":1846,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4799294804480419,0,-0.042449108289217795],"max":[0.4799294804480419,2.0999999046325684,0.042449108289217795]},"sizeMeters":[0.96,2.1,0.085],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:22.390Z","updatedAt":"2026-09-08T04:20:22.479Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29738/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GlassAccessDoorSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29738/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29738/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29738/v1/model.glb\" alt=\"Glass Access Door (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29738/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/29738/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29739","slug":"squash-club-and-racket-workshop-court-service-line-pan-76941a93","title":"Court Service Line Panel (Squash Club and Racket Workshop)","summary":"White front-wall service-line panel with recessed perimeter and proud red line; a separate replacement panel.","description":"White front-wall service-line panel with recessed perimeter and proud red line; a separate replacement panel. Dimensions 3.20 × 2.20 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-court-service-line-pan-76941a93","cdnUrl":"https://cdn.3dassets.dev/assets/29739/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-court-service-line-pan-76941a93","thumbnailUrl":"https://cdn.3dassets.dev/assets/29739/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29739/v1/poster.webp","blurhash":"UIJ8R@%M00t7%2~qozD%00e.-;WVg3jZV@M{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":12516,"triangles":600,"vertices":426,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.600000023841858,0.00006409632143511423,-0.0659627692954308],"max":[1.600000023841858,2.1999359513622805,0.06604653965570034]},"sizeMeters":[3.2,2.2,0.132],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:23.914Z","updatedAt":"2026-09-08T04:20:24.007Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29739/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtServiceLinePanelSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29739/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29739/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29739/v1/model.glb\" alt=\"Court Service Line Panel (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29739/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/29739/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29740","slug":"squash-club-and-racket-workshop-tin-lower-wall-panel-e77e367f","title":"Tin Lower Wall Panel (Squash Club and Racket Workshop)","summary":"Lower front-wall tin panel with ribbed sheet, rolled top edge and coloured boundary.","description":"Lower front-wall tin panel with ribbed sheet, rolled top edge and coloured boundary. Dimensions 3.20 × 0.50 × 0.06 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-tin-lower-wall-panel-e77e367f","cdnUrl":"https://cdn.3dassets.dev/assets/29740/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-tin-lower-wall-panel-e77e367f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29740/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29740/v1/poster.webp","blurhash":"U7ASup%2Iot7[;~CkWRj00+u=|R+700K+b%2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":93212,"triangles":5400,"vertices":3848,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.600000023841858,-0.000046397075791487774,-0.028539903525429174],"max":[1.601199984550476,0.49992248745512424,0.02848606779029375]},"sizeMeters":[3.201,0.5,0.057],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:23.969Z","updatedAt":"2026-09-08T04:20:24.062Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29740/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TinLowerWallPanelSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29740/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29740/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29740/v1/model.glb\" alt=\"Tin Lower Wall Panel (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29740/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/29740/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29741","slug":"squash-club-and-racket-workshop-court-floor-section-a83e290d","title":"Court Floor Section (Squash Club and Racket Workshop)","summary":"Thick maple playing-floor section with sixteen board seams and finished edge.","description":"Thick maple playing-floor section with sixteen board seams and finished edge. Dimensions 3.20 × 0.12 × 3.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-court-floor-section-a83e290d","cdnUrl":"https://cdn.3dassets.dev/assets/29741/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-court-floor-section-a83e290d","thumbnailUrl":"https://cdn.3dassets.dev/assets/29741/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29741/v1/poster.webp","blurhash":"U9E2|E-p00RR%MayR*s:00Io~WbX9GoLoMNG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":90820,"triangles":5100,"vertices":3638,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.6000053407391583,0.00009216455751300673,-1.625],"max":[1.6000053407391583,0.12497149539596576,1.625]},"sizeMeters":[3.2,0.125,3.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:24.781Z","updatedAt":"2026-09-08T04:20:24.887Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29741/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtFloorSectionSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29741/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29741/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29741/v1/model.glb\" alt=\"Court Floor Section (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29741/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/29741/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29742","slug":"squash-club-and-racket-workshop-viewing-balcony-a5d392f1","title":"Viewing Balcony (Squash Club and Racket Workshop)","summary":"Ground-level viewing gallery deck with side guard panels and contrasting edge trim, wide open front/rear access.","description":"Ground-level viewing gallery deck with side guard panels and contrasting edge trim, wide open front/rear access. Dimensions 8.00 × 1.25 × 2.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-viewing-balcony-a5d392f1","cdnUrl":"https://cdn.3dassets.dev/assets/29742/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-viewing-balcony-a5d392f1","thumbnailUrl":"https://cdn.3dassets.dev/assets/29742/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29742/v1/poster.webp","blurhash":"U7BDZv?H00XA9H_3%gD*004:~p%L~o004o?a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":39056,"triangles":2100,"vertices":1484,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-4,-0.00019760436862484299,-1.0201727347636342],"max":[4,1.2498214696997976,1.0201727347636342]},"sizeMeters":[8,1.25,2.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:24.906Z","updatedAt":"2026-09-08T04:20:25.016Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29742/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ViewingBalconySquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29742/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29742/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29742/v1/model.glb\" alt=\"Viewing Balcony (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29742/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/29742/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29743","slug":"squash-club-and-racket-workshop-spectator-bench-a0c34c27","title":"Spectator Bench (Squash Club and Racket Workshop)","summary":"Four-slat spectator bench with padded backboard, metal uprights and braced feet.","description":"Four-slat spectator bench with padded backboard, metal uprights and braced feet. Dimensions 1.80 × 0.85 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-spectator-bench-a0c34c27","cdnUrl":"https://cdn.3dassets.dev/assets/29743/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-spectator-bench-a0c34c27","thumbnailUrl":"https://cdn.3dassets.dev/assets/29743/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29743/v1/poster.webp","blurhash":"UCCjIfxV4TxayZ?bivIT00OH?GROI90NNy$_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":92160,"triangles":5100,"vertices":3616,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,-0.000032120409913077505,-0.251236844537394],"max":[0.8999999761581421,0.8511876321772067,0.250030056922963]},"sizeMeters":[1.8,0.851,0.501],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:25.595Z","updatedAt":"2026-09-08T04:20:25.690Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29743/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpectatorBenchSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29743/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29743/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29743/v1/model.glb\" alt=\"Spectator Bench (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29743/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/29743/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29744","slug":"squash-club-and-racket-workshop-referee-stand-bb42e339","title":"Referee Stand (Squash Club and Racket Workshop)","summary":"Raised referee seat with four-step access ladder, braced frame and back support.","description":"Raised referee seat with four-step access ladder, braced frame and back support. Dimensions 0.60 × 1.55 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-referee-stand-bb42e339","cdnUrl":"https://cdn.3dassets.dev/assets/29744/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-referee-stand-bb42e339","thumbnailUrl":"https://cdn.3dassets.dev/assets/29744/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29744/v1/poster.webp","blurhash":"U9A106xu00D*_4V@9Eo~4;V?-ntm59ad?Eo#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":112928,"triangles":6300,"vertices":4464,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.30000001192092896,1.862645593320167e-10,-0.32750991369323706],"max":[0.30000001192092896,1.549990799472545,0.32747389471435673]},"sizeMeters":[0.6,1.55,0.655],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:25.638Z","updatedAt":"2026-09-08T04:20:25.732Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29744/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RefereeStandSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29744/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29744/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29744/v1/model.glb\" alt=\"Referee Stand (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29744/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/29744/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29745","slug":"squash-club-and-racket-workshop-scoreboard-82fd1ad8","title":"Scoreboard (Squash Club and Racket Workshop)","summary":"Wall scoreboard with raised seven-segment match score11:07; no live electronics.","description":"Wall scoreboard with raised seven-segment match score11:07; no live electronics. Dimensions 1.30 × 0.55 × 0.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-scoreboard-82fd1ad8","cdnUrl":"https://cdn.3dassets.dev/assets/29745/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-scoreboard-82fd1ad8","thumbnailUrl":"https://cdn.3dassets.dev/assets/29745/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29745/v1/poster.webp","blurhash":"U85PRgo4M}t9%$yGnQahM^x^r;V?Vst-b_VW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":81172,"triangles":4500,"vertices":3208,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6499999761581421,0.000038927145558975695,-0.07398718232048218],"max":[0.6499999761581421,0.54996108477537,0.07402046765025569]},"sizeMeters":[1.3,0.55,0.148],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:26.453Z","updatedAt":"2026-09-08T04:20:26.550Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29745/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScoreboardSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29745/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29745/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29745/v1/model.glb\" alt=\"Scoreboard (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29745/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/29745/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29746","slug":"squash-club-and-racket-workshop-score-control-desk-6643e2c9","title":"Score Control Desk (Squash Club and Racket Workshop)","summary":"Scorekeeper desk with enclosed tabletop control keypad and cross-braced maple worktop.","description":"Scorekeeper desk with enclosed tabletop control keypad and cross-braced maple worktop. Dimensions 1.50 × 0.83 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-score-control-desk-6643e2c9","cdnUrl":"https://cdn.3dassets.dev/assets/29746/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-score-control-desk-6643e2c9","thumbnailUrl":"https://cdn.3dassets.dev/assets/29746/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29746/v1/poster.webp","blurhash":"UMDl=+%LD%R.~p%MM{M|9FxuoeM{4oWCxujY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":73684,"triangles":4200,"vertices":2982,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0.000006704138244051361,-0.3499481185338908],"max":[0.75,0.8330040245390565,0.3499481185338908]},"sizeMeters":[1.5,0.833,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:26.581Z","updatedAt":"2026-09-08T04:20:26.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29746/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScoreControlDeskSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29746/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29746/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29746/v1/model.glb\" alt=\"Score Control Desk (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29746/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/29746/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29747","slug":"squash-club-and-racket-workshop-shot-timer-691632d3","title":"Shot Timer (Squash Club and Racket Workshop)","summary":"Compact seven-segment20-second training timer with thick enclosure and inset display.","description":"Compact seven-segment20-second training timer with thick enclosure and inset display. Dimensions 0.40 × 0.32 × 0.13 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-shot-timer-691632d3","cdnUrl":"https://cdn.3dassets.dev/assets/29747/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-shot-timer-691632d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29747/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29747/v1/poster.webp","blurhash":"U96IdRwI8^TL%%tTR4ROOqXom*ZzsltmS$Q,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":70368,"triangles":3900,"vertices":2758,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.20000000298023224,-0.000008551143245105752,-0.06250762962748269],"max":[0.20000000298023224,0.32000854399068773,0.06249197441214251]},"sizeMeters":[0.4,0.32,0.125],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:27.227Z","updatedAt":"2026-09-08T04:20:27.347Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29747/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShotTimerSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29747/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29747/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29747/v1/model.glb\" alt=\"Shot Timer (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29747/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/29747/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29748","slug":"squash-club-and-racket-workshop-court-lamp-c894ebbc","title":"Court Lamp (Squash Club and Racket Workshop)","summary":"Linear enclosed court luminaire with diffusing lens, end caps and twin mounting brackets.","description":"Linear enclosed court luminaire with diffusing lens, end caps and twin mounting brackets. Dimensions 1.20 × 0.22 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-court-lamp-c894ebbc","cdnUrl":"https://cdn.3dassets.dev/assets/29748/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-court-lamp-c894ebbc","thumbnailUrl":"https://cdn.3dassets.dev/assets/29748/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29748/v1/poster.webp","blurhash":"U9BM}Y%M00t8xt?vozIA00Ri~qRjIV00V@_3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":22792,"triangles":1200,"vertices":848,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.0000034407830330762668,-0.1249549901637879],"max":[0.6000000238418579,0.2250034348225686,0.1249549901637879]},"sizeMeters":[1.2,0.225,0.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:27.304Z","updatedAt":"2026-09-08T04:20:27.397Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29748/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtLampSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29748/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29748/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29748/v1/model.glb\" alt=\"Court Lamp (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29748/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/29748/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29749","slug":"squash-club-and-racket-workshop-ventilation-diffuser-06f78dc3","title":"Ventilation Diffuser (Squash Club and Racket Workshop)","summary":"Rectangular ventilation grille with nine separated directional slats and perimeter frame.","description":"Rectangular ventilation grille with nine separated directional slats and perimeter frame. Dimensions 0.60 × 0.08 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-ventilation-diffuser-06f78dc3","cdnUrl":"https://cdn.3dassets.dev/assets/29749/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-ventilation-diffuser-06f78dc3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29749/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29749/v1/poster.webp","blurhash":"U5Csp#?b00t7NH~q%M9F00D%.8V@=|004o%N","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":54324,"triangles":3000,"vertices":2140,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0.000006407024599475175,-0.150022894843481],"max":[0.30000001192092896,0.08398461721032138,0.150022894843481]},"sizeMeters":[0.6,0.084,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:28.077Z","updatedAt":"2026-09-08T04:20:28.172Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29749/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VentilationDiffuserSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29749/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29749/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29749/v1/model.glb\" alt=\"Ventilation Diffuser (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29749/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/29749/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29750","slug":"squash-club-and-racket-workshop-court-cleaning-mop-4a5fb47e","title":"Court Cleaning Mop (Squash Club and Racket Workshop)","summary":"Wide court mop with microfibre pad, metal pole and rubber grip.","description":"Wide court mop with microfibre pad, metal pole and rubber grip. Dimensions 0.62 × 1.28 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-court-cleaning-mop-4a5fb47e","cdnUrl":"https://cdn.3dassets.dev/assets/29750/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-court-cleaning-mop-4a5fb47e","thumbnailUrl":"https://cdn.3dassets.dev/assets/29750/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29750/v1/poster.webp","blurhash":"U55rGRog00V=4Tj??wWE?wWBDht7IVt7%LM_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":20484,"triangles":920,"vertices":758,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3100000023841858,-0.00001702925535482236,-0.08000946135328407],"max":[0.3100000023841858,1.2799999713897705,0.08000946135328407]},"sizeMeters":[0.62,1.28,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:28.235Z","updatedAt":"2026-09-08T04:20:28.375Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29750/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtCleaningMopSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29750/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29750/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29750/v1/model.glb\" alt=\"Court Cleaning Mop (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29750/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/29750/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29751","slug":"squash-club-and-racket-workshop-ball-3bfa7782","title":"Ball (Squash Club and Racket Workshop)","summary":"Forty-millimetre squash ball with a tiny yellow identification dot.","description":"Forty-millimetre squash ball with a tiny yellow identification dot. Dimensions 0.04 × 0.04 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-ball-3bfa7782","cdnUrl":"https://cdn.3dassets.dev/assets/29751/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-ball-3bfa7782","thumbnailUrl":"https://cdn.3dassets.dev/assets/29751/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29751/v1/poster.webp","blurhash":"U02PA5%h00I9_4og9FWB4TMw%hx]DhWAx]fl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":23224,"triangles":1384,"vertices":806,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.019999999552965164,0,-0.019999999552965164],"max":[0.019999999552965164,0.03999999910593033,0.019999999552965164]},"sizeMeters":[0.04,0.04,0.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:28.887Z","updatedAt":"2026-09-08T04:20:28.979Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29751/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29751/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29751/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29751/v1/model.glb\" alt=\"Ball (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29751/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/29751/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29752","slug":"squash-club-and-racket-workshop-ball-warmer-20dbd529","title":"Ball Warmer (Squash Club and Racket Workshop)","summary":"Countertop ball warmer with three recessed holding rings, control indicator and insulated base.","description":"Countertop ball warmer with three recessed holding rings, control indicator and insulated base. Dimensions 0.28 × 0.17 × 0.19 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-ball-warmer-20dbd529","cdnUrl":"https://cdn.3dassets.dev/assets/29752/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-ball-warmer-20dbd529","thumbnailUrl":"https://cdn.3dassets.dev/assets/29752/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29752/v1/poster.webp","blurhash":"U88F1Zx_4TkD~StSElWB8wn3snRj0Nel#%RQ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":46892,"triangles":3204,"vertices":1959,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.14000000059604645,0.0000010654869145587664,-0.0960064065283763],"max":[0.14000000059604645,0.16599681845487527,0.09599871785355872]},"sizeMeters":[0.28,0.166,0.192],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:28.940Z","updatedAt":"2026-09-08T04:20:29.032Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29752/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BallWarmerSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29752/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29752/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29752/v1/model.glb\" alt=\"Ball Warmer (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29752/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/29752/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29753","slug":"squash-club-and-racket-workshop-racket-e7e35659","title":"Racket (Squash Club and Racket Workshop)","summary":"Squash racket with closed oval frame, forked throat, wrapped grip and individually modelled longitudinal/cross strings.","description":"Squash racket with closed oval frame, forked throat, wrapped grip and individually modelled longitudinal/cross strings. Dimensions 0.25 × 0.61 × 0.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-racket-e7e35659","cdnUrl":"https://cdn.3dassets.dev/assets/29753/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-racket-e7e35659","thumbnailUrl":"https://cdn.3dassets.dev/assets/29753/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29753/v1/poster.webp","blurhash":"UB68v=o#00R5.TkWDhVrITbcx]i^9Fay-;oL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":281352,"triangles":17340,"vertices":10854,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.12355992246013203,0,-0.013994567718346729],"max":[0.12355992246013203,0.6085595488548279,0.013994567718346729]},"sizeMeters":[0.247,0.609,0.028],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:29.706Z","updatedAt":"2026-09-08T04:20:29.804Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29753/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RacketSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29753/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29753/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29753/v1/model.glb\" alt=\"Racket (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29753/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/29753/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29754","slug":"squash-club-and-racket-workshop-racket-wall-rack-84206f2e","title":"Racket Wall Rack (Squash Club and Racket Workshop)","summary":"Five-position maple racket rack with curved metal hooks and lower wall protection strip.","description":"Five-position maple racket rack with curved metal hooks and lower wall protection strip. Dimensions 1.00 × 0.50 × 0.16 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-racket-wall-rack-84206f2e","cdnUrl":"https://cdn.3dassets.dev/assets/29754/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-racket-wall-rack-84206f2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/29754/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29754/v1/poster.webp","blurhash":"UAEfH1IV01IV?a~pIVE100xt%2Rj-o^+E2E1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":45288,"triangles":2700,"vertices":1691,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000012823138397954903,-0.08146718518577295],"max":[0.5,0.4999764015298449,0.08145584154470599]},"sizeMeters":[1,0.5,0.163],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:29.896Z","updatedAt":"2026-09-08T04:20:29.990Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29754/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RacketWallRackSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29754/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29754/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29754/v1/model.glb\" alt=\"Racket Wall Rack (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29754/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/29754/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29755","slug":"squash-club-and-racket-workshop-racket-stringing-machi-bc5c4aa6","title":"Racket Stringing Machine (Squash Club and Racket Workshop)","summary":"Pedestal racket stringer with rotating six-point support bed, two toothed string clamps and electronic tension head. Static mechanism.","description":"Pedestal racket stringer with rotating six-point support bed, two toothed string clamps and electronic tension head. Static mechanism. Dimensions 0.88 × 1.17 × 0.55 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-racket-stringing-machi-bc5c4aa6","cdnUrl":"https://cdn.3dassets.dev/assets/29755/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-racket-stringing-machi-bc5c4aa6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29755/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29755/v1/poster.webp","blurhash":"U36IgR.A004T*^xWF6IUI8V@tSo#RMXUyEnM","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":137360,"triangles":7420,"vertices":5618,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.43998345917776727,0,-0.27500000966858756],"max":[0.43998345917776727,1.1720000505447388,0.27500000966858756]},"sizeMeters":[0.88,1.172,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:30.549Z","updatedAt":"2026-09-08T04:20:30.663Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29755/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RacketStringingMachineSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29755/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29755/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29755/v1/model.glb\" alt=\"Racket Stringing Machine (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29755/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/29755/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29756","slug":"squash-club-and-racket-workshop-string-reel-36c456e5","title":"String Reel (Squash Club and Racket Workshop)","summary":"String spool with raised flanges, central hub and wound filament ridges.","description":"String spool with raised flanges, central hub and wound filament ridges. Dimensions 0.20 × 0.09 × 0.20 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-string-reel-36c456e5","cdnUrl":"https://cdn.3dassets.dev/assets/29756/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-string-reel-36c456e5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29756/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29756/v1/poster.webp","blurhash":"U98X|Xx^00M_SQWBs,og00RP?wt7-Ns:IqRi","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":50592,"triangles":2944,"vertices":1987,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.10000000149011612,0,-0.10000000149011612],"max":[0.10000000149011612,0.09000000357627869,0.10000000149011612]},"sizeMeters":[0.2,0.09,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:30.570Z","updatedAt":"2026-09-08T04:20:30.679Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29756/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StringReelSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29756/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29756/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29756/v1/model.glb\" alt=\"String Reel (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29756/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/29756/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29757","slug":"squash-club-and-racket-workshop-tension-calibrator-c6f4e9d3","title":"Tension Calibrator (Squash Club and Racket Workshop)","summary":"Inline string-tension calibrator with digital window and end attachment eyes.","description":"Inline string-tension calibrator with digital window and end attachment eyes. Dimensions 0.33 × 0.06 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-tension-calibrator-c6f4e9d3","cdnUrl":"https://cdn.3dassets.dev/assets/29757/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-tension-calibrator-c6f4e9d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29757/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29757/v1/poster.webp","blurhash":"U38g:DV@00RoxI~qox9F00x]_4WmNW00V|?v","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":35816,"triangles":2136,"vertices":1309,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.16300000250339508,8.692061698803433e-7,-0.03299099754638863],"max":[0.16300000250339508,0.06399914591388745,0.03299099754638863]},"sizeMeters":[0.326,0.064,0.066],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:31.341Z","updatedAt":"2026-09-08T04:20:31.445Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29757/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TensionCalibratorSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29757/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29757/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29757/v1/model.glb\" alt=\"Tension Calibrator (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29757/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/29757/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29758","slug":"squash-club-and-racket-workshop-clamp-tool-e3172eb3","title":"Clamp Tool (Squash Club and Racket Workshop)","summary":"Hand string clamp with sprung handles, pivot boss and five separated teeth.","description":"Hand string clamp with sprung handles, pivot boss and five separated teeth. Dimensions 0.09 × 0.23 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-clamp-tool-e3172eb3","cdnUrl":"https://cdn.3dassets.dev/assets/29758/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-clamp-tool-e3172eb3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29758/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29758/v1/poster.webp","blurhash":"U55FX%p000Q+~Tk84;V{,*emI_kXb|f-i]em","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":49940,"triangles":2800,"vertices":1946,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.04252022223468484,0,-0.01799897624157381],"max":[0.04252022223468484,0.22500014305114746,0.01799897624157381]},"sizeMeters":[0.085,0.225,0.036],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:31.536Z","updatedAt":"2026-09-08T04:20:31.624Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29758/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClampToolSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29758/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29758/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29758/v1/model.glb\" alt=\"Clamp Tool (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29758/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/29758/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29759","slug":"squash-club-and-racket-workshop-grip-roll-0680f8fc","title":"Grip Roll (Squash Club and Racket Workshop)","summary":"Hollow replacement grip roll with a short unwound end.","description":"Hollow replacement grip roll with a short unwound end. Dimensions 0.13 × 0.03 × 0.08 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-grip-roll-0680f8fc","cdnUrl":"https://cdn.3dassets.dev/assets/29759/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-grip-roll-0680f8fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/29759/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29759/v1/poster.webp","blurhash":"U74pH.u6D4VrtmtmVsR4D4VWyGWFR5MckDyE","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":14972,"triangles":684,"vertices":604,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.06350000202655792,4.5696366615319284e-7,-0.03800271736017337],"max":[0.06350000202655792,0.029999542365781593,0.03800271736017337]},"sizeMeters":[0.127,0.03,0.076],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:32.149Z","updatedAt":"2026-09-08T04:20:32.244Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29759/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GripRollSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29759/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29759/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29759/v1/model.glb\" alt=\"Grip Roll (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29759/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/29759/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29760","slug":"squash-club-and-racket-workshop-racket-press-361f10ca","title":"Racket Press (Squash Club and Racket Workshop)","summary":"Twin-board racket press with four through bolts and circular tightening handles.","description":"Twin-board racket press with four through bolts and circular tightening handles. Dimensions 0.30 × 0.13 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-racket-press-361f10ca","cdnUrl":"https://cdn.3dassets.dev/assets/29760/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-racket-press-361f10ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/29760/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29760/v1/poster.webp","blurhash":"U9FFjL-:00V_S%IURk%200M_~VRjZ}.7-nM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":74284,"triangles":4312,"vertices":2850,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1499923726076915,3.0356292455430145e-7,-0.20000000298023224],"max":[0.1499923726076915,0.12500332753350313,0.20000000298023224]},"sizeMeters":[0.3,0.125,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:32.190Z","updatedAt":"2026-09-08T04:20:32.301Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29760/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RacketPressSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29760/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29760/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29760/v1/model.glb\" alt=\"Racket Press (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29760/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/29760/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29761","slug":"squash-club-and-racket-workshop-equipment-bag-487e54a5","title":"Equipment Bag (Squash Club and Racket Workshop)","summary":"Rounded zipped sports bag with raised carrying handles, piping and twin zip seams.","description":"Rounded zipped sports bag with raised carrying handles, piping and twin zip seams. Dimensions 0.65 × 0.44 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-equipment-bag-487e54a5","cdnUrl":"https://cdn.3dassets.dev/assets/29761/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-equipment-bag-487e54a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29761/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29761/v1/poster.webp","blurhash":"U55?MaPqHXNIQR%OTgiu00q?yYohglD~#6Te","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":27700,"triangles":1560,"vertices":971,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499998807907104,0.000016789764568800325,-0.13998000524185705],"max":[0.32499998807907104,0.4355229122201695,0.13998000524185705]},"sizeMeters":[0.65,0.436,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:33.016Z","updatedAt":"2026-09-08T04:20:33.116Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29761/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EquipmentBagSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29761/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29761/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29761/v1/model.glb\" alt=\"Equipment Bag (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29761/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/29761/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29762","slug":"squash-club-and-racket-workshop-shoe-pair-9c22d392","title":"Shoe Pair (Squash Club and Racket Workshop)","summary":"Pair of contoured indoor court shoes with rounded outsole, curved upper, padded heel collars and crossing laces.","description":"Pair of contoured indoor court shoes with rounded outsole, curved upper, padded heel collars and crossing laces. Dimensions 0.36 × 0.14 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-shoe-pair-9c22d392","cdnUrl":"https://cdn.3dassets.dev/assets/29762/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-shoe-pair-9c22d392","thumbnailUrl":"https://cdn.3dassets.dev/assets/29762/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29762/v1/poster.webp","blurhash":"UBA^d%%M00Rm-=xuV?My00M{~qV?4TD*o#-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":171704,"triangles":11960,"vertices":7114,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.17800000309944153,0.000010070606016109734,-0.16000824278371686],"max":[0.17800000309944153,0.14199537412685045,0.16000824278371686]},"sizeMeters":[0.356,0.142,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:33.308Z","updatedAt":"2026-09-08T04:20:33.408Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29762/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoePairSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29762/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29762/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29762/v1/model.glb\" alt=\"Shoe Pair (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29762/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/29762/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29764","slug":"squash-club-and-racket-workshop-shoe-locker-a4476497","title":"Shoe Locker (Squash Club and Racket Workshop)","summary":"Six open shoe cubbies with thick dividers, backed enclosure and maple shelves.","description":"Six open shoe cubbies with thick dividers, backed enclosure and maple shelves. Dimensions 0.90 × 0.87 × 0.40 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-shoe-locker-a4476497","cdnUrl":"https://cdn.3dassets.dev/assets/29764/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-shoe-locker-a4476497","thumbnailUrl":"https://cdn.3dassets.dev/assets/29764/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29764/v1/poster.webp","blurhash":"UBJ8Ii~V00tS_2_2W;D*00RkE1IUxu%0Ri9H","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":44384,"triangles":2400,"vertices":1696,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.45239999890327454,-0.000006404540647986234,-0.20127479476506255],"max":[0.45239999890327454,0.8749851075711312,0.20245319665993566]},"sizeMeters":[0.905,0.875,0.404],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:33.901Z","updatedAt":"2026-09-08T04:20:33.988Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29764/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShoeLockerSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29764/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29764/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29764/v1/model.glb\" alt=\"Shoe Locker (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29764/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/29764/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29763","slug":"squash-club-and-racket-workshop-towel-shelf-d21e81a1","title":"Towel Shelf (Squash Club and Racket Workshop)","summary":"Wall towel shelf with supported top and base plus three folded linen stacks.","description":"Wall towel shelf with supported top and base plus three folded linen stacks. Dimensions 0.90 × 0.71 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-towel-shelf-d21e81a1","cdnUrl":"https://cdn.3dassets.dev/assets/29763/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-towel-shelf-d21e81a1","thumbnailUrl":"https://cdn.3dassets.dev/assets/29763/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29763/v1/poster.webp","blurhash":"UDJH]p~E00-X?b_Nx^D%00OSRWI-xv%1IT9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":39188,"triangles":2100,"vertices":1488,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.451200008392334,-0.000020296132811570278,-0.1611772850194485],"max":[0.451200008392334,0.7111984059599661,0.1611772850194485]},"sizeMeters":[0.902,0.711,0.322],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:33.797Z","updatedAt":"2026-09-08T04:20:33.971Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29763/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TowelShelfSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29763/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29763/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29763/v1/model.glb\" alt=\"Towel Shelf (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29763/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/29763/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29765","slug":"squash-club-and-racket-workshop-towel-return-bin-1f2e29a4","title":"Towel Return Bin (Squash Club and Racket Workshop)","summary":"Open-topped used-towel return with thick panels and recessed linen contents.","description":"Open-topped used-towel return with thick panels and recessed linen contents. Dimensions 0.50 × 0.74 × 0.45 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-towel-return-bin-1f2e29a4","cdnUrl":"https://cdn.3dassets.dev/assets/29765/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-towel-return-bin-1f2e29a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/29765/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29765/v1/poster.webp","blurhash":"U84p%Zt:D4Q+%ibFM_ozrTVsRQo}tSfmV?jX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":33324,"triangles":1800,"vertices":1282,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.24997894545006288,0,-0.22500137623262956],"max":[0.24997894545006288,0.7400000095367432,0.22500137623262956]},"sizeMeters":[0.5,0.74,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:34.662Z","updatedAt":"2026-09-08T04:20:34.753Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29765/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TowelReturnBinSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29765/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29765/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29765/v1/model.glb\" alt=\"Towel Return Bin (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29765/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/29765/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29766","slug":"squash-club-and-racket-workshop-water-fountain-f81a5283","title":"Water Fountain (Squash Club and Racket Workshop)","summary":"Pedestal drinking fountain with sculpted catch bowl, curved bubbler and push button.","description":"Pedestal drinking fountain with sculpted catch bowl, curved bubbler and push button. Dimensions 0.45 × 1.00 × 0.44 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-water-fountain-f81a5283","cdnUrl":"https://cdn.3dassets.dev/assets/29766/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-water-fountain-f81a5283","thumbnailUrl":"https://cdn.3dassets.dev/assets/29766/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29766/v1/poster.webp","blurhash":"U39j.Y-=00D$_3M{4n-p00RPx]tS8_ay?boL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":25960,"triangles":1264,"vertices":1021,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.225009914663934,0,-0.22000189050638697],"max":[0.225009914663934,1.0005971193313599,0.22000189050638697]},"sizeMeters":[0.45,1.001,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:34.977Z","updatedAt":"2026-09-08T04:20:35.068Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29766/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterFountainSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29766/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29766/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29766/v1/model.glb\" alt=\"Water Fountain (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29766/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/29766/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29767","slug":"squash-club-and-racket-workshop-drinks-refrigerator-9bdc79d1","title":"Drinks Refrigerator (Squash Club and Racket Workshop)","summary":"Drinks fridge with framed glass door, pull handle, vented base and three internal shelves.","description":"Drinks fridge with framed glass door, pull handle, vented base and three internal shelves. Dimensions 0.65 × 1.65 × 0.66 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-drinks-refrigerator-9bdc79d1","cdnUrl":"https://cdn.3dassets.dev/assets/29767/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-drinks-refrigerator-9bdc79d1","thumbnailUrl":"https://cdn.3dassets.dev/assets/29767/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29767/v1/poster.webp","blurhash":"U75$Y[%L4T9HyZogQ,WAM{R+t6xZyEogR5V@","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":161228,"triangles":9128,"vertices":6539,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3262228720922653,1.0803341554677104e-9,-0.3299659688404188],"max":[0.3262228720922653,1.649999976158142,0.33001101246805]},"sizeMeters":[0.652,1.65,0.66],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:35.515Z","updatedAt":"2026-09-08T04:20:35.625Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29767/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrinksRefrigeratorSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29767/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29767/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29767/v1/model.glb\" alt=\"Drinks Refrigerator (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29767/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/29767/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29768","slug":"squash-club-and-racket-workshop-bottle-crate-fecd3678","title":"Bottle Crate (Squash Club and Racket Workshop)","summary":"Six-bottle drinks crate with protective wall rails, contoured bottles and individual caps.","description":"Six-bottle drinks crate with protective wall rails, contoured bottles and individual caps. Dimensions 0.51 × 0.31 × 0.35 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-bottle-crate-fecd3678","cdnUrl":"https://cdn.3dassets.dev/assets/29768/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-bottle-crate-fecd3678","thumbnailUrl":"https://cdn.3dassets.dev/assets/29768/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29768/v1/poster.webp","blurhash":"U45i~YyZ8wtR#%a*XSs;8wiae-RO9GtloyMb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":84144,"triangles":3996,"vertices":3628,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.2524999976158142,-0.000007310923878234288,-0.1725048050363969],"max":[0.2524999976158142,0.3130073044865766,0.1725048050363969]},"sizeMeters":[0.505,0.313,0.345],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:35.714Z","updatedAt":"2026-09-08T04:20:35.803Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29768/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BottleCrateSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29768/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29768/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29768/v1/model.glb\" alt=\"Bottle Crate (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29768/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/29768/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29769","slug":"squash-club-and-racket-workshop-changing-bench-d5ccbc12","title":"Changing Bench (Squash Club and Racket Workshop)","summary":"Changing-room slatted bench with low shoe shelf and bolted metal legs.","description":"Changing-room slatted bench with low shoe shelf and bolted metal legs. Dimensions 1.50 × 0.45 × 0.54 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-changing-bench-d5ccbc12","cdnUrl":"https://cdn.3dassets.dev/assets/29769/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-changing-bench-d5ccbc12","thumbnailUrl":"https://cdn.3dassets.dev/assets/29769/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29769/v1/poster.webp","blurhash":"UIECj~t74oof~p-:M{M{00%L-:Io01D*%2t6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":80892,"triangles":4500,"vertices":3194,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0.000028305861070148514,-0.27002014221625414],"max":[0.75,0.4499528465186738,0.27002014221625414]},"sizeMeters":[1.5,0.45,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:36.355Z","updatedAt":"2026-09-08T04:20:36.453Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29769/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChangingBenchSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29769/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29769/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29769/v1/model.glb\" alt=\"Changing Bench (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29769/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/29769/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29770","slug":"squash-club-and-racket-workshop-changing-locker-ae30f1aa","title":"Changing Locker (Squash Club and Racket Workshop)","summary":"Single tall changing locker with door hinges, ventilating slots, pull and raised feet.","description":"Single tall changing locker with door hinges, ventilating slots, pull and raised feet. Dimensions 0.50 × 1.80 × 0.62 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-changing-locker-ae30f1aa","cdnUrl":"https://cdn.3dassets.dev/assets/29770/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-changing-locker-ae30f1aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/29770/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29770/v1/poster.webp","blurhash":"UCAT~6~W0000yEoMR4WB4nE1%M^+krafa0oy","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":108472,"triangles":6000,"vertices":4245,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.25000016579446144,-0.0000052624240216309764,-0.3087997573109836],"max":[0.25000016579446144,1.8000000715255737,0.30875621283562227]},"sizeMeters":[0.5,1.8,0.618],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:36.631Z","updatedAt":"2026-09-08T04:20:36.733Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29770/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChangingLockerSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29770/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29770/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29770/v1/model.glb\" alt=\"Changing Locker (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29770/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/29770/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29771","slug":"squash-club-and-racket-workshop-shower-cubicle-b51efead","title":"Shower Cubicle (Squash Club and Racket Workshop)","summary":"Glazed shower cubicle with tray, rear wet wall, exposed riser, shower head, mixer and drain.","description":"Glazed shower cubicle with tray, rear wet wall, exposed riser, shower head, mixer and drain. Dimensions 1.00 × 2.19 × 1.03 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-shower-cubicle-b51efead","cdnUrl":"https://cdn.3dassets.dev/assets/29771/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-shower-cubicle-b51efead","thumbnailUrl":"https://cdn.3dassets.dev/assets/29771/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29771/v1/poster.webp","blurhash":"UGIhst~q0000?It7IUM{00IU-;%MxuWVRjof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":59396,"triangles":3568,"vertices":2633,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5012091002611647,0,-0.5137998974143733],"max":[0.5012131975387586,2.18999981880188,0.5137397036680362]},"sizeMeters":[1.002,2.19,1.028],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:38.204Z","updatedAt":"2026-09-08T04:20:38.314Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29771/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShowerCubicleSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29771/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29771/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29771/v1/model.glb\" alt=\"Shower Cubicle (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29771/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/29771/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29772","slug":"squash-club-and-racket-workshop-washbasin-84eb8ca8","title":"Washbasin (Squash Club and Racket Workshop)","summary":"Vanity washbasin with hollow curved bowl, rolled rim, central drain well and high mixer spout.","description":"Vanity washbasin with hollow curved bowl, rolled rim, central drain well and high mixer spout. Dimensions 0.65 × 1.08 × 0.54 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-washbasin-84eb8ca8","cdnUrl":"https://cdn.3dassets.dev/assets/29772/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-washbasin-84eb8ca8","thumbnailUrl":"https://cdn.3dassets.dev/assets/29772/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29772/v1/poster.webp","blurhash":"UB8Oe[tm00Mc~9n$4;S4Qkactmbd0La$^*n#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":24460,"triangles":1200,"vertices":904,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32499771595463256,0,-0.27000001072883606],"max":[0.32499771595463256,1.0780205726623535,0.27000001072883606]},"sizeMeters":[0.65,1.078,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:38.328Z","updatedAt":"2026-09-08T04:20:38.435Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29772/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WashbasinSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29772/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29772/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29772/v1/model.glb\" alt=\"Washbasin (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29772/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/29772/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29773","slug":"squash-club-and-racket-workshop-reception-counter-1ae1a681","title":"Reception Counter (Squash Club and Racket Workshop)","summary":"Reception counter with maple overhang, blue plinth, white cabinet and sixteen raised face slats.","description":"Reception counter with maple overhang, blue plinth, white cabinet and sixteen raised face slats. Dimensions 2.08 × 1.00 × 0.84 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-reception-counter-1ae1a681","cdnUrl":"https://cdn.3dassets.dev/assets/29773/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-reception-counter-1ae1a681","thumbnailUrl":"https://cdn.3dassets.dev/assets/29773/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29773/v1/poster.webp","blurhash":"ULHLo5%M00oy~T?aR.IV00xY%LRkE7M{Rjad","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":101488,"triangles":5700,"vertices":4032,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0399999618530273,-0.00004028532657798789,-0.420005477925996],"max":[1.0399999618530273,0.9999568037020006,0.420005477925996]},"sizeMeters":[2.08,1,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:38.958Z","updatedAt":"2026-09-08T04:20:39.050Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29773/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReceptionCounterSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29773/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29773/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29773/v1/model.glb\" alt=\"Reception Counter (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29773/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/29773/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29774","slug":"squash-club-and-racket-workshop-booking-terminal-c5ea89dd","title":"Booking Terminal (Squash Club and Racket Workshop)","summary":"Counter booking terminal with supported display, three raised interface rows and weighted foot.","description":"Counter booking terminal with supported display, three raised interface rows and weighted foot. Dimensions 0.38 × 0.50 × 0.25 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-booking-terminal-c5ea89dd","cdnUrl":"https://cdn.3dassets.dev/assets/29774/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-booking-terminal-c5ea89dd","thumbnailUrl":"https://cdn.3dassets.dev/assets/29774/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29774/v1/poster.webp","blurhash":"U37n:*.8004n03T0~An3tOT1WB#P~V%hIoH=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":40276,"triangles":2100,"vertices":1498,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1899999976158142,0.00000633957549403541,-0.12499892905822449],"max":[0.1899999976158142,0.4999877902435479,0.12499892905822449]},"sizeMeters":[0.38,0.5,0.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:39.320Z","updatedAt":"2026-09-08T04:20:39.432Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29774/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BookingTerminalSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29774/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29774/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29774/v1/model.glb\" alt=\"Booking Terminal (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29774/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/29774/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29775","slug":"squash-club-and-racket-workshop-check-in-gate-b27e6be4","title":"Check In Gate (Squash Club and Racket Workshop)","summary":"Pedestrian check-in gate with twin pedestals and static closed swing glass leaves.","description":"Pedestrian check-in gate with twin pedestals and static closed swing glass leaves. Dimensions 1.25 × 1.01 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-check-in-gate-b27e6be4","cdnUrl":"https://cdn.3dassets.dev/assets/29775/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-check-in-gate-b27e6be4","thumbnailUrl":"https://cdn.3dassets.dev/assets/29775/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29775/v1/poster.webp","blurhash":"UJBNmAtR00Nf-;tTIVMw00j?~pe.D%bI-;t6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":75384,"triangles":4456,"vertices":3260,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.625,-0.000026703695791496784,-0.1499984740745262],"max":[0.625,1.0120286090087967,0.1499984740745262]},"sizeMeters":[1.25,1.012,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:40.906Z","updatedAt":"2026-09-08T04:20:41.010Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29775/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheckInGateSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29775/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29775/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29775/v1/model.glb\" alt=\"Check In Gate (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29775/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/29775/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29776","slug":"squash-club-and-racket-workshop-membership-card-reader-663ccdba","title":"Membership Card Reader (Squash Club and Racket Workshop)","summary":"Compact membership reader with status window and recessed card indicator.","description":"Compact membership reader with status window and recessed card indicator. Dimensions 0.09 × 0.13 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-membership-card-reader-663ccdba","cdnUrl":"https://cdn.3dassets.dev/assets/29776/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-membership-card-reader-663ccdba","thumbnailUrl":"https://cdn.3dassets.dev/assets/29776/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29776/v1/poster.webp","blurhash":"U64f,ztl8wMet-b{RPium~j]W8aJ%%tSH=Mb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":11192,"triangles":900,"vertices":636,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.047501753071940885,0,-0.018996795196415645],"max":[0.047501753071940885,0.12999999523162842,0.018999144999770762]},"sizeMeters":[0.095,0.13,0.038],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:41.043Z","updatedAt":"2026-09-08T04:20:41.138Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29776/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MembershipCardReaderSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29776/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29776/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29776/v1/model.glb\" alt=\"Membership Card Reader (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29776/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/29776/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29777","slug":"squash-club-and-racket-workshop-notice-board-cbe6b546","title":"Notice Board (Squash Club and Racket Workshop)","summary":"Maple-framed club notice board with two pinned sheets and raised text-rule graphics.","description":"Maple-framed club notice board with two pinned sheets and raised text-rule graphics. Dimensions 1.00 × 0.75 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-notice-board-cbe6b546","cdnUrl":"https://cdn.3dassets.dev/assets/29777/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-notice-board-cbe6b546","thumbnailUrl":"https://cdn.3dassets.dev/assets/29777/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29777/v1/poster.webp","blurhash":"U9EyoP-q00s,_3~qRj8_00t6%%M|M{xtfSM|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":62344,"triangles":3600,"vertices":2552,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,0.000019074068422497703,-0.04446917728518059],"max":[0.5,0.7499809259315775,0.044493469425760206]},"sizeMeters":[1,0.75,0.089],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:41.590Z","updatedAt":"2026-09-08T04:20:41.687Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29777/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NoticeBoardSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29777/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29777/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29777/v1/model.glb\" alt=\"Notice Board (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29777/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/29777/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29778","slug":"squash-club-and-racket-workshop-trophy-cabinet-6acb9268","title":"Trophy Cabinet (Squash Club and Racket Workshop)","summary":"Closed trophy display cabinet with three glass shelves, glazed sides and four door clamps.","description":"Closed trophy display cabinet with three glass shelves, glazed sides and four door clamps. Dimensions 1.00 × 1.67 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-trophy-cabinet-6acb9268","cdnUrl":"https://cdn.3dassets.dev/assets/29778/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-trophy-cabinet-6acb9268","thumbnailUrl":"https://cdn.3dassets.dev/assets/29778/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29778/v1/poster.webp","blurhash":"UKDTFt~p0000~Uxu9bIUI8D*Nf-:t6fkRkWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":74376,"triangles":4028,"vertices":2904,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5012207478478109,0,-0.2500312907859048],"max":[0.5012207478478109,1.6699742023227495,0.25002847856110927]},"sizeMeters":[1.002,1.67,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:41.993Z","updatedAt":"2026-09-08T04:20:42.098Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29778/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrophyCabinetSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29778/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29778/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29778/v1/model.glb\" alt=\"Trophy Cabinet (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29778/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/29778/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29779","slug":"squash-club-and-racket-workshop-trophy-cup-b75f1eac","title":"Trophy Cup (Squash Club and Racket Workshop)","summary":"Hollow two-handled trophy cup with curved bowl, metal stem and square display plinth.","description":"Hollow two-handled trophy cup with curved bowl, metal stem and square display plinth. Dimensions 0.36 × 0.31 × 0.22 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-trophy-cup-b75f1eac","cdnUrl":"https://cdn.3dassets.dev/assets/29779/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-trophy-cup-b75f1eac","thumbnailUrl":"https://cdn.3dassets.dev/assets/29779/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29779/v1/poster.webp","blurhash":"UE9Gpmt60MM|~9s.9cRlNHs.s.RlE4oe%0WC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":33712,"triangles":1876,"vertices":1278,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.18083716928958893,-0.000003433332452479343,-0.10999129563101619],"max":[0.18083716928958893,0.3125237729458947,0.10999129563101619]},"sizeMeters":[0.362,0.313,0.22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:43.615Z","updatedAt":"2026-09-08T04:20:43.707Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29779/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrophyCupSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29779/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29779/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29779/v1/model.glb\" alt=\"Trophy Cup (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29779/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/29779/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29780","slug":"squash-club-and-racket-workshop-first-aid-cabinet-e0ed162b","title":"First Aid Cabinet (Squash Club and Racket Workshop)","summary":"Wall first-aid cabinet with raised cross, hinged door and compact latch.","description":"Wall first-aid cabinet with raised cross, hinged door and compact latch. Dimensions 0.42 × 0.50 × 0.23 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-first-aid-cabinet-e0ed162b","cdnUrl":"https://cdn.3dassets.dev/assets/29780/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-first-aid-cabinet-e0ed162b","thumbnailUrl":"https://cdn.3dassets.dev/assets/29780/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29780/v1/poster.webp","blurhash":"UBHV0X-p00E}~q-;D%9F00Sg=|m,xaxuNGIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":39356,"triangles":2100,"vertices":1493,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.20999023407696768,0,-0.11324004396213222],"max":[0.20999023407696768,0.5,0.11325331292729278]},"sizeMeters":[0.42,0.5,0.226],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:43.770Z","updatedAt":"2026-09-08T04:20:43.867Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29780/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirstAidCabinetSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29780/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29780/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29780/v1/model.glb\" alt=\"First Aid Cabinet (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29780/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/29780/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29781","slug":"squash-club-and-racket-workshop-training-rebound-targe-6a5fcbab","title":"Training Rebound Target (Squash Club and Racket Workshop)","summary":"Freestanding training rebound board with concentric targets, structural uprights and broad stable base.","description":"Freestanding training rebound board with concentric targets, structural uprights and broad stable base. Dimensions 1.00 × 1.58 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-training-rebound-targe-6a5fcbab","cdnUrl":"https://cdn.3dassets.dev/assets/29781/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-training-rebound-targe-6a5fcbab","thumbnailUrl":"https://cdn.3dassets.dev/assets/29781/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29781/v1/poster.webp","blurhash":"U9AwSO%300D%}Os,0-Ip0hae^$j]Elo#-oi^","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":47908,"triangles":2736,"vertices":1736,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5000036575554324,0,-0.34997950965740365],"max":[0.5000036575554324,1.5812000036239624,0.34997950965740365]},"sizeMeters":[1,1.581,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:44.278Z","updatedAt":"2026-09-08T04:20:44.379Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29781/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TrainingReboundTargetSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29781/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29781/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29781/v1/model.glb\" alt=\"Training Rebound Target (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29781/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/29781/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29782","slug":"squash-club-and-racket-workshop-agility-hurdle-20fcad4f","title":"Agility Hurdle (Squash Club and Racket Workshop)","summary":"Low agility hurdle with weighted foot rails and rounded training crossbar.","description":"Low agility hurdle with weighted foot rails and rounded training crossbar. Dimensions 0.69 × 0.32 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-agility-hurdle-20fcad4f","cdnUrl":"https://cdn.3dassets.dev/assets/29782/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-agility-hurdle-20fcad4f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29782/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29782/v1/poster.webp","blurhash":"U63S^sogMbo$yZtnROR4L}o~ohR3MHVqtnbd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":29456,"triangles":1620,"vertices":1107,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3449999988079071,-0.000008310383279350186,-0.1600074764819411],"max":[0.3449999988079071,0.3166338459999265,0.1600074764819411]},"sizeMeters":[0.69,0.317,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:44.626Z","updatedAt":"2026-09-08T04:20:44.731Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29782/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AgilityHurdleSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29782/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29782/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29782/v1/model.glb\" alt=\"Agility Hurdle (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29782/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/29782/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29783","slug":"squash-club-and-racket-workshop-resistance-band-statio-854fd051","title":"Resistance Band Station (Squash Club and Racket Workshop)","summary":"Anchored resistance training post with three attachment eyes and two hanging elastic bands with grip loops.","description":"Anchored resistance training post with three attachment eyes and two hanging elastic bands with grip loops. Dimensions 0.70 × 1.86 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-resistance-band-statio-854fd051","cdnUrl":"https://cdn.3dassets.dev/assets/29783/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-resistance-band-statio-854fd051","thumbnailUrl":"https://cdn.3dassets.dev/assets/29783/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29783/v1/poster.webp","blurhash":"U44L,xo#00MwL}adu6o#gQjYiubcxubcRjnN","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":84828,"triangles":5280,"vertices":3138,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3520136795551241,0,-0.299999395819511],"max":[0.3520136795551241,1.8599998950958252,0.299999395819511]},"sizeMeters":[0.704,1.86,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:46.313Z","updatedAt":"2026-09-08T04:20:46.413Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29783/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ResistanceBandStationSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29783/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29783/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29783/v1/model.glb\" alt=\"Resistance Band Station (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29783/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/29783/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29784","slug":"squash-club-and-racket-workshop-coach-stool-36c51a04","title":"Coach Stool (Squash Club and Racket Workshop)","summary":"Round padded coach stool with four metal legs, spreader braces and rubber feet.","description":"Round padded coach stool with four metal legs, spreader braces and rubber feet. Dimensions 0.48 × 0.57 × 0.48 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-coach-stool-36c51a04","cdnUrl":"https://cdn.3dassets.dev/assets/29784/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-coach-stool-36c51a04","thumbnailUrl":"https://cdn.3dassets.dev/assets/29784/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29784/v1/poster.webp","blurhash":"UF72K+oz8^V@yZflR3jYNHayoJayxBj?R.WC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":58348,"triangles":3160,"vertices":2286,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.23999999463558197,1.8626453157644107e-10,-0.23999999463558197],"max":[0.23999999463558197,0.5700108297120322,0.23999999463558197]},"sizeMeters":[0.48,0.57,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:46.538Z","updatedAt":"2026-09-08T04:20:46.648Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29784/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoachStoolSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29784/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29784/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29784/v1/model.glb\" alt=\"Coach Stool (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29784/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/29784/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29785","slug":"squash-club-and-racket-workshop-club-entrance-building-475ac4c8","title":"Club Entrance Building (Squash Club and Racket Workshop)","summary":"Closed roofed eighteen-by-nine-metre club pavilion with glazed entrance doors, glazed roof on steel beams, solid side/rear wings and central rear connection to the court viewing gallery. Static doors; model building only.","description":"Closed roofed eighteen-by-nine-metre club pavilion with glazed entrance doors, glazed roof on steel beams, solid side/rear wings and central rear connection to the court viewing gallery. Static doors; model building only. Dimensions 18.20 × 3.59 × 9.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Original maple, white plaster, blue upholstery and stainless hardware. Metres; static geometry, no animation or collision. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-club-entrance-building-475ac4c8","cdnUrl":"https://cdn.3dassets.dev/assets/29785/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-club-entrance-building-475ac4c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/29785/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29785/v1/poster.webp","blurhash":"U4C%Kr9^00~q-;_NI=9Z00-o?w019F00-Ui_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"kit","title":"Kit / Set"},{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":251392,"triangles":14012,"vertices":10173,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-9.100000381469727,0.0002906917829911121,-4.578074539555772],"max":[9.100000381469727,3.589925554136145,4.5780286049244]},"sizeMeters":[18.2,3.59,9.156],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:47.317Z","updatedAt":"2026-09-08T04:20:47.419Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29785/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClubEntranceBuildingSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29785/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29785/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29785/v1/model.glb\" alt=\"Club Entrance Building (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29785/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/29785/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29786","slug":"squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","title":"Singles Court and Club Workshop (Squash Club and Racket Workshop)","summary":"Enclosed singles court opens visually through a glazed rear into sheltered spectator access and a roofed club with reception, racket servicing, changing facilities and training corner.","description":"Enclosed singles court opens visually through a glazed rear into sheltered spectator access and a roofed club with reception, racket servicing, changing facilities and training corner.","status":"published","url":"https://3dassets.dev/assets/squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/29786/v1/model.glb","downloadUrl":"https://3dassets.dev/download/squash-club-and-racket-workshop-singles--19d3c9aa-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/29786/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29786/v1/poster.webp","blurhash":"U6CQ0*S*00~qs:DitR-=00Vq~q9GIU_3V?IT","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":3086792,"triangles":212140,"vertices":147632,"meshes":161,"materials":16,"textures":0,"animations":[],"boundingBox":{"min":[-9.100000381469727,0.00003739097167709815,-12.149999904632569],"max":[9.100000381469727,5.405218467709592,8.3280286049244]},"sizeMeters":[18.2,5.405,20.478],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_materials_transmission","KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:20:47.869Z","updatedAt":"2026-09-08T04:20:47.974Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29786/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SinglesCourtAndClubWorkshopSquashClubAndRacketWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29786/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29786/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29786/v1/model.glb\" alt=\"Singles Court and Club Workshop (Squash Club and Racket Workshop)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/29786/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/29786/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}