{"data":{"id":"36","slug":"laundrette-and-cleaning","title":"Corner laundromat","summary":"Step into a 14 by 10 metre laundrette built from the Laundromat and Cleaning Services pack: a bank of washers and dryers with payment columns, a folding island, laundry carts, waiting benches behind a glazed shopfront, and vending.","url":"https://3dassets.dev/demos/laundrette-and-cleaning","coverUrl":"https://cdn.3dassets.dev/media/laundrette-and-cleaning-demo-3.png","featured":false,"pack":{"slug":"laundrette-and-cleaning","title":"Laundromat and Cleaning Services","url":"https://3dassets.dev/packs/laundrette-and-cleaning","summary":"A commercial laundry, dry cleaning and janitorial library: machine banks with payment columns, folding and finishing kit, the customer venue, a dry cleaning back area, contract cleaning equipment and the bin store.","assetCount":94,"totalBytes":17641296,"starterScene":{"slug":"laundrette-and-cleaning-laundrette-floor-725291ab-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/25642/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundrette-floor-725291ab-starter-scene","fileSize":2347828}},"placementCount":46,"assetCount":23,"spawn":{"position":[0,0,3.8],"yaw":180},"publishedAt":"2026-09-07T21:02:13.596Z","updatedAt":"2026-09-07T21:02:13.596Z","description":"One laundrette from 23 of the pack's 94 models, in the room preset with cool light and lamps under a 3.2 m ceiling.\n\nYou come in through the door bay in the glazed shopfront. The machine bank runs along the back wall: four 700 washers on plinths, two 900 washers, three stacked dryer pairs and four 800 dryers between end panels, with coin and card payment columns and two stacked washer-dryers on the east wall. The folding island table stands in the middle with a wall shelf, two rolling carts, a hamper and a wet floor sign; two waiting benches, a chair run, a magazine rack and the notice board sit by the windows, with the detergent and drinks vending machines on the east.\n\nThis pack ships animation clips: every washer and dryer door, the stacked units and the vending machines play as you come within three metres and rewind when you leave.","scene":{"version":1,"spawn":{"position":[0,0,3.8],"yaw":180},"bounds":{"min":[-7,0,-5],"max":[7,3.2,5.5]},"ground":{"style":"plain"},"environment":{"preset":"room","wallHeight":3.2,"wall":"#e8eef0","floor":"#cfd6d8","light":"cool","lampHeight":2.9,"shadows":true},"placements":[{"asset":"laundrette-and-cleaning-shopfront-door-module-dbed900d","position":[0,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[-1.2,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[-2.4,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[-3.6,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[-4.8,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[1.2,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[2.4,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[3.6,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","position":[4.8,0,5],"rotation":180},{"asset":"laundrette-and-cleaning-washer-plinth-700-0b3f15b4","position":[-5.6,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-small-7ef80e45","position":[-5.6,0.3,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-plinth-700-0b3f15b4","position":[-4.9,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-small-7ef80e45","position":[-4.9,0.3,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-plinth-700-0b3f15b4","position":[-4.2,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-small-7ef80e45","position":[-4.2,0.3,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-plinth-700-0b3f15b4","position":[-3.5,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-small-7ef80e45","position":[-3.5,0.3,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-large-27dd939a","position":[-2.4,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-washer-commercial-large-27dd939a","position":[-1.5,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","position":[-0.4,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","position":[0.4,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","position":[1.2,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-single-990f3bba","position":[2.6,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-single-990f3bba","position":[3.4,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-single-990f3bba","position":[4.2,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-tumble-dryer-single-990f3bba","position":[5,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-machine-bank-end-panel-7d031e9b","position":[-6.05,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-machine-bank-end-panel-7d031e9b","position":[5.5,0,-4.5],"rotation":0},{"asset":"laundrette-and-cleaning-stacked-washer-dryer-2a7f65f2","position":[6.5,0,-2.2],"rotation":270},{"asset":"laundrette-and-cleaning-stacked-washer-dryer-2a7f65f2","position":[6.5,0,-1.5],"rotation":270},{"asset":"laundrette-and-cleaning-folding-table-island-86a76afc","position":[0,0,-1],"rotation":0},{"asset":"laundrette-and-cleaning-folding-table-wall-53964a42","position":[-6.6,0.9,-1],"rotation":90},{"asset":"laundrette-and-cleaning-seating-bench-moulded-5fc23802","position":[-4,0,3.6],"rotation":180},{"asset":"laundrette-and-cleaning-seating-bench-moulded-5fc23802","position":[4,0,3.6],"rotation":180},{"asset":"laundrette-and-cleaning-waiting-chair-run-3-28607b1c","position":[-6.4,0,1.2],"rotation":90},{"asset":"laundrette-and-cleaning-magazine-rack-96ad7ff9","position":[-6.6,0,3],"rotation":90},{"asset":"laundrette-and-cleaning-detergent-vending-unit-5d2fe188","position":[6.5,0,0.8],"rotation":270},{"asset":"laundrette-and-cleaning-vending-machine-drinks-3c8c22ca","position":[6.4,0,2.4],"rotation":270},{"asset":"laundrette-and-cleaning-coin-box-column-6a709d03","position":[-6.6,0,-3],"rotation":90},{"asset":"laundrette-and-cleaning-card-payment-column-9094f43b","position":[6.6,0,-3.6],"rotation":270},{"asset":"laundrette-and-cleaning-laundry-cart-rolling-153d62be","position":[-2.2,0,1.5],"rotation":20},{"asset":"laundrette-and-cleaning-laundry-cart-rolling-153d62be","position":[2.6,0,-2.6],"rotation":300},{"asset":"laundrette-and-cleaning-wheeled-hamper-833a2022","position":[4,0,1.4],"rotation":340},{"asset":"laundrette-and-cleaning-wet-floor-sign-0297c964","position":[1.2,0,0.6],"rotation":0},{"asset":"laundrette-and-cleaning-wall-clock-60eadd33","position":[0,2.4,-4.95],"rotation":0},{"asset":"laundrette-and-cleaning-notice-board-2b72688c","position":[-6.85,1.3,2.2],"rotation":90}],"points":[{"position":[-4,0,-2.6],"title":"Washers","text":"Four 700 front-load washers on plinths and two 900 washers along the back wall, with an end panel closing the bank and the coin payment column beside it. Every door here has a clip and opens as you approach.","asset":"laundrette-and-cleaning-washer-commercial-small-7ef80e45"},{"position":[2.5,0,-2.6],"title":"Dryers","text":"Three stacked tumble dryer pairs and four 800 dryers finish the bank, with the card payment column and two stacked washer-dryers on the east wall.","asset":"laundrette-and-cleaning-tumble-dryer-single-990f3bba"},{"position":[1.6,0,-1],"title":"Folding island","text":"The 1.8 m folding island table in the middle, a wall folding shelf, two rolling laundry carts and a wheeled hamper.","asset":"laundrette-and-cleaning-folding-table-island-86a76afc"},{"position":[0,0,2.6],"title":"Waiting","text":"Two waiting benches and a three-seat chair run by the shopfront, a magazine rack and the notice board. The shopfront is eight glazed bays and a door bay.","asset":"laundrette-and-cleaning-seating-bench-moulded-5fc23802"},{"position":[5,0,1.6],"title":"Vending","text":"The detergent vending unit and the drinks vending machine on the east wall; both have clips.","asset":"laundrette-and-cleaning-detergent-vending-unit-5d2fe188"}],"poster":{"position":[2.3,1.7,2.3],"lookAt":[0,0.4,-1]}},"bounds":{"min":[-7,0,-5],"max":[7,3.2,5.5]},"assets":[{"id":"25555","slug":"laundrette-and-cleaning-shopfront-door-module-dbed900d","title":"Shopfront bay, door (Laundromat and Cleaning Services)","summary":"The 1.2 m shopfront bay fitted as an entrance: a glazed stile and rail door on a named hinge pivot with a full height pull and a kick plate, an overpanel light and the same fascia band above.","description":"The 1.2 m shopfront bay fitted as an entrance: a glazed stile and rail door on a named hinge pivot with a full height pull and a kick plate, an overpanel light and the same fascia band above. Overall 1.200 x 3.000 x 0.230 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door. Connectors: run-left (shopfront-run), run-right (shopfront-run). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-shopfront-door-module-dbed900d","cdnUrl":"https://cdn.3dassets.dev/assets/25555/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-shopfront-door-module-dbed900d","thumbnailUrl":"https://cdn.3dassets.dev/assets/25555/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25555/v1/poster.webp","blurhash":"UA9H2@Rj00xu~poe4pRk?aj[D%a$WEt7oIIV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":53408,"triangles":1036,"vertices":3108,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6000000238418579,0,-0.09103973948833569],"max":[0.6011239081592975,3.001199960708618,0.1390397399055682]},"sizeMeters":[1.201,3.001,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:50.549Z","updatedAt":"2026-09-07T21:01:49.743Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25555/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ShopfrontBayDoorLaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25555/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25555/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25555/v1/model.glb\" alt=\"Shopfront bay, door (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25555/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25555/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25553","slug":"laundrette-and-cleaning-shopfront-module-glazed-94b928a6","title":"Shopfront bay, glazed (Laundromat and Cleaning Services)","summary":"A 1.2 m glazed shopfront bay on the shopfront run grid: a kick plinth, boxed mullions, a full height glazed light with a transom rail and a fascia band with a blank sign panel under a projecting cap.","description":"A 1.2 m glazed shopfront bay on the shopfront run grid: a kick plinth, boxed mullions, a full height glazed light with a transom rail and a fascia band with a blank sign panel under a projecting cap. Overall 1.200 x 3.000 x 0.230 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: run-left (shopfront-run), run-right (shopfront-run). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-shopfront-module-glazed-94b928a6","cdnUrl":"https://cdn.3dassets.dev/assets/25553/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-shopfront-module-glazed-94b928a6","thumbnailUrl":"https://cdn.3dassets.dev/assets/25553/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25553/v1/poster.webp","blurhash":"UA8||qxt00IV~Vt74oIWxZoeNGNHtSoeRiRk","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"modular","title":"Modular"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29040,"triangles":556,"vertices":1668,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6012024224226492,0.000029903173421191864,-0.09105233772411302],"max":[0.6012024224226492,3.001199960708618,0.13905233814134554]},"sizeMeters":[1.202,3.001,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:50.255Z","updatedAt":"2026-09-07T21:01:49.676Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25553/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShopfrontBayGlazedLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25553/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25553/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25553/v1/model.glb\" alt=\"Shopfront bay, glazed (Laundromat and Cleaning Services)\" 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/25553/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/25553/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25515","slug":"laundrette-and-cleaning-washer-plinth-700-0b3f15b4","title":"Commercial washer plinth 700 (Laundromat and Cleaning Services)","summary":"A standalone 700 mm welded stainless machine plinth: a folded box frame on four heavy levelling feet with a front aperture, a wire storage basket inside and a bolted top deck for the machine above.","description":"A standalone 700 mm welded stainless machine plinth: a folded box frame on four heavy levelling feet with a front aperture, a wire storage basket inside and a bolted top deck for the machine above. Overall 0.700 x 0.320 x 0.722 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-washer-plinth-700-0b3f15b4","cdnUrl":"https://cdn.3dassets.dev/assets/25515/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-plinth-700-0b3f15b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/25515/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25515/v1/poster.webp","blurhash":"UID0M:tQ00ay_4oeITof00WAxuay00WB%MWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":84556,"triangles":1724,"vertices":5172,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499801768758028,0.000023184134015946656,-0.36000001430511475],"max":[0.3499801768758028,0.3199768087134267,0.3619999885559082]},"sizeMeters":[0.7,0.32,0.722],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:32.440Z","updatedAt":"2026-09-07T21:01:48.625Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25515/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommercialWasherPlinth700LaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25515/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25515/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25515/v1/model.glb\" alt=\"Commercial washer plinth 700 (Laundromat and Cleaning Services)\" 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/25515/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/25515/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25509","slug":"laundrette-and-cleaning-washer-commercial-small-7ef80e45","title":"Commercial front load washer 700 (Laundromat and Cleaning Services)","summary":"A 700 mm commercial front load washer extractor on a welded stainless plinth: 420 mm porthole with barrel hinges and a cast locking handle, sloped keypad fascia, three cell soap hopper and a bolted pump access panel.","description":"A 700 mm commercial front load washer extractor on a welded stainless plinth: 420 mm porthole with barrel hinges and a cast locking handle, sloped keypad fascia, three cell soap hopper and a bolted pump access panel. Overall 0.700 x 1.100 x 1.080 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-washer-commercial-small-7ef80e45","cdnUrl":"https://cdn.3dassets.dev/assets/25509/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-small-7ef80e45","thumbnailUrl":"https://cdn.3dassets.dev/assets/25509/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25509/v1/poster.webp","blurhash":"UEDvf#WV00xu_Nj[Dij[00xa-;IVj[j[WBWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":204616,"triangles":4120,"vertices":12360,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.35122165506813136,0,-0.6274723410606384],"max":[0.3500216347548684,1.101199984550476,0.4523941924123087]},"sizeMeters":[0.701,1.101,1.08],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:29.620Z","updatedAt":"2026-09-07T21:01:48.420Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25509/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CommercialFrontLoadWasher700LaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25509/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25509/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25509/v1/model.glb\" alt=\"Commercial front load washer 700 (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25509/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25509/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25512","slug":"laundrette-and-cleaning-washer-commercial-large-27dd939a","title":"Commercial front load washer 900 (Laundromat and Cleaning Services)","summary":"A 900 mm high capacity commercial washer extractor: 540 mm porthole, five cell soap hopper, a supply manifold with isolation valves across the top rear and a 240 mm welded plinth over a gravity drain.","description":"A 900 mm high capacity commercial washer extractor: 540 mm porthole, five cell soap hopper, a supply manifold with isolation valves across the top rear and a 240 mm welded plinth over a gravity drain. Overall 0.900 x 1.482 x 1.342 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-washer-commercial-large-27dd939a","cdnUrl":"https://cdn.3dassets.dev/assets/25512/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-large-27dd939a","thumbnailUrl":"https://cdn.3dassets.dev/assets/25512/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25512/v1/poster.webp","blurhash":"UCDcadIV00%M_NWBD$ax00xa?bM{Riofa~a#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":241900,"triangles":4896,"vertices":14688,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4512363115073917,0,-0.7546900684548534],"max":[0.45003629119412875,1.4820836782455444,0.5874958988590047]},"sizeMeters":[0.901,1.482,1.342],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:29.740Z","updatedAt":"2026-09-07T21:01:48.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25512/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CommercialFrontLoadWasher900LaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25512/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25512/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25512/v1/model.glb\" alt=\"Commercial front load washer 900 (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25512/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25512/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25513","slug":"laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","title":"Stacked commercial tumble dryer pair 800 (Laundromat and Cleaning Services)","summary":"An 800 mm stacked commercial dryer pair: two pockets in one welded frame with a central block carrying both keypad fascias, a lint drawer for each pocket, flank intakes and two rear exhaust spigots.","description":"An 800 mm stacked commercial dryer pair: two pockets in one welded frame with a central block carrying both keypad fascias, a lint drawer for each pocket, flank intakes and two rear exhaust spigots. Overall 0.800 x 1.980 x 1.067 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-lower, door-upper, drawer-lint-lower, drawer-lint-upper. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: door-open, door-close, drawer-open and drawer-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","cdnUrl":"https://cdn.3dassets.dev/assets/25513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-stacked-pair-07b0d0ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/25513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25513/v1/poster.webp","blurhash":"UCDcacD%00-;_NRj9Fxu9FxuxuM{-=axITbI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":277456,"triangles":6360,"vertices":19080,"meshes":13,"materials":5,"textures":0,"animations":["door-open","door-close","drawer-open","drawer-close"],"boundingBox":{"min":[-0.40113892973426146,0,-0.5410317564658563],"max":[0.3999423249943429,1.9811999797821045,0.5259969003145318]},"sizeMeters":[0.801,1.981,1.067],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:31.294Z","updatedAt":"2026-09-07T21:01:48.593Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25513/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function StackedCommercialTumbleDryerPair800LaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25513/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25513/v1/model.glb\" alt=\"Stacked commercial tumble dryer pair 800 (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25513/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25514","slug":"laundrette-and-cleaning-tumble-dryer-single-990f3bba","title":"Commercial tumble dryer 800 (Laundromat and Cleaning Services)","summary":"An 800 mm single pocket commercial tumble dryer: 560 mm louvred door on barrel hinges, a full width lint drawer on its slide axis, flank air intake grilles and a rear exhaust spigot on a stainless plinth.","description":"An 800 mm single pocket commercial tumble dryer: 560 mm louvred door on barrel hinges, a full width lint drawer on its slide axis, flank air intake grilles and a rear exhaust spigot on a stainless plinth. Overall 0.800 x 1.320 x 1.107 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum, drawer-lint. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: drawer-open, drawer-close, door-open and door-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-tumble-dryer-single-990f3bba","cdnUrl":"https://cdn.3dassets.dev/assets/25514/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-single-990f3bba","thumbnailUrl":"https://cdn.3dassets.dev/assets/25514/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25514/v1/poster.webp","blurhash":"UHFFv%Rj00xa_NRjD%of00xuxuRjxvxuM{Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":191828,"triangles":3816,"vertices":11448,"meshes":10,"materials":5,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.4011896778859097,0,-0.5610411086097229],"max":[0.4000171080345812,1.3212000131607056,0.5456508913054932]},"sizeMeters":[0.801,1.321,1.107],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:31.331Z","updatedAt":"2026-09-07T21:01:48.579Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25514/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CommercialTumbleDryer800LaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25514/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25514/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25514/v1/model.glb\" alt=\"Commercial tumble dryer 800 (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25514/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25514/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25522","slug":"laundrette-and-cleaning-machine-bank-end-panel-7d031e9b","title":"Machine bank end panel (Laundromat and Cleaning Services)","summary":"The folded stainless end panel that closes a machine bank: a flat blade with front and rear returns, a capping rail, a set back kick, two levelling feet and a bolt line down the visible face.","description":"The folded stainless end panel that closes a machine bank: a flat blade with front and rear returns, a capping rail, a set back kick, two levelling feet and a bolt line down the visible face. Overall 0.060 x 1.320 x 0.862 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-machine-bank-end-panel-7d031e9b","cdnUrl":"https://cdn.3dassets.dev/assets/25522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-machine-bank-end-panel-7d031e9b","thumbnailUrl":"https://cdn.3dassets.dev/assets/25522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25522/v1/poster.webp","blurhash":"U67-f[t700R*_NRj4nxuxuV@M{xu.8RjD%x]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31784,"triangles":624,"vertices":1872,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.031213734463852266,0,-0.4300363341143844],"max":[0.02997161897715241,1.3200000524520874,0.431988868613494]},"sizeMeters":[0.061,1.32,0.862],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:35.733Z","updatedAt":"2026-09-07T21:01:48.831Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25522/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MachineBankEndPanelLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25522/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25522/v1/model.glb\" alt=\"Machine bank end panel (Laundromat and Cleaning Services)\" 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/25522/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/25522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25510","slug":"laundrette-and-cleaning-stacked-washer-dryer-2a7f65f2","title":"Stacked commercial washer and dryer 700 (Laundromat and Cleaning Services)","summary":"A 700 mm stacked commercial pair in one welded frame: washer below and dryer above with separate portholes, a shared stainless control band between them, corner stiles binding the stack and a lint drawer under the upper door.","description":"A 700 mm stacked commercial pair in one welded frame: washer below and dryer above with separate portholes, a shared stainless control band between them, corner stiles binding the stack and a lint drawer under the upper door. Overall 0.700 x 1.950 x 1.109 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-washer, door-dryer. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-stacked-washer-dryer-2a7f65f2","cdnUrl":"https://cdn.3dassets.dev/assets/25510/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-stacked-washer-dryer-2a7f65f2","thumbnailUrl":"https://cdn.3dassets.dev/assets/25510/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25510/v1/poster.webp","blurhash":"UACsmtof00jZ~qfk9Eay4nj?-:WB-;j[IUWB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":279200,"triangles":5740,"vertices":17220,"meshes":10,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3512467355028108,0,-0.637476428668301],"max":[0.3500467151895479,1.951200008392334,0.47203160164033675]},"sizeMeters":[0.701,1.951,1.11],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:29.640Z","updatedAt":"2026-09-07T21:01:48.489Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25510/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function StackedCommercialWasherAndDryer700LaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25510/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25510/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25510/v1/model.glb\" alt=\"Stacked commercial washer and dryer 700 (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25510/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25510/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25528","slug":"laundrette-and-cleaning-folding-table-island-86a76afc","title":"Folding island table 1.8 m (Laundromat and Cleaning Services)","summary":"A 1.8 m double sided folding island: a postformed laminate top on a welded stainless frame with levelling feet, a wire undershelf, a moulded linen bin under each end and a hooked bag rail down the working flank.","description":"A 1.8 m double sided folding island: a postformed laminate top on a welded stainless frame with levelling feet, a wire undershelf, a moulded linen bin under each end and a hooked bag rail down the working flank. Overall 1.800 x 0.900 x 0.982 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-folding-table-island-86a76afc","cdnUrl":"https://cdn.3dassets.dev/assets/25528/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-folding-table-island-86a76afc","thumbnailUrl":"https://cdn.3dassets.dev/assets/25528/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25528/v1/poster.webp","blurhash":"UPEfH7j]9Fxa~p%MIVM{4n%Lt7IU4.aexafl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":127088,"triangles":2580,"vertices":7740,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.00002602109281990561,-0.46006651816305677],"max":[0.8999999761581421,0.9011739753785851,0.5219598247994763]},"sizeMeters":[1.8,0.901,0.982],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:37.628Z","updatedAt":"2026-09-07T21:01:49.031Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25528/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingIslandTable18MLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25528/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25528/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25528/v1/model.glb\" alt=\"Folding island table 1.8 m (Laundromat and Cleaning Services)\" 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/25528/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/25528/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25529","slug":"laundrette-and-cleaning-folding-table-wall-53964a42","title":"Wall folding shelf 1.5 m (Laundromat and Cleaning Services)","summary":"A 1.5 m wall mounted folding shelf on folded gallows brackets with tie rods, a postformed laminate top at 900 mm, a hanging rail on drop brackets above it and a capping shelf over the rail.","description":"A 1.5 m wall mounted folding shelf on folded gallows brackets with tie rods, a postformed laminate top at 900 mm, a hanging rail on drop brackets above it and a capping shelf over the rail. Overall 1.500 x 1.500 x 0.620 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-folding-table-wall-53964a42","cdnUrl":"https://cdn.3dassets.dev/assets/25529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-folding-table-wall-53964a42","thumbnailUrl":"https://cdn.3dassets.dev/assets/25529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25529/v1/poster.webp","blurhash":"UFG9234m00-;~q-;9FD%00%g-pIUNIIoMxs-","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62488,"triangles":1252,"vertices":3756,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0,-0.3099591117538131],"max":[0.75,1.5,0.31003525483890926]},"sizeMeters":[1.5,1.5,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:37.822Z","updatedAt":"2026-09-07T21:01:49.068Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25529/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallFoldingShelf15MLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25529/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25529/v1/model.glb\" alt=\"Wall folding shelf 1.5 m (Laundromat and Cleaning Services)\" 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/25529/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/25529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25542","slug":"laundrette-and-cleaning-seating-bench-moulded-5fc23802","title":"Waiting bench 1.6 m (Laundromat and Cleaning Services)","summary":"A 1.6 m laundrette waiting bench: a pressed perforated seat pan with a rolled front lip and a raked perforated back on a welded steel beam frame with base plates and a stretcher tube.","description":"A 1.6 m laundrette waiting bench: a pressed perforated seat pan with a rolled front lip and a raked perforated back on a welded steel beam frame with base plates and a stretcher tube. Overall 1.540 x 1.042 x 0.523 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-seating-bench-moulded-5fc23802","cdnUrl":"https://cdn.3dassets.dev/assets/25542/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-seating-bench-moulded-5fc23802","thumbnailUrl":"https://cdn.3dassets.dev/assets/25542/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25542/v1/poster.webp","blurhash":"UJE{L6oe03t6~R-.E3IV0NxUxsIs9cxtxsIp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71088,"triangles":1428,"vertices":4284,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.7699999809265137,0.000030183523259397216,-0.29268746285074976],"max":[0.7699999809265137,1.0417592491684324,0.22996079782019763]},"sizeMeters":[1.54,1.042,0.523],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:44.327Z","updatedAt":"2026-09-07T21:01:49.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25542/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingBench16MLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25542/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25542/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25542/v1/model.glb\" alt=\"Waiting bench 1.6 m (Laundromat and Cleaning Services)\" 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/25542/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/25542/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25544","slug":"laundrette-and-cleaning-waiting-chair-run-3-28607b1c","title":"Waiting chair run, three seat (Laundromat and Cleaning Services)","summary":"A three seat beam chair run on a cantilever frame with sled feet: crowned and piped seat cushions, upright piped back pads on raked steel carriers and four tubular armrests with soft top pads.","description":"A three seat beam chair run on a cantilever frame with sled feet: crowned and piped seat cushions, upright piped back pads on raked steel carriers and four tubular armrests with soft top pads. Overall 1.702 x 0.848 x 0.531 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-waiting-chair-run-3-28607b1c","cdnUrl":"https://cdn.3dassets.dev/assets/25544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-waiting-chair-run-3-28607b1c","thumbnailUrl":"https://cdn.3dassets.dev/assets/25544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25544/v1/poster.webp","blurhash":"U9B:y,Rn00b0~o-=D*9F00xrx^M|01RNxuxv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":232732,"triangles":4780,"vertices":14340,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8510000109672546,-0.00004330898737725519,-0.2710481609415957],"max":[0.8510000109672546,0.8477194888755044,0.2599827672553011]},"sizeMeters":[1.702,0.848,0.531],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:45.590Z","updatedAt":"2026-09-07T21:01:49.452Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingChairRunThreeSeatLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25544/v1/model.glb\" alt=\"Waiting chair run, three seat (Laundromat and Cleaning Services)\" 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/25544/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/25544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25550","slug":"laundrette-and-cleaning-magazine-rack-96ad7ff9","title":"Magazine rack (Laundromat and Cleaning Services)","summary":"A floor standing magazine rack: four sloping shelves with retaining lips on a bent tube frame with base plates, stocked with blank magazines and leaflets and topped by a header panel.","description":"A floor standing magazine rack: four sloping shelves with retaining lips on a bent tube frame with base plates, stocked with blank magazines and leaflets and topped by a header panel. Overall 0.520 x 1.169 x 0.304 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-magazine-rack-96ad7ff9","cdnUrl":"https://cdn.3dassets.dev/assets/25550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-magazine-rack-96ad7ff9","thumbnailUrl":"https://cdn.3dassets.dev/assets/25550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25550/v1/poster.webp","blurhash":"U4AK2Lt700Ri~pxu00ITDjRj%ft8t4t7bJMx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":66028,"triangles":1308,"vertices":3924,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2599829781858377,0,-0.1540182333688684],"max":[0.2599829781858377,1.1689329147338867,0.15002032632636506]},"sizeMeters":[0.52,1.169,0.304],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T21:01:49.584Z","updatedAt":"2026-09-07T21:01:49.690Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25550/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagazineRackLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25550/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25550/v1/model.glb\" alt=\"Magazine rack (Laundromat and Cleaning Services)\" 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/25550/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/25550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25517","slug":"laundrette-and-cleaning-detergent-vending-unit-5d2fe188","title":"Detergent vending unit (Laundromat and Cleaning Services)","summary":"A 620 mm glazed detergent vending unit: four product shelves of sachets behind a framed window, a two column selection keypad, a coin mechanism with a return cup, a locked cash door and a hinged delivery flap.","description":"A 620 mm glazed detergent vending unit: four product shelves of sachets behind a framed window, a two column selection keypad, a coin mechanism with a return cup, a locked cash door and a hinged delivery flap. Overall 0.620 x 1.800 x 0.575 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: flap-delivery. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-detergent-vending-unit-5d2fe188","cdnUrl":"https://cdn.3dassets.dev/assets/25517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-detergent-vending-unit-5d2fe188","thumbnailUrl":"https://cdn.3dassets.dev/assets/25517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25517/v1/poster.webp","blurhash":"U6Cj2|-;00RP_3t7D$M{00f6%MIU~qxu4nD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":221688,"triangles":4474,"vertices":13422,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3100282845530202,0,-0.30066876876134613],"max":[0.31037974334093826,1.8020485639572144,0.27399916581531886]},"sizeMeters":[0.62,1.802,0.575],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:32.957Z","updatedAt":"2026-09-07T21:01:48.704Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25517/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DetergentVendingUnitLaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25517/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25517/v1/model.glb\" alt=\"Detergent vending unit (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25517/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25549","slug":"laundrette-and-cleaning-vending-machine-drinks-3c8c22ca","title":"Drinks vending machine (Laundromat and Cleaning Services)","summary":"A glass front drinks vender on a welded plinth: four product shelves of bottles behind a framed window, a selection keypad column with a graphic screen, a coin mechanism with a return cup, a card reader and a hinged delivery flap.","description":"A glass front drinks vender on a welded plinth: four product shelves of bottles behind a framed window, a selection keypad column with a graphic screen, a coin mechanism with a return cup, a card reader and a hinged delivery flap. Overall 0.860 x 1.860 x 0.822 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: flap-delivery. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-vending-machine-drinks-3c8c22ca","cdnUrl":"https://cdn.3dassets.dev/assets/25549/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-vending-machine-drinks-3c8c22ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/25549/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25549/v1/poster.webp","blurhash":"UDDJS7xu00-;~qt79FRj4nRjt6IV%MWBIUj?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":217556,"triangles":4388,"vertices":13164,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4300656219490222,0,-0.3912396356315635],"max":[0.4303808114838585,1.8620485067367554,0.4324634583869801]},"sizeMeters":[0.86,1.862,0.824],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:48.661Z","updatedAt":"2026-09-07T21:01:49.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25549/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DrinksVendingMachineLaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25549/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25549/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25549/v1/model.glb\" alt=\"Drinks vending machine (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25549/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25549/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25516","slug":"laundrette-and-cleaning-coin-box-column-6a709d03","title":"Coin payment column (Laundromat and Cleaning Services)","summary":"A 300 mm stainless payment column for a machine bank: coin slot escutcheon, mechanical counter window, coin return cup, cycle selection buttons, a price card frame and a locked cash box door on a welded plinth.","description":"A 300 mm stainless payment column for a machine bank: coin slot escutcheon, mechanical counter window, coin return cup, cycle selection buttons, a price card frame and a locked cash box door on a welded plinth. Overall 0.300 x 1.100 x 0.555 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-coin-box-column-6a709d03","cdnUrl":"https://cdn.3dassets.dev/assets/25516/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-coin-box-column-6a709d03","thumbnailUrl":"https://cdn.3dassets.dev/assets/25516/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25516/v1/poster.webp","blurhash":"UCCP^na#00t6~qa#9Ej?9Ft7-:M_ogWBWAt7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90800,"triangles":1808,"vertices":5424,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.15117607883890508,0,-0.2959807918257208],"max":[0.1500015286465831,1.101199984550476,0.25900156356758786]},"sizeMeters":[0.301,1.101,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:32.508Z","updatedAt":"2026-09-07T21:01:48.666Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25516/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoinPaymentColumnLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25516/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25516/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25516/v1/model.glb\" alt=\"Coin payment column (Laundromat and Cleaning Services)\" 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/25516/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/25516/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25518","slug":"laundrette-and-cleaning-card-payment-column-9094f43b","title":"Card payment column (Laundromat and Cleaning Services)","summary":"The payment column fitted with a contactless card head instead of the coin mechanism: an angled reader pad with a target ring, a graphic screen above it and a receipt slot, on the same 300 mm column and plinth.","description":"The payment column fitted with a contactless card head instead of the coin mechanism: an angled reader pad with a target ring, a graphic screen above it and a receipt slot, on the same 300 mm column and plinth. Overall 0.300 x 1.100 x 0.575 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Functional variant of coin-box-column. Connectors: bank-left (machine-bank), bank-right (machine-bank). Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-card-payment-column-9094f43b","cdnUrl":"https://cdn.3dassets.dev/assets/25518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-card-payment-column-9094f43b","thumbnailUrl":"https://cdn.3dassets.dev/assets/25518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25518/v1/poster.webp","blurhash":"UBCj2|Rj00-;~qR*9Exa9Fxu%MD*t8ofRiWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":89888,"triangles":1788,"vertices":5364,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.15117607883890508,0,-0.29597978398229313],"max":[0.1500015286465831,1.101199984550476,0.27946781076607524]},"sizeMeters":[0.301,1.101,0.575],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:33.999Z","updatedAt":"2026-09-07T21:01:48.693Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CardPaymentColumnLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25518/v1/model.glb\" alt=\"Card payment column (Laundromat and Cleaning Services)\" 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/25518/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/25518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25531","slug":"laundrette-and-cleaning-laundry-cart-rolling-153d62be","title":"Rolling laundry cart (Laundromat and Cleaning Services)","summary":"A canvas laundry truck: a welded tube frame on four swivel castors with a rolled top rim, a slung canvas liner sagging to the deck, a folded linen load and a tubular push handle.","description":"A canvas laundry truck: a welded tube frame on four swivel castors with a rolled top rim, a slung canvas liner sagging to the deck, a folded linen load and a tubular push handle. Overall 0.832 x 0.976 x 0.608 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-laundry-cart-rolling-153d62be","cdnUrl":"https://cdn.3dassets.dev/assets/25531/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundry-cart-rolling-153d62be","thumbnailUrl":"https://cdn.3dassets.dev/assets/25531/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25531/v1/poster.webp","blurhash":"U7C%Ed%M00IU_2M|D%xu00D%_N.89Zae%Log","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":118220,"triangles":2380,"vertices":7140,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.41600810973896923,0.000010682601735999275,-0.30589544826348664],"max":[0.41600810973896923,0.9758673310279846,0.30249764672291085]},"sizeMeters":[0.832,0.976,0.608],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:39.283Z","updatedAt":"2026-09-07T21:01:49.105Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25531/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RollingLaundryCartLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25531/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25531/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25531/v1/model.glb\" alt=\"Rolling laundry cart (Laundromat and Cleaning Services)\" 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/25531/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/25531/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25532","slug":"laundrette-and-cleaning-wheeled-hamper-833a2022","title":"Wheeled laundry hamper (Laundromat and Cleaning Services)","summary":"A moulded wheeled hamper on four swivel castors: a tapered tub with a rolled rim and side grips, a mesh liner basket and a hinged lid on a named pivot at the back edge.","description":"A moulded wheeled hamper on four swivel castors: a tapered tub with a rolled rim and side grips, a mesh liner basket and a hinged lid on a named pivot at the back edge. Overall 0.634 x 0.896 x 0.527 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: lid. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-wheeled-hamper-833a2022","cdnUrl":"https://cdn.3dassets.dev/assets/25532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-hamper-833a2022","thumbnailUrl":"https://cdn.3dassets.dev/assets/25532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25532/v1/poster.webp","blurhash":"UBEyVo?b009E^bt7NOV@00M__4xvE3s+e,M}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":140500,"triangles":2816,"vertices":8448,"meshes":6,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.31700613755482315,0,-0.26351429840529533],"max":[0.31700613755482315,0.8959983032022218,0.26351429840529533]},"sizeMeters":[0.634,0.896,0.527],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:40.876Z","updatedAt":"2026-09-07T21:01:49.128Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WheeledLaundryHamperLaundromatAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/25532/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25532/v1/model.glb\" alt=\"Wheeled laundry hamper (Laundromat and Cleaning Services)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/25532/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/25532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"25572","slug":"laundrette-and-cleaning-wet-floor-sign-0297c964","title":"Wet floor sign (Laundromat and Cleaning Services)","summary":"An A frame wet floor sign: two moulded blades hinged at the top with blank warning panels, folded foot rails and a carry handle on the hinge tube.","description":"An A frame wet floor sign: two moulded blades hinged at the top with blank warning panels, folded foot rails and a carry handle on the hinge tube. Overall 0.300 x 0.609 x 0.347 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-wet-floor-sign-0297c964","cdnUrl":"https://cdn.3dassets.dev/assets/25572/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wet-floor-sign-0297c964","thumbnailUrl":"https://cdn.3dassets.dev/assets/25572/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25572/v1/poster.webp","blurhash":"U9D]Ins800kX^~RjM|%K049d?Y~Q%GNL9d${","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24428,"triangles":472,"vertices":1416,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14999344669277662,0,-0.17366293815689396],"max":[0.14999344669277662,0.6087946891784668,0.17366293815689396]},"sizeMeters":[0.3,0.609,0.347],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:41:00.676Z","updatedAt":"2026-09-07T21:01:50.665Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25572/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetFloorSignLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25572/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25572/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25572/v1/model.glb\" alt=\"Wet floor sign (Laundromat and Cleaning Services)\" 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/25572/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/25572/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25552","slug":"laundrette-and-cleaning-wall-clock-60eadd33","title":"Wall clock (Laundromat and Cleaning Services)","summary":"A 340 mm wall clock: a chamfered bezel ring with a stepped rebate, a blank dial with pressed hour and minute marks, three hands on a centre boss and a rebated lens ring.","description":"A 340 mm wall clock: a chamfered bezel ring with a stepped rebate, a blank dial with pressed hour and minute marks, three hands on a centre boss and a rebated lens ring. Overall 0.340 x 0.340 x 0.123 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-wall-clock-60eadd33","cdnUrl":"https://cdn.3dassets.dev/assets/25552/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wall-clock-60eadd33","thumbnailUrl":"https://cdn.3dassets.dev/assets/25552/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25552/v1/poster.webp","blurhash":"UCBpqc_30000t8tQt7M{009G~q?bWAM{Ioxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51360,"triangles":988,"vertices":2964,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.17000000178813934,0,-0.06149994789689772],"max":[0.17000000178813934,0.3400000035762787,0.06149894138419742]},"sizeMeters":[0.34,0.34,0.123],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:48.884Z","updatedAt":"2026-09-07T21:01:49.637Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25552/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallClockLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25552/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25552/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25552/v1/model.glb\" alt=\"Wall clock (Laundromat and Cleaning Services)\" 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/25552/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/25552/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"25548","slug":"laundrette-and-cleaning-notice-board-2b72688c","title":"Framed notice board (Laundromat and Cleaning Services)","summary":"A 900 mm framed notice board: a felt lined backing panel with four blank notices held by push pins, a chamfered aluminium surround with a lower pen rail and a carcass panel for wall fixing.","description":"A 900 mm framed notice board: a felt lined backing panel with four blank notices held by push pins, a chamfered aluminium surround with a lower pen rail and a carcass panel for wall fixing. Overall 0.900 x 0.700 x 0.065 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Assembly: drop into place on the floor or the documented grid; parts named above are separate nodes that a consumer can rotate or slide. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-notice-board-2b72688c","cdnUrl":"https://cdn.3dassets.dev/assets/25548/v1/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-notice-board-2b72688c","thumbnailUrl":"https://cdn.3dassets.dev/assets/25548/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/25548/v1/poster.webp","blurhash":"UAE3I~%M00NG_3?bIU9F00j[~pRjbKofV=oc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35884,"triangles":680,"vertices":2040,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.00002135964469812679,-0.035012527384733746],"max":[0.451200008392334,0.7012213694993985,0.029993591311649748]},"sizeMeters":[0.901,0.701,0.065],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T20:40:47.263Z","updatedAt":"2026-09-07T21:01:49.550Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/25548/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FramedNoticeBoardLaundromatAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/25548/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/25548/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/25548/v1/model.glb\" alt=\"Framed notice board (Laundromat and Cleaning Services)\" 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/25548/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/25548/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}