{"data":{"id":129,"slug":"laundrette-and-cleaning","title":"Laundrette and Cleaning Services","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.","description":"The Interiors and Commerce stream laundrette pack, art family launder-rl-v1, in metre units with the user side toward +Z. Commercial washers, extractors and tumble dryers stand on welded stainless plinths with heavy portholes on barrel hinges, cast locking handles, stainless cage collars, bolted service panels and sloped keypad fascias, and coin or card payment columns tile between them on the machine bank grid. Folding, sorting and finishing equipment, the customer counter, seating, vending and shopfront modules, a solvent dry cleaning machine with its distillation column, garment rails and carousel, all contract janitorial equipment and the waste and recycling yard complete the set. Machine bank, counter run, shopfront run, garment rail and bin store connectors are asserted in the connector cases scene. Domestic washers, dryers, the utility room and domestic vacuums belong to home-appliances-and-utility. Every porthole, door, gate, lid, hatch, flap and lint drawer ships a rigid open and close clip on its own pivot: node transforms only, no skinning. CC0 geometry prepared for human review.","url":"https://3dassets.dev/packs/laundrette-and-cleaning","coverUrl":"https://cdn.3dassets.dev/assets/10893/v2/poster.webp","assetCount":94,"aiGenerated":true,"aiGeneratedAssetCount":94,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":17640000,"totalTriangles":389624,"starterScene":{"id":"10893","slug":"laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","title":"Laundrette with two machine banks, folding island and seating (Laundrette and Cleaning Services)","summary":"Composed example for Laundrette and Cleaning Services.","description":"A working laundrette laid out as a customer sees it. Along the back wall a bank of two 700 mm commercial washers, a coin payment column and a 900 mm high capacity washer runs between two stainless end panels, with the water and drainage service run and the extraction riser behind it. Facing it across the room is a second bank of a tumble dryer, a stacked dryer pair, a card payment column and a stacked washer and dryer. The folding island sits between the banks with a laundry cart and a wet floor sign beside it, and the customer end carries the drop off counter and a counter module, a waiting bench and a three seat chair run, the detergent vender, the notice board hung on the inside of the shop window, a magazine rack and three shopfront bays with the entrance door in the middle. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10893/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10893/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10893/v2/poster.webp","blurhash":"U5AK2F-:008_ahoKWAIV00IV~q.7ITNIt9-:","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2347468,"triangles":58498,"vertices":126541,"meshes":128,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-3.2600236772069775,-0.00004330898737725519,-3.3899987792596207],"max":[3.14268746285075,3.000022091150873,4.039052339401944]},"sizeMeters":[6.403,3,7.429],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:33.386Z","updatedAt":"2026-09-07T11:47:25.860Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10893/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaundretteWithTwoMachineBanksFoldingIslandAndSeatingLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10893/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10893/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10893/v2/model.glb\" alt=\"Laundrette with two machine banks, folding island and seating (Laundrette 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/10893/v2/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/10893/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"10753","slug":"laundrette-and-cleaning-washer-commercial-small-6bc802d5","title":"Commercial front load washer 700 (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-washer-commercial-small-6bc802d5","cdnUrl":"https://cdn.3dassets.dev/assets/10753/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-small-6bc802d5","thumbnailUrl":"https://cdn.3dassets.dev/assets/10753/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10753/v2/poster.webp","blurhash":"UFD]oAaz00xu~qj[9Fju00t7-:IoWBj[j?ay","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":204596,"triangles":4120,"vertices":12360,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3499942078322848,0,-0.6274723410606384],"max":[0.3499942078322848,1.100000023841858,0.4523941924123087]},"sizeMeters":[0.7,1.1,1.08],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:01.345Z","updatedAt":"2026-09-07T11:46:48.467Z","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/10753/v2/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 CommercialFrontLoadWasher700LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10753/v2/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/10753/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10753/v2/model.glb\" alt=\"Commercial front load washer 700 (Laundrette 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/10753/v2/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/10753/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10754","slug":"laundrette-and-cleaning-washer-commercial-large-343d5ad1","title":"Commercial front load washer 900 (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-washer-commercial-large-343d5ad1","cdnUrl":"https://cdn.3dassets.dev/assets/10754/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-large-343d5ad1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10754/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10754/v2/poster.webp","blurhash":"UDDcadM{00xu_NWBD%ae00t7?bM{RiofWCf8","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":241880,"triangles":4896,"vertices":14688,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.45000306756385755,0,-0.7546900684548534],"max":[0.45000306756385755,1.4820836782455444,0.5874958988590047]},"sizeMeters":[0.9,1.482,1.342],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:00.987Z","updatedAt":"2026-09-07T11:46:48.313Z","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/10754/v2/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 CommercialFrontLoadWasher900LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10754/v2/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/10754/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10754/v2/model.glb\" alt=\"Commercial front load washer 900 (Laundrette 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/10754/v2/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/10754/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10758","slug":"laundrette-and-cleaning-washer-extractor-rigid-mount-7f00be1b","title":"Rigid mount high spin washer extractor (Laundrette and Cleaning Services)","summary":"A rigid mount high spin washer extractor bolted to the floor on four welded foot plates, with exposed suspension struts on both flanks, a five port chemical injection manifold above the door and a lever operated side drain valve.","description":"A rigid mount high spin washer extractor bolted to the floor on four welded foot plates, with exposed suspension struts on both flanks, a five port chemical injection manifold above the door and a lever operated side drain valve. Overall 0.994 x 1.300 x 1.282 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. 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-extractor-rigid-mount-7f00be1b","cdnUrl":"https://cdn.3dassets.dev/assets/10758/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-extractor-rigid-mount-7f00be1b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10758/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10758/v2/poster.webp","blurhash":"UDE3F@WV00%M~qa}D%ax00t7-:IURjofayaz","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":233848,"triangles":4728,"vertices":14184,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.45992719598181453,0,-0.7210490012174876],"max":[0.5338844287860061,1.2999999523162842,0.5605295561443887]},"sizeMeters":[0.994,1.3,1.282],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:01.744Z","updatedAt":"2026-09-07T11:46:48.362Z","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/10758/v2/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 RigidMountHighSpinWasherExtractorLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10758/v2/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/10758/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10758/v2/model.glb\" alt=\"Rigid mount high spin washer extractor (Laundrette 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/10758/v2/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/10758/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10755","slug":"laundrette-and-cleaning-stacked-washer-dryer-ef6d9c2a","title":"Stacked commercial washer and dryer 700 (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-stacked-washer-dryer-ef6d9c2a","cdnUrl":"https://cdn.3dassets.dev/assets/10755/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-stacked-washer-dryer-ef6d9c2a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10755/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10755/v2/poster.webp","blurhash":"UBC%BSs:00R*_Noe9FR*4.oK%MRk-;oeIUWB","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":279184,"triangles":5740,"vertices":17220,"meshes":10,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3500187779891664,0,-0.637476428668301],"max":[0.3500187779891664,1.9500000476837158,0.4719750482869708]},"sizeMeters":[0.7,1.95,1.109],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:02.147Z","updatedAt":"2026-09-07T11:46:48.414Z","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/10755/v2/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 StackedCommercialWasherAndDryer700LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10755/v2/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/10755/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10755/v2/model.glb\" alt=\"Stacked commercial washer and dryer 700 (Laundrette 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/10755/v2/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/10755/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10756","slug":"laundrette-and-cleaning-tumble-dryer-single-c9390c27","title":"Commercial tumble dryer 800 (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-tumble-dryer-single-c9390c27","cdnUrl":"https://cdn.3dassets.dev/assets/10756/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-single-c9390c27","thumbnailUrl":"https://cdn.3dassets.dev/assets/10756/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10756/v2/poster.webp","blurhash":"UHFFv%NG00xa~qRjD%t700xuxtRQxuxuM{Rk","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":191808,"triangles":3816,"vertices":11448,"meshes":10,"materials":5,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.4000171080345812,0,-0.5610219533573259],"max":[0.4000171080345812,1.3200000524520874,0.5456317360530961]},"sizeMeters":[0.8,1.32,1.107],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:01.847Z","updatedAt":"2026-09-07T11:46:50.100Z","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/10756/v2/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 CommercialTumbleDryer800LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10756/v2/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/10756/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10756/v2/model.glb\" alt=\"Commercial tumble dryer 800 (Laundrette 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/10756/v2/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/10756/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10762","slug":"laundrette-and-cleaning-tumble-dryer-stacked-pair-b69eca5f","title":"Stacked commercial tumble dryer pair 800 (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-tumble-dryer-stacked-pair-b69eca5f","cdnUrl":"https://cdn.3dassets.dev/assets/10762/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-stacked-pair-b69eca5f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10762/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10762/v2/poster.webp","blurhash":"UCDl~CD%00-;~qRj9Fxu9Ft7t7Ri?bWBD%of","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":277436,"triangles":6360,"vertices":19080,"meshes":13,"materials":5,"textures":0,"animations":["door-open","door-close","drawer-open","drawer-close"],"boundingBox":{"min":[-0.3999423249943429,0,-0.540956068750005],"max":[0.3999423249943429,1.9800000190734863,0.5259969003145318]},"sizeMeters":[0.8,1.98,1.067],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:03.750Z","updatedAt":"2026-09-07T11:46:50.050Z","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/10762/v2/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 StackedCommercialTumbleDryerPair800LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10762/v2/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/10762/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10762/v2/model.glb\" alt=\"Stacked commercial tumble dryer pair 800 (Laundrette 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/10762/v2/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/10762/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10764","slug":"laundrette-and-cleaning-washer-plinth-700-b78d311d","title":"Commercial washer plinth 700 (Laundrette 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-b78d311d","cdnUrl":"https://cdn.3dassets.dev/assets/10764/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-plinth-700-b78d311d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10764/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10764/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.312Z","updatedAt":"2026-09-07T11:46:50.428Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10764/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommercialWasherPlinth700LaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10764/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10764/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10764/v2/model.glb\" alt=\"Commercial washer plinth 700 (Laundrette 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/10764/v2/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/10764/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10763","slug":"laundrette-and-cleaning-coin-box-column-14607f4c","title":"Coin payment column (Laundrette 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-14607f4c","cdnUrl":"https://cdn.3dassets.dev/assets/10763/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-coin-box-column-14607f4c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10763/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10763/v2/poster.webp","blurhash":"UCCZeMof00j?~qof9EWB9Ft7%MIUofWBRjt7","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":90780,"triangles":1808,"vertices":5424,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.1500091588042037,0,-0.2959807918257208],"max":[0.1500091588042037,1.100000023841858,0.25900156356758786]},"sizeMeters":[0.3,1.1,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.255Z","updatedAt":"2026-09-07T11:46:50.184Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10763/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoinPaymentColumnLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10763/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10763/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10763/v2/model.glb\" alt=\"Coin payment column (Laundrette 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/10763/v2/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/10763/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10768","slug":"laundrette-and-cleaning-card-payment-column-44af57bd","title":"Card payment column (Laundrette 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-44af57bd","cdnUrl":"https://cdn.3dassets.dev/assets/10768/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-card-payment-column-44af57bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/10768/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10768/v2/poster.webp","blurhash":"UBCj2{NG00-;~qWB4nt79Fxu%MD%xuofM{ay","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":89864,"triangles":1788,"vertices":5364,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.1500091588042037,0,-0.29597978398229313],"max":[0.1500091588042037,1.100000023841858,0.27946781076607524]},"sizeMeters":[0.3,1.1,0.575],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.724Z","updatedAt":"2026-09-07T11:46:51.642Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10768/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CardPaymentColumnLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10768/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10768/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10768/v2/model.glb\" alt=\"Card payment column (Laundrette 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/10768/v2/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/10768/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10765","slug":"laundrette-and-cleaning-detergent-vending-unit-d60550b0","title":"Detergent vending unit (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-detergent-vending-unit-d60550b0","cdnUrl":"https://cdn.3dassets.dev/assets/10765/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-detergent-vending-unit-d60550b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10765/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10765/v2/poster.webp","blurhash":"U6Cj65-;00aK_4t79FRj00e.x[Io~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":221668,"triangles":4474,"vertices":13422,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.310010673174181,0,-0.30066876876134613],"max":[0.310010673174181,1.7999999523162842,0.27399916581531886]},"sizeMeters":[0.62,1.8,0.575],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.747Z","updatedAt":"2026-09-07T11:46:51.713Z","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/10765/v2/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 DetergentVendingUnitLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10765/v2/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/10765/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10765/v2/model.glb\" alt=\"Detergent vending unit (Laundrette 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/10765/v2/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/10765/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10772","slug":"laundrette-and-cleaning-service-run-water-drainage-e023494a","title":"Machine bank water and drainage run (Laundrette and Cleaning Services)","summary":"A 2 m service run for a machine bank: hot and cold headers on saddle brackets with four lever valve pairs and flexible tails, four open standpipes and a floor channel with a slotted removable grating.","description":"A 2 m service run for a machine bank: hot and cold headers on saddle brackets with four lever valve pairs and flexible tails, four open standpipes and a floor channel with a slotted removable grating. Overall 2.000 x 1.050 x 0.240 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-service-run-water-drainage-e023494a","cdnUrl":"https://cdn.3dassets.dev/assets/10772/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-service-run-water-drainage-e023494a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10772/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10772/v2/poster.webp","blurhash":"U5AwI~a$00o#_3_3IVIT4mt6NED*R:~qMx4-","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":181488,"triangles":3728,"vertices":11184,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1,0.000020576152038431772,-0.11999877925962096],"max":[1,1.0499793761642457,0.11999877925962096]},"sizeMeters":[2,1.05,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:05.104Z","updatedAt":"2026-09-07T11:46:51.929Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10772/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MachineBankWaterAndDrainageRunLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10772/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10772/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10772/v2/model.glb\" alt=\"Machine bank water and drainage run (Laundrette 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/10772/v2/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/10772/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10769","slug":"laundrette-and-cleaning-lint-collection-bin-dce6cd54","title":"Lint collection bin (Laundrette and Cleaning Services)","summary":"A stainless lint collection bin on four swivel castors: a tapered welded body with a rolled rim, a wire liner cage, a hinged mesh lid on barrel hinges and a lid pull handle.","description":"A stainless lint collection bin on four swivel castors: a tapered welded body with a rolled rim, a wire liner cage, a hinged mesh lid on barrel hinges and a lid pull handle. Overall 0.560 x 0.708 x 0.559 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-lint-collection-bin-dce6cd54","cdnUrl":"https://cdn.3dassets.dev/assets/10769/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-lint-collection-bin-dce6cd54","thumbnailUrl":"https://cdn.3dassets.dev/assets/10769/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10769/v2/poster.webp","blurhash":"U38;c7~q00D$4ToL-;R*00M{-;RPxtV@WXtR","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":160316,"triangles":3260,"vertices":9780,"meshes":4,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.27998924225562916,0,-0.3293142947554588],"max":[0.27998924225562916,0.7080011414114447,0.22998208478703097]},"sizeMeters":[0.56,0.708,0.559],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.930Z","updatedAt":"2026-09-07T11:46:52.057Z","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/10769/v2/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 LintCollectionBinLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10769/v2/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/10769/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10769/v2/model.glb\" alt=\"Lint collection bin (Laundrette 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/10769/v2/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/10769/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10770","slug":"laundrette-and-cleaning-laundry-chute-hatch-2c1e205f","title":"Laundry chute hatch (Laundrette and Cleaning Services)","summary":"A wall mounted laundry chute hatch: a pressed frame with a heavy aperture bezel, a counterbalanced hatch on barrel hinges with a bar pull, an angled hopper throat behind it and a blank instruction plate.","description":"A wall mounted laundry chute hatch: a pressed frame with a heavy aperture bezel, a counterbalanced hatch on barrel hinges with a bar pull, an angled hopper throat behind it and a blank instruction plate. Overall 0.620 x 1.050 x 0.357 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: hatch. 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-chute-hatch-2c1e205f","cdnUrl":"https://cdn.3dassets.dev/assets/10770/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundry-chute-hatch-2c1e205f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10770/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10770/v2/poster.webp","blurhash":"U4Cj2_?H004oD$xu%ND%4nRjxut8_4_3D$00","category":{"slug":"buildings","title":"Buildings & Architecture"},"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":66632,"triangles":1264,"vertices":3792,"meshes":7,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3100298940598788,0,-0.36501800987684074],"max":[0.3100298940598788,1.0499999523162842,-0.008002564187574064]},"sizeMeters":[0.62,1.05,0.357],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:04.907Z","updatedAt":"2026-09-07T11:46:53.105Z","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/10770/v2/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 LaundryChuteHatchLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10770/v2/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/10770/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10770/v2/model.glb\" alt=\"Laundry chute hatch (Laundrette 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/10770/v2/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/10770/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10774","slug":"laundrette-and-cleaning-extraction-duct-industrial-1d7c3c8a","title":"Industrial extraction duct riser (Laundrette and Cleaning Services)","summary":"A floor mounted extraction riser: a bolted plenum box with an intake grille, a 260 mm spiral duct rising and turning into a horizontal run with joint bands, two branch take-offs with collars and a support post.","description":"A floor mounted extraction riser: a bolted plenum box with an intake grille, a 260 mm spiral duct rising and turning into a horizontal run with joint bands, two branch take-offs with collars and a support post. Overall 1.670 x 1.766 x 0.467 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-extraction-duct-industrial-1d7c3c8a","cdnUrl":"https://cdn.3dassets.dev/assets/10774/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-extraction-duct-industrial-1d7c3c8a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10774/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10774/v2/poster.webp","blurhash":"U28Ntkxv00Ri~qM{00of00D%%M-=IU~q_300","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":56800,"triangles":1144,"vertices":3432,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.83495145341091,0,-0.233458128173094],"max":[0.83495145341091,1.7655999660491943,0.23342909021019687]},"sizeMeters":[1.67,1.766,0.467],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:05.426Z","updatedAt":"2026-09-07T11:46:53.370Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10774/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IndustrialExtractionDuctRiserLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10774/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10774/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10774/v2/model.glb\" alt=\"Industrial extraction duct riser (Laundrette 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/10774/v2/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/10774/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10775","slug":"laundrette-and-cleaning-machine-bank-end-panel-856481df","title":"Machine bank end panel (Laundrette 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-856481df","cdnUrl":"https://cdn.3dassets.dev/assets/10775/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-machine-bank-end-panel-856481df","thumbnailUrl":"https://cdn.3dassets.dev/assets/10775/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10775/v2/poster.webp","blurhash":"U67-f[t700Rj~qRj4nxtxuWBM{xt.8RjD%xu","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":31764,"triangles":624,"vertices":1872,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.030013734639685968,0,-0.4300363341143844],"max":[0.030013734639685968,1.3200000524520874,0.431988868613494]},"sizeMeters":[0.06,1.32,0.862],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:06.694Z","updatedAt":"2026-09-07T11:46:53.580Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10775/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MachineBankEndPanelLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10775/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10775/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10775/v2/model.glb\" alt=\"Machine bank end panel (Laundrette 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/10775/v2/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/10775/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10776","slug":"laundrette-and-cleaning-barrier-washer-hygienic-b43ca7fb","title":"Hygienic barrier washer (Laundrette and Cleaning Services)","summary":"A large barrier washer that passes through a partition: a 1.06 m square cabinet on a welded plinth with a wall collar flange, a 560 mm porthole, a full width keypad fascia with status lamps and a stepped loading platform.","description":"A large barrier washer that passes through a partition: a 1.06 m square cabinet on a welded plinth with a wall collar flange, a 560 mm porthole, a full width keypad fascia with status lamps and a stepped loading platform. Overall 1.200 x 1.591 x 1.673 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. 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-barrier-washer-hygienic-b43ca7fb","cdnUrl":"https://cdn.3dassets.dev/assets/10776/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-barrier-washer-hygienic-b43ca7fb","thumbnailUrl":"https://cdn.3dassets.dev/assets/10776/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10776/v2/poster.webp","blurhash":"UAECzmWC00oc~qM{4nxu00%3-;RjkBogafof","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":226148,"triangles":4568,"vertices":13704,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.600028854696515,0,-0.793332693571683],"max":[0.600028854696515,1.5908561944961548,0.880000560370144]},"sizeMeters":[1.2,1.591,1.673],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.019Z","updatedAt":"2026-09-07T11:46:53.684Z","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/10776/v2/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 HygienicBarrierWasherLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10776/v2/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/10776/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10776/v2/model.glb\" alt=\"Hygienic barrier washer (Laundrette 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/10776/v2/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/10776/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10777","slug":"laundrette-and-cleaning-bulk-detergent-dosing-rack-fffb8fc2","title":"Bulk detergent dosing rack (Laundrette and Cleaning Services)","summary":"A bulk chemical dosing rack: three moulded detergent drums with caps and blank label bands standing in a bunded tray on a welded frame, with three peristaltic pump heads on the gantry above and delivery tubing.","description":"A bulk chemical dosing rack: three moulded detergent drums with caps and blank label bands standing in a bunded tray on a welded frame, with three peristaltic pump heads on the gantry above and delivery tubing. Overall 0.935 x 1.360 x 0.435 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-bulk-detergent-dosing-rack-fffb8fc2","cdnUrl":"https://cdn.3dassets.dev/assets/10777/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-bulk-detergent-dosing-rack-fffb8fc2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10777/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10777/v2/poster.webp","blurhash":"UBCP@d%M00IU_4t8D$M{N2a~xUoc_2xu9GD%","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":114660,"triangles":2304,"vertices":6912,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4674727671473894,0,-0.21750786080403925],"max":[0.4674727671473894,1.3600000143051147,0.21750786080403925]},"sizeMeters":[0.935,1.36,0.435],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.244Z","updatedAt":"2026-09-07T11:46:54.651Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10777/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BulkDetergentDosingRackLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10777/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10777/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10777/v2/model.glb\" alt=\"Bulk detergent dosing rack (Laundrette 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/10777/v2/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/10777/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10780","slug":"laundrette-and-cleaning-washer-commercial-open-door-99ab5c42","title":"Commercial washer 700, open door (Laundrette and Cleaning Services)","summary":"The 700 mm commercial washer with its porthole swung fully open on the hinge axis, showing the perforated stainless wash cage with its stiffening rings and three lifters inside the pressed door collar.","description":"The 700 mm commercial washer with its porthole swung fully open on the hinge axis, showing the perforated stainless wash cage with its stiffening rings and three lifters inside the pressed door collar. Overall 0.907 x 1.100 x 1.372 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. Functional variant of washer-commercial-small. 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-washer-commercial-open-door-99ab5c42","cdnUrl":"https://cdn.3dassets.dev/assets/10780/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-open-door-99ab5c42","thumbnailUrl":"https://cdn.3dassets.dev/assets/10780/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10780/v2/poster.webp","blurhash":"UDD]rH9F00?b~qM{D%%M00t6-;WAIUoLWVWB","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":220616,"triangles":4472,"vertices":13416,"meshes":8,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5566793926909726,0,-0.6274723410606384],"max":[0.3499942078322848,1.100000023841858,0.744410398721695]},"sizeMeters":[0.907,1.1,1.372],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.430Z","updatedAt":"2026-09-07T11:46:54.946Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10780/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommercialWasher700OpenDoorLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10780/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10780/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10780/v2/model.glb\" alt=\"Commercial washer 700, open door (Laundrette 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/10780/v2/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/10780/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10782","slug":"laundrette-and-cleaning-tumble-dryer-open-door-3dcfa5b9","title":"Commercial tumble dryer 800, open door (Laundrette and Cleaning Services)","summary":"The 800 mm commercial tumble dryer with its louvred door swung open on the hinge axis, showing the stainless tumbler cage, its stiffening rings and lifters behind the pressed aperture collar.","description":"The 800 mm commercial tumble dryer with its louvred door swung open on the hinge axis, showing the stainless tumbler cage, its stiffening rings and lifters behind the pressed aperture collar. Overall 1.105 x 1.320 x 1.514 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. Functional variant of tumble-dryer-single. 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-tumble-dryer-open-door-3dcfa5b9","cdnUrl":"https://cdn.3dassets.dev/assets/10782/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-open-door-3dcfa5b9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10782/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10782/v2/poster.webp","blurhash":"UMECweM{00t6~qRjD$t79Foft7ofRjt7RjfR","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":207144,"triangles":4168,"vertices":12504,"meshes":10,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000171080345812,0,-0.5610219533573259],"max":[0.7052368098437257,1.3200000524520874,0.9530566301269108]},"sizeMeters":[1.105,1.32,1.514],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.503Z","updatedAt":"2026-09-07T11:46:55.210Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10782/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommercialTumbleDryer800OpenDoorLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10782/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10782/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10782/v2/model.glb\" alt=\"Commercial tumble dryer 800, open door (Laundrette 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/10782/v2/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/10782/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10781","slug":"laundrette-and-cleaning-folding-table-island-f5af4f7f","title":"Folding island table 1.8 m (Laundrette 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-f5af4f7f","cdnUrl":"https://cdn.3dassets.dev/assets/10781/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-folding-table-island-f5af4f7f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10781/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10781/v2/poster.webp","blurhash":"UQEfKEof9GtQ~W%LIoM{4n%2t7IV4:aet7bI","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.000014163631251562503,-0.46006651816305677],"max":[0.8999999761581421,0.9000226570124534,0.5219598247994763]},"sizeMeters":[1.8,0.9,0.982],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.570Z","updatedAt":"2026-09-07T11:46:55.454Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10781/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingIslandTable18MLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10781/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10781/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10781/v2/model.glb\" alt=\"Folding island table 1.8 m (Laundrette 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/10781/v2/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/10781/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10784","slug":"laundrette-and-cleaning-folding-table-wall-d5975d2d","title":"Wall folding shelf 1.5 m (Laundrette 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-d5975d2d","cdnUrl":"https://cdn.3dassets.dev/assets/10784/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-folding-table-wall-d5975d2d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10784/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10784/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:07.870Z","updatedAt":"2026-09-07T11:46:56.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10784/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallFoldingShelf15MLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10784/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10784/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10784/v2/model.glb\" alt=\"Wall folding shelf 1.5 m (Laundrette 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/10784/v2/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/10784/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10786","slug":"laundrette-and-cleaning-sorting-bench-f3b37b42","title":"Laundry sorting bench (Laundrette and Cleaning Services)","summary":"A 1.5 m sorting bench: a laminate top on a stainless frame with three sling hoops beneath, each carrying a canvas sorting bag, and a blank instruction plate on the apron.","description":"A 1.5 m sorting bench: a laminate top on a stainless frame with three sling hoops beneath, each carrying a canvas sorting bag, and a blank instruction plate on the apron. Overall 1.500 x 0.880 x 0.705 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-sorting-bench-f3b37b42","cdnUrl":"https://cdn.3dassets.dev/assets/10786/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-sorting-bench-f3b37b42","thumbnailUrl":"https://cdn.3dassets.dev/assets/10786/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10786/v2/poster.webp","blurhash":"URE.;8xu4:og~W%MM{Rj9Gt7xsRjD%s-bIM}","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":81988,"triangles":1628,"vertices":4884,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,-0.00003417562106144967,-0.3499481185338908],"max":[0.75,0.8800341708526899,0.3545000747987195]},"sizeMeters":[1.5,0.88,0.704],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:08.497Z","updatedAt":"2026-09-07T11:46:56.564Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10786/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaundrySortingBenchLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10786/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10786/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10786/v2/model.glb\" alt=\"Laundry sorting bench (Laundrette 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/10786/v2/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/10786/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10787","slug":"laundrette-and-cleaning-laundry-cart-rolling-7002746e","title":"Rolling laundry cart (Laundrette 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-7002746e","cdnUrl":"https://cdn.3dassets.dev/assets/10787/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundry-cart-rolling-7002746e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10787/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10787/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:09.674Z","updatedAt":"2026-09-07T11:46:56.810Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10787/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RollingLaundryCartLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10787/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10787/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10787/v2/model.glb\" alt=\"Rolling laundry cart (Laundrette 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/10787/v2/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/10787/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10788","slug":"laundrette-and-cleaning-wheeled-hamper-d92c4d0a","title":"Wheeled laundry hamper (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-wheeled-hamper-d92c4d0a","cdnUrl":"https://cdn.3dassets.dev/assets/10788/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-hamper-d92c4d0a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10788/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10788/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:09.505Z","updatedAt":"2026-09-07T11:46:57.026Z","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/10788/v2/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 WheeledLaundryHamperLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10788/v2/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/10788/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10788/v2/model.glb\" alt=\"Wheeled laundry hamper (Laundrette 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/10788/v2/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/10788/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10789","slug":"laundrette-and-cleaning-linen-trolley-covered-5f5e98b2","title":"Covered linen trolley (Laundrette and Cleaning Services)","summary":"A covered linen trolley: a stainless cage frame on four swivel castors with a lower wire shelf, a fabric cover with a rolled hem and a zipped front flap, and a tubular push handle.","description":"A covered linen trolley: a stainless cage frame on four swivel castors with a lower wire shelf, a fabric cover with a rolled hem and a zipped front flap, and a tubular push handle. Overall 0.955 x 1.546 x 0.560 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-linen-trolley-covered-5f5e98b2","cdnUrl":"https://cdn.3dassets.dev/assets/10789/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-linen-trolley-covered-5f5e98b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10789/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10789/v2/poster.webp","blurhash":"U7DvZX~k000B^$%JIVD,059L^u^u4~Ixsi$u","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":128452,"triangles":2608,"vertices":7824,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.47749999165534973,0.000007018696017768722,-0.2758340030155898],"max":[0.47749999165534973,1.545835256576538,0.28448251776320943]},"sizeMeters":[0.955,1.546,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:09.751Z","updatedAt":"2026-09-07T11:46:57.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10789/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoveredLinenTrolleyLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10789/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10789/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10789/v2/model.glb\" alt=\"Covered linen trolley (Laundrette 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/10789/v2/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/10789/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10792","slug":"laundrette-and-cleaning-flatwork-ironer-1afaf3dd","title":"Flatwork roller ironer (Laundrette and Cleaning Services)","summary":"A 1.65 m heated flatwork ironer: two bolted end frames on levelling feet, a padded chest roller with a finger guard bar, a sloping infeed table, a rear catch shelf and a keypad fascia with a dial.","description":"A 1.65 m heated flatwork ironer: two bolted end frames on levelling feet, a padded chest roller with a finger guard bar, a sloping infeed table, a rear catch shelf and a keypad fascia with a dial. Overall 1.654 x 1.060 x 1.171 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-flatwork-ironer-1afaf3dd","cdnUrl":"https://cdn.3dassets.dev/assets/10792/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-flatwork-ironer-1afaf3dd","thumbnailUrl":"https://cdn.3dassets.dev/assets/10792/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10792/v2/poster.webp","blurhash":"UBGbxH-.00b1_4~qt39F00t7-;M{I9D%IpNG","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":105488,"triangles":2100,"vertices":6300,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.8270000219345093,-0.000034126075735108063,-0.5506325739600105],"max":[0.8270000219345093,1.05998012646354,0.6208936947562141]},"sizeMeters":[1.654,1.06,1.172],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:10.156Z","updatedAt":"2026-09-07T11:46:58.533Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10792/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlatworkRollerIronerLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10792/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10792/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10792/v2/model.glb\" alt=\"Flatwork roller ironer (Laundrette 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/10792/v2/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/10792/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10793","slug":"laundrette-and-cleaning-garment-press-8f654f5f","title":"Steam garment press (Laundrette and Cleaning Services)","summary":"A steam buck press: a cast pedestal cabinet with a vent grille, a piped upholstered buck, a hinged head with a close handle on a named pivot, twin steam lines and a foot treadle linkage.","description":"A steam buck press: a cast pedestal cabinet with a vent grille, a piped upholstered buck, a hinged head with a close handle on a named pivot, twin steam lines and a foot treadle linkage. Overall 0.714 x 1.098 x 0.578 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: head. 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-garment-press-8f654f5f","cdnUrl":"https://cdn.3dassets.dev/assets/10793/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-garment-press-8f654f5f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10793/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10793/v2/poster.webp","blurhash":"U6DcXT~q00009GRj-oxu4nWB.8t7RPxat7IU","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":79608,"triangles":1520,"vertices":4560,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.36999938930998605,0,-0.3200067107356198],"max":[0.3434999883174896,1.0979888739308872,0.2579888339957752]},"sizeMeters":[0.713,1.098,0.578],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:10.124Z","updatedAt":"2026-09-07T11:46:58.433Z","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/10793/v2/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 SteamGarmentPressLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10793/v2/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/10793/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10793/v2/model.glb\" alt=\"Steam garment press (Laundrette 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/10793/v2/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/10793/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10795","slug":"laundrette-and-cleaning-steamer-cabinet-967cf590","title":"Garment steamer cabinet (Laundrette and Cleaning Services)","summary":"A 1 m tunnel finishing cabinet on a welded plinth: twin glazed doors on named hinge pivots with full height pull handles, an internal hanging rail with garments, a steam plenum on top and a keypad fascia.","description":"A 1 m tunnel finishing cabinet on a welded plinth: twin glazed doors on named hinge pivots with full height pull handles, an internal hanging rail with garments, a steam plenum on top and a keypad fascia. Overall 1.000 x 2.145 x 0.984 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-left, door-right. 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-steamer-cabinet-967cf590","cdnUrl":"https://cdn.3dassets.dev/assets/10795/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-steamer-cabinet-967cf590","thumbnailUrl":"https://cdn.3dassets.dev/assets/10795/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10795/v2/poster.webp","blurhash":"U8CP^mIU00?b~q%24nD%00-p.84oIUNGxu%2","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":160252,"triangles":3408,"vertices":10224,"meshes":10,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4999636959804222,0,-0.5168889167268347],"max":[0.4999636959804222,2.144880771636963,0.4670253471911709]},"sizeMeters":[1,2.145,0.984],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:10.207Z","updatedAt":"2026-09-07T11:46:58.895Z","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/10795/v2/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 GarmentSteamerCabinetLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10795/v2/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/10795/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10795/v2/model.glb\" alt=\"Garment steamer cabinet (Laundrette 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/10795/v2/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/10795/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10796","slug":"laundrette-and-cleaning-ironing-station-0e495032","title":"Vacuum ironing station (Laundrette and Cleaning Services)","summary":"A vacuum ironing station: a shaped padded board narrowing to a point over a column, a boiler cabinet with a vent grille, dial and gauge window, a steam iron on its silicone rest and a finished garment rail.","description":"A vacuum ironing station: a shaped padded board narrowing to a point over a column, a boiler cabinet with a vent grille, dial and gauge window, a steam iron on its silicone rest and a finished garment rail. Overall 1.127 x 1.370 x 0.440 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-ironing-station-0e495032","cdnUrl":"https://cdn.3dassets.dev/assets/10796/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-ironing-station-0e495032","thumbnailUrl":"https://cdn.3dassets.dev/assets/10796/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10796/v2/poster.webp","blurhash":"U8AmxW?b0000NHRj%M%L00M{~q%3ROofIoIU","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":107696,"triangles":2144,"vertices":6432,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.6115000247955322,0,-0.22002700964670416],"max":[0.5149956387650866,1.3700000047683716,0.22002700964670416]},"sizeMeters":[1.126,1.37,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:10.314Z","updatedAt":"2026-09-07T11:46:59.229Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10796/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VacuumIroningStationLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10796/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10796/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10796/v2/model.glb\" alt=\"Vacuum ironing station (Laundrette 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/10796/v2/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/10796/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10798","slug":"laundrette-and-cleaning-garment-conveyor-rail-17c67f7c","title":"Garment conveyor rail (Laundrette and Cleaning Services)","summary":"A 2.2 m motorised garment conveyor: a portal frame with braced posts, a chain rail with link carriers, a guarded drive head with a motor and run lamp, and six garments hanging from carriers.","description":"A 2.2 m motorised garment conveyor: a portal frame with braced posts, a chain rail with link carriers, a guarded drive head with a motor and run lamp, and six garments hanging from carriers. Overall 2.320 x 2.080 x 0.300 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-garment-conveyor-rail-17c67f7c","cdnUrl":"https://cdn.3dassets.dev/assets/10798/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-garment-conveyor-rail-17c67f7c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10798/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10798/v2/poster.webp","blurhash":"UABz8=xZ00W?_2%M9FD%02WF~oRi9G%N-;e,","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":182576,"triangles":3720,"vertices":11160,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.159999966621399,-0.00003934935043181653,-0.14996062680771036],"max":[1.159999966621399,2.079994785229775,0.14996062680771036]},"sizeMeters":[2.32,2.08,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:10.843Z","updatedAt":"2026-09-07T11:47:00.309Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10798/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GarmentConveyorRailLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10798/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10798/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10798/v2/model.glb\" alt=\"Garment conveyor rail (Laundrette 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/10798/v2/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/10798/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10799","slug":"laundrette-and-cleaning-garment-bag-set-394e78b0","title":"Covered garment set (Laundrette and Cleaning Services)","summary":"Three finished garments in polythene covers on wire hangers, hooked over a short carry rail and spaced a garment width apart, each with a blank ticket tag. Use it to dress a collection rail, a counter or a customer arm.","description":"Three finished garments in polythene covers on wire hangers, hooked over a short carry rail and spaced a garment width apart, each with a blank ticket tag. Use it to dress a collection rail, a counter or a customer arm. Overall 1.046 x 0.991 x 0.246 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-garment-bag-set-394e78b0","cdnUrl":"https://cdn.3dassets.dev/assets/10799/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-garment-bag-set-394e78b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10799/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10799/v2/poster.webp","blurhash":"UEE{nU-;00IUM{-;xu9F00M{~qxuofIUR*xu","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":87624,"triangles":1760,"vertices":5280,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5230000019073486,-0.000018478343036198996,-0.12296493468105758],"max":[0.5230000019073486,0.9909796959453352,0.12296493468105758]},"sizeMeters":[1.046,0.991,0.246],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.136Z","updatedAt":"2026-09-07T11:47:00.183Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10799/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoveredGarmentSetLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10799/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10799/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10799/v2/model.glb\" alt=\"Covered garment set (Laundrette 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/10799/v2/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/10799/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10800","slug":"laundrette-and-cleaning-linen-shelf-trolley-b9979c33","title":"Linen shelf trolley (Laundrette and Cleaning Services)","summary":"A three shelf stainless linen trolley on four swivel castors: chamfered decks with rear retaining lips, folded linen courses on two of them, a tubular push handle and rubber bumper rails.","description":"A three shelf stainless linen trolley on four swivel castors: chamfered decks with rear retaining lips, folded linen courses on two of them, a tubular push handle and rubber bumper rails. Overall 0.880 x 0.995 x 0.540 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-linen-shelf-trolley-b9979c33","cdnUrl":"https://cdn.3dassets.dev/assets/10800/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-linen-shelf-trolley-b9979c33","thumbnailUrl":"https://cdn.3dassets.dev/assets/10800/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10800/v2/poster.webp","blurhash":"U7Dvl{?b004n~qkCD%oI00Rj_4t7xtxtM|IU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":152252,"triangles":3104,"vertices":9312,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4399999976158142,-0.000013752924106998077,-0.2699862652077871],"max":[0.4399999976158142,0.9948667883872986,0.2699862652077871]},"sizeMeters":[0.88,0.995,0.54],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.208Z","updatedAt":"2026-09-07T11:47:00.636Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10800/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LinenShelfTrolleyLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10800/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10800/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10800/v2/model.glb\" alt=\"Linen shelf trolley (Laundrette 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/10800/v2/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/10800/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10801","slug":"laundrette-and-cleaning-folded-linen-stack-15971a46","title":"Folded linen stack (Laundrette and Cleaning Services)","summary":"A delivered stack of folded linen: five folded sheets with alternating offsets, a shorter course of towels on top and a paper band with a blank label around the whole stack.","description":"A delivered stack of folded linen: five folded sheets with alternating offsets, a shorter course of towels on top and a paper band with a blank label around the whole stack. Overall 0.428 x 0.250 x 0.314 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-folded-linen-stack-15971a46","cdnUrl":"https://cdn.3dassets.dev/assets/10801/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-folded-linen-stack-15971a46","thumbnailUrl":"https://cdn.3dassets.dev/assets/10801/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10801/v2/poster.webp","blurhash":"U9Gu:t_100NO4=t9$~aI009ZIUV=~TaJNLIu","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":43852,"triangles":860,"vertices":2580,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.21400000154972076,-0.000007092909753328436,-0.1568867469474591],"max":[0.21400000154972076,0.24999349840126572,0.1568867469474591]},"sizeMeters":[0.428,0.25,0.314],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.182Z","updatedAt":"2026-09-07T11:47:00.780Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10801/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldedLinenStackLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10801/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10801/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10801/v2/model.glb\" alt=\"Folded linen stack (Laundrette 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/10801/v2/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/10801/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10804","slug":"laundrette-and-cleaning-garment-press-open-10561c3b","title":"Steam garment press, head raised (Laundrette and Cleaning Services)","summary":"The steam buck press with its head swung fully up on the hinge pivot, showing the padded buck, the piped seam and the heated platen face that the closed press hides.","description":"The steam buck press with its head swung fully up on the hinge pivot, showing the padded buck, the piped seam and the heated platen face that the closed press hides. Overall 0.714 x 1.442 x 0.560 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: head. Functional variant of garment-press. 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-garment-press-open-10561c3b","cdnUrl":"https://cdn.3dassets.dev/assets/10804/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-garment-press-open-10561c3b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10804/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10804/v2/poster.webp","blurhash":"U5Cj2{~q000000IV^+%28_ay-=afRO%Mt89F","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":78776,"triangles":1520,"vertices":4560,"meshes":8,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.36999938930998605,0,-0.3200067107356198],"max":[0.3434999883174896,1.4421789779436287,0.24000671252375916]},"sizeMeters":[0.713,1.442,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.567Z","updatedAt":"2026-09-07T11:47:02.103Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10804/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteamGarmentPressHeadRaisedLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10804/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10804/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10804/v2/model.glb\" alt=\"Steam garment press, head raised (Laundrette 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/10804/v2/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/10804/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10805","slug":"laundrette-and-cleaning-seating-bench-moulded-0a7288b3","title":"Waiting bench 1.6 m (Laundrette 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-0a7288b3","cdnUrl":"https://cdn.3dassets.dev/assets/10805/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-seating-bench-moulded-0a7288b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10805/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10805/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.439Z","updatedAt":"2026-09-07T11:47:01.815Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10805/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingBench16MLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10805/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10805/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10805/v2/model.glb\" alt=\"Waiting bench 1.6 m (Laundrette 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/10805/v2/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/10805/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10806","slug":"laundrette-and-cleaning-waiting-chair-run-3-794a077b","title":"Waiting chair run, three seat (Laundrette 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-794a077b","cdnUrl":"https://cdn.3dassets.dev/assets/10806/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-waiting-chair-run-3-794a077b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10806/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10806/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.790Z","updatedAt":"2026-09-07T11:47:02.244Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10806/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingChairRunThreeSeatLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10806/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10806/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10806/v2/model.glb\" alt=\"Waiting chair run, three seat (Laundrette 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/10806/v2/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/10806/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10809","slug":"laundrette-and-cleaning-drop-off-counter-db54fdf7","title":"Service drop off counter 1.2 m (Laundrette and Cleaning Services)","summary":"A 1.2 m drop off counter: a carcass on a set back plinth with a grooved customer face and kick rail, a postformed laminate top, a raised customer ledge on standoffs, a lift up flap on a named pivot, a till and a card terminal.","description":"A 1.2 m drop off counter: a carcass on a set back plinth with a grooved customer face and kick rail, a postformed laminate top, a raised customer ledge on standoffs, a lift up flap on a named pivot, a till and a card terminal. Overall 1.210 x 1.120 x 0.760 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: flap-counter. Connectors: counter-left (counter-run), counter-right (counter-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-drop-off-counter-db54fdf7","cdnUrl":"https://cdn.3dassets.dev/assets/10809/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-drop-off-counter-db54fdf7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10809/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10809/v2/poster.webp","blurhash":"UJFFpg~q00IU?axuR+WA00D%%MoeE2ofadIV","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":135584,"triangles":2680,"vertices":8040,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.610014219112267,-0.000014582999323775603,-0.3600236772069777],"max":[0.6000000369548798,1.1203811168670654,0.40002366886232743]},"sizeMeters":[1.21,1.12,0.76],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:12.811Z","updatedAt":"2026-09-07T11:47:02.343Z","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/10809/v2/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 ServiceDropOffCounter12MLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10809/v2/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/10809/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10809/v2/model.glb\" alt=\"Service drop off counter 1.2 m (Laundrette 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/10809/v2/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/10809/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10810","slug":"laundrette-and-cleaning-counter-module-600-412ac3f0","title":"Counter module 600 (Laundrette and Cleaning Services)","summary":"A 600 mm counter module on the counter run grid: a carcass on a set back plinth with a wire shelf, two laminate faced staff side doors on named pivots with recessed pulls, a grooved customer face and a postformed laminate top.","description":"A 600 mm counter module on the counter run grid: a carcass on a set back plinth with a wire shelf, two laminate faced staff side doors on named pivots with recessed pulls, a grooved customer face and a postformed laminate top. Overall 0.620 x 0.900 x 0.729 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-left, door-right. Connectors: counter-left (counter-run), counter-right (counter-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-counter-module-600-412ac3f0","cdnUrl":"https://cdn.3dassets.dev/assets/10810/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-counter-module-600-412ac3f0","thumbnailUrl":"https://cdn.3dassets.dev/assets/10810/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10810/v2/poster.webp","blurhash":"UIHenC_300bb~oofIot700IAt7RiWEazMxRj","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":66304,"triangles":1348,"vertices":4044,"meshes":8,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3100002952169924,0,-0.3600067024960194],"max":[0.3100002952169924,0.8999999761581421,0.36899998784065247]},"sizeMeters":[0.62,0.9,0.729],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:13.406Z","updatedAt":"2026-09-07T11:47:03.367Z","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/10810/v2/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 CounterModule600LaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10810/v2/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/10810/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10810/v2/model.glb\" alt=\"Counter module 600 (Laundrette 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/10810/v2/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/10810/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10811","slug":"laundrette-and-cleaning-ticket-rack-bd3a1d5e","title":"Order ticket rack (Laundrette and Cleaning Services)","summary":"A wall mounted order ticket rack: a framed board of sixteen sloping pigeon holes with divider fins and a retaining lip on each row, blank tickets standing in most of them and a header plate.","description":"A wall mounted order ticket rack: a framed board of sixteen sloping pigeon holes with divider fins and a retaining lip on each row, blank tickets standing in most of them and a header plate. Overall 0.570 x 0.660 x 0.091 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-ticket-rack-bd3a1d5e","cdnUrl":"https://cdn.3dassets.dev/assets/10811/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-ticket-rack-bd3a1d5e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10811/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10811/v2/poster.webp","blurhash":"UBEfTfV@00kD?a%MD*9G00t7~qRixvofM_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":72620,"triangles":1460,"vertices":4380,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.28000703038365876,0,-0.05498771677353335],"max":[0.2900022954448126,0.6600000262260437,0.03597453544475985]},"sizeMeters":[0.57,0.66,0.091],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:14.542Z","updatedAt":"2026-09-07T11:47:03.662Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10811/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OrderTicketRackLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10811/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10811/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10811/v2/model.glb\" alt=\"Order ticket rack (Laundrette 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/10811/v2/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/10811/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10812","slug":"laundrette-and-cleaning-notice-board-9d37cfa9","title":"Framed notice board (Laundrette 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-9d37cfa9","cdnUrl":"https://cdn.3dassets.dev/assets/10812/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-notice-board-9d37cfa9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10812/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10812/v2/poster.webp","blurhash":"UAE3J0%M00M{_3?bIU8_00kC~pV@kEt7V=j=","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":35860,"triangles":680,"vertices":2040,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.00002135964469812679,-0.035012527384733746],"max":[0.44999998807907104,0.7000213477237691,0.029993590318451224]},"sizeMeters":[0.9,0.7,0.065],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:14.674Z","updatedAt":"2026-09-07T11:47:03.791Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10812/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FramedNoticeBoardLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10812/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10812/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10812/v2/model.glb\" alt=\"Framed notice board (Laundrette 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/10812/v2/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/10812/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10815","slug":"laundrette-and-cleaning-vending-machine-drinks-bf5024ad","title":"Drinks vending machine (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-vending-machine-drinks-bf5024ad","cdnUrl":"https://cdn.3dassets.dev/assets/10815/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-vending-machine-drinks-bf5024ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/10815/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10815/v2/poster.webp","blurhash":"UEDS?%xu00-;~qt79FRj9FV@oyIo%MWBIUbF","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":217536,"triangles":4388,"vertices":13164,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4300656219490222,0,-0.3900405927263781],"max":[0.4300656219490222,1.8600000143051147,0.4324634583869801]},"sizeMeters":[0.86,1.86,0.823],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:14.859Z","updatedAt":"2026-09-07T11:47:03.880Z","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/10815/v2/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 DrinksVendingMachineLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10815/v2/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/10815/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10815/v2/model.glb\" alt=\"Drinks vending machine (Laundrette 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/10815/v2/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/10815/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10816","slug":"laundrette-and-cleaning-magazine-rack-2ef9ed8e","title":"Magazine rack (Laundrette 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-2ef9ed8e","cdnUrl":"https://cdn.3dassets.dev/assets/10816/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-magazine-rack-2ef9ed8e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10816/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10816/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:14.812Z","updatedAt":"2026-09-07T11:47:05.209Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10816/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MagazineRackLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10816/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10816/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10816/v2/model.glb\" alt=\"Magazine rack (Laundrette 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/10816/v2/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/10816/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10817","slug":"laundrette-and-cleaning-wall-clock-e96d9181","title":"Wall clock (Laundrette 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-e96d9181","cdnUrl":"https://cdn.3dassets.dev/assets/10817/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wall-clock-e96d9181","thumbnailUrl":"https://cdn.3dassets.dev/assets/10817/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10817/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:14.903Z","updatedAt":"2026-09-07T11:47:05.566Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10817/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallClockLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10817/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10817/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10817/v2/model.glb\" alt=\"Wall clock (Laundrette 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/10817/v2/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/10817/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10819","slug":"laundrette-and-cleaning-service-window-module-a9fad1e4","title":"Service window wall module (Laundrette and Cleaning Services)","summary":"A 1.2 m wall module with a service window: a 2.6 m partition bay with a heavy aperture bezel, a bullnose transaction ledge, a sliding hatch on a named pivot, a fixed upper light, a speech grille and a blank sign panel.","description":"A 1.2 m wall module with a service window: a 2.6 m partition bay with a heavy aperture bezel, a bullnose transaction ledge, a sliding hatch on a named pivot, a fixed upper light, a speech grille and a blank sign panel. Overall 1.200 x 2.600 x 0.340 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-service-window-module-a9fad1e4","cdnUrl":"https://cdn.3dassets.dev/assets/10819/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-service-window-module-a9fad1e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/10819/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10819/v2/poster.webp","blurhash":"U5E3C%-;009F_3-;D%4nD%M{k8%M~qxu00D%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61288,"triangles":1124,"vertices":3372,"meshes":9,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.599911474317897,0,-0.08000336091034427],"max":[0.599911474317897,2.5999999046325684,0.26000335316174045]},"sizeMeters":[1.2,2.6,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:15.249Z","updatedAt":"2026-09-07T11:47:05.258Z","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/10819/v2/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 ServiceWindowWallModuleLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10819/v2/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/10819/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10819/v2/model.glb\" alt=\"Service window wall module (Laundrette 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/10819/v2/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/10819/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10821","slug":"laundrette-and-cleaning-shopfront-module-glazed-9b7c7167","title":"Shopfront bay, glazed (Laundrette 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-9b7c7167","cdnUrl":"https://cdn.3dassets.dev/assets/10821/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-shopfront-module-glazed-9b7c7167","thumbnailUrl":"https://cdn.3dassets.dev/assets/10821/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10821/v2/poster.webp","blurhash":"UA97hPxt00IV~ot74oM|%0oeIpRkxvoeRPWB","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.600040284169529,0.000029903173421191864,-0.09105233898471114],"max":[0.600040284169529,3.000022091150873,0.13905233940194367]},"sizeMeters":[1.2,3,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:15.436Z","updatedAt":"2026-09-07T11:47:05.391Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10821/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ShopfrontBayGlazedLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10821/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10821/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10821/v2/model.glb\" alt=\"Shopfront bay, glazed (Laundrette 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/10821/v2/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/10821/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10822","slug":"laundrette-and-cleaning-shopfront-door-module-cef0d992","title":"Shopfront bay, door (Laundrette 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-shopfront-door-module-cef0d992","cdnUrl":"https://cdn.3dassets.dev/assets/10822/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-shopfront-door-module-cef0d992","thumbnailUrl":"https://cdn.3dassets.dev/assets/10822/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10822/v2/poster.webp","blurhash":"UB9QmmRj00xu~oof4pWB?aj[D*flj]t7aeM{","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":53332,"triangles":1036,"vertices":3108,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6000000238418579,0,-0.09099374349694117],"max":[0.6000000238418579,3.000022091150873,0.13899374391417368]},"sizeMeters":[1.2,3,0.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:16.148Z","updatedAt":"2026-09-07T11:47:06.905Z","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/10822/v2/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 ShopfrontBayDoorLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10822/v2/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/10822/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10822/v2/model.glb\" alt=\"Shopfront bay, door (Laundrette 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/10822/v2/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/10822/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10823","slug":"laundrette-and-cleaning-counter-stool-566037d7","title":"Counter stool (Laundrette and Cleaning Services)","summary":"A 740 mm counter stool: a weighted cast base, a lathed column with a four spoke foot ring, and a crowned upholstered seat with a piped welt seam on a chamfered seat pan.","description":"A 740 mm counter stool: a weighted cast base, a lathed column with a four spoke foot ring, and a crowned upholstered seat with a piped welt seam on a chamfered seat pan. Overall 0.400 x 0.782 x 0.394 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-counter-stool-566037d7","cdnUrl":"https://cdn.3dassets.dev/assets/10823/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-counter-stool-566037d7","thumbnailUrl":"https://cdn.3dassets.dev/assets/10823/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10823/v2/poster.webp","blurhash":"UA97kdxt00IU~qj?9EWC-;ofIURjt7ofRjRj","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":51720,"triangles":1012,"vertices":3036,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.20000000298023224,0.00000854369266449495,-0.196972566795101],"max":[0.20000000298023224,0.7820027171583176,0.196972566795101]},"sizeMeters":[0.4,0.782,0.394],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.039Z","updatedAt":"2026-09-07T11:47:06.810Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10823/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CounterStoolLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10823/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10823/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10823/v2/model.glb\" alt=\"Counter stool (Laundrette 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/10823/v2/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/10823/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10824","slug":"laundrette-and-cleaning-dry-cleaning-machine-66af6d2c","title":"Dry cleaning machine (Laundrette and Cleaning Services)","summary":"A solvent dry cleaning machine on a bunded floor tray: two base solvent tanks behind a framed aperture, a 600 mm porthole on barrel hinges with a locking handle, a lidded button trap, a distillation column with a condenser and a keypad fascia.","description":"A solvent dry cleaning machine on a bunded floor tray: two base solvent tanks behind a framed aperture, a 600 mm porthole on barrel hinges with a locking handle, a lidded button trap, a distillation column with a condenser and a keypad fascia. Overall 1.250 x 2.382 x 1.460 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. 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-dry-cleaning-machine-66af6d2c","cdnUrl":"https://cdn.3dassets.dev/assets/10824/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-dry-cleaning-machine-66af6d2c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10824/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10824/v2/poster.webp","blurhash":"UABzFDIV00%MIot7ofM{00xu_NIV-:WAM|t8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":249904,"triangles":5064,"vertices":15192,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6250694873266255,0,-0.7599999904632568],"max":[0.6250694873266255,2.381999969482422,0.6999698277086153]},"sizeMeters":[1.25,2.382,1.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.082Z","updatedAt":"2026-09-07T11:47:07.102Z","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/10824/v2/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 DryCleaningMachineLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10824/v2/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/10824/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10824/v2/model.glb\" alt=\"Dry cleaning machine (Laundrette 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/10824/v2/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/10824/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10827","slug":"laundrette-and-cleaning-solvent-tank-4ed70d3c","title":"Solvent storage tank (Laundrette and Cleaning Services)","summary":"A solvent storage and distillation tank on a bunded welded stand: a dished vessel with a manway cap and lifting lugs, a full height sight glass, a pressure gauge, two lever valves and a discharge pipe.","description":"A solvent storage and distillation tank on a bunded welded stand: a dished vessel with a manway cap and lifting lugs, a full height sight glass, a pressure gauge, two lever valves and a discharge pipe. Overall 0.760 x 1.390 x 0.660 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-solvent-tank-4ed70d3c","cdnUrl":"https://cdn.3dassets.dev/assets/10827/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-solvent-tank-4ed70d3c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10827/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10827/v2/poster.webp","blurhash":"U38gy.%M004oRixuIVD%00of_3NF_NM|RO%L","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":80524,"triangles":1596,"vertices":4788,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3800472997784502,0,-0.3299696306872056],"max":[0.3800472997784502,1.3899999856948853,0.3299696306872056]},"sizeMeters":[0.76,1.39,0.66],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.493Z","updatedAt":"2026-09-07T11:47:07.044Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10827/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SolventStorageTankLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10827/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10827/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10827/v2/model.glb\" alt=\"Solvent storage tank (Laundrette 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/10827/v2/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/10827/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10828","slug":"laundrette-and-cleaning-spotting-board-55805c40","title":"Spotting board (Laundrette and Cleaning Services)","summary":"A spotting board: a perforated vacuum deck with a padded nose on a pedestal cabinet, a steam gun and a solvent gun hanging from a rail with their hoses, a chemical bottle rail, a foot pedal bar and a catch tray.","description":"A spotting board: a perforated vacuum deck with a padded nose on a pedestal cabinet, a steam gun and a solvent gun hanging from a rail with their hoses, a chemical bottle rail, a foot pedal bar and a catch tray. Overall 0.710 x 1.520 x 0.618 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-spotting-board-55805c40","cdnUrl":"https://cdn.3dassets.dev/assets/10828/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-spotting-board-55805c40","thumbnailUrl":"https://cdn.3dassets.dev/assets/10828/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10828/v2/poster.webp","blurhash":"U6BWe{xv00D$00R-_Nt19FjY%gWrt8odW9Ro","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":96652,"triangles":1916,"vertices":5748,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3600039575285906,0,-0.33067162912559533],"max":[0.349997867323181,1.5199999809265137,0.287752624913433]},"sizeMeters":[0.71,1.52,0.618],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.382Z","updatedAt":"2026-09-07T11:47:08.486Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10828/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpottingBoardLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10828/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10828/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10828/v2/model.glb\" alt=\"Spotting board (Laundrette 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/10828/v2/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/10828/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10829","slug":"laundrette-and-cleaning-garment-carousel-039191bf","title":"Rotating garment carousel (Laundrette and Cleaning Services)","summary":"A rotating garment carousel: a cast base and column carrying a circular rail on eight radial spokes, a guarded drive head with a motor stub and a status screen, and eight wrapped garments hanging around the rail.","description":"A rotating garment carousel: a cast base and column carrying a circular rail on eight radial spokes, a guarded drive head with a motor stub and a status screen, and eight wrapped garments hanging around the rail. Overall 2.037 x 2.000 x 2.037 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-garment-carousel-039191bf","cdnUrl":"https://cdn.3dassets.dev/assets/10829/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-garment-carousel-039191bf","thumbnailUrl":"https://cdn.3dassets.dev/assets/10829/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10829/v2/poster.webp","blurhash":"UBAwCrxt00$_~qoeDij[02M}%1Ir0LRkxvjr","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":159104,"triangles":3232,"vertices":9696,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.0183422565460205,0.000025023205821032846,-1.0183792712368875],"max":[1.0183422565460205,2,1.0183422565460205]},"sizeMeters":[2.037,2,2.037],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.635Z","updatedAt":"2026-09-07T11:47:08.544Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10829/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RotatingGarmentCarouselLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10829/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10829/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10829/v2/model.glb\" alt=\"Rotating garment carousel (Laundrette 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/10829/v2/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/10829/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10831","slug":"laundrette-and-cleaning-hanger-rail-run-038742c2","title":"Garment hanging rail bay 1.5 m (Laundrette and Cleaning Services)","summary":"A 1.5 m garment storage bay on the rail grid: two posts on base plates with a rail at 1.7 m, a lower stock rail, a wire top shelf, foot ties and seven wrapped garments hanging on the upper rail.","description":"A 1.5 m garment storage bay on the rail grid: two posts on base plates with a rail at 1.7 m, a lower stock rail, a wire top shelf, foot ties and seven wrapped garments hanging on the upper rail. Overall 1.500 x 2.000 x 0.500 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: rail-left (garment-rail), rail-right (garment-rail). 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-hanger-rail-run-038742c2","cdnUrl":"https://cdn.3dassets.dev/assets/10831/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-hanger-rail-run-038742c2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10831/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10831/v2/poster.webp","blurhash":"UAAwM5t600Rl~q%L4nD*%Nj[NEjYRp%MxsD$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":135116,"triangles":2764,"vertices":8292,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.749961851863155,0,-0.250038148136845],"max":[0.749961851863155,2,0.250038148136845]},"sizeMeters":[1.5,2,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.860Z","updatedAt":"2026-09-07T11:47:08.817Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10831/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GarmentHangingRailBay15MLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10831/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10831/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10831/v2/model.glb\" alt=\"Garment hanging rail bay 1.5 m (Laundrette 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/10831/v2/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/10831/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10832","slug":"laundrette-and-cleaning-hanger-rail-end-post-71de4774","title":"Garment rail end post (Laundrette and Cleaning Services)","summary":"The braced end post that closes a garment rail run: a heavy upright on a base plate with two floor braces, a rail stub with a stop collar at 1.7 m, a capping bracket and a framed ticket board.","description":"The braced end post that closes a garment rail run: a heavy upright on a base plate with two floor braces, a rail stub with a stop collar at 1.7 m, a capping bracket and a framed ticket board. Overall 0.240 x 2.000 x 0.560 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: rail-left (garment-rail). 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-hanger-rail-end-post-71de4774","cdnUrl":"https://cdn.3dassets.dev/assets/10832/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-hanger-rail-end-post-71de4774","thumbnailUrl":"https://cdn.3dassets.dev/assets/10832/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10832/v2/poster.webp","blurhash":"U36*gqoz00RPIoIUxZ?b_N%M8^9F4.of?HRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29528,"triangles":564,"vertices":1692,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.12000184289143107,0,-0.2799462874233222],"max":[0.12000184289143107,2,0.2799462874233222]},"sizeMeters":[0.24,2,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:17.815Z","updatedAt":"2026-09-07T11:47:08.638Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10832/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GarmentRailEndPostLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10832/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10832/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10832/v2/model.glb\" alt=\"Garment rail end post (Laundrette 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/10832/v2/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/10832/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10834","slug":"laundrette-and-cleaning-wrapped-garment-batch-8604e736","title":"Wrapped garment A frame (Laundrette and Cleaning Services)","summary":"A rolling A frame of finished work on four swivel castors: a braced tubular frame with a rail at 1.58 m, a lower tie rail and seven polythene wrapped garments on hangers with a blank batch tag.","description":"A rolling A frame of finished work on four swivel castors: a braced tubular frame with a rail at 1.58 m, a lower tie rail and seven polythene wrapped garments on hangers with a blank batch tag. Overall 0.930 x 1.597 x 0.500 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-wrapped-garment-batch-8604e736","cdnUrl":"https://cdn.3dassets.dev/assets/10834/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wrapped-garment-batch-8604e736","thumbnailUrl":"https://cdn.3dassets.dev/assets/10834/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10834/v2/poster.webp","blurhash":"U38Ntg_10003~p-.4o4p4nM~yD$|4qNN-;s#","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":184488,"triangles":3760,"vertices":11280,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4650000035762787,0.0000048810711919672345,-0.25000302521866913],"max":[0.4650000035762787,1.5971189737319946,0.25000302521866913]},"sizeMeters":[0.93,1.597,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:18.656Z","updatedAt":"2026-09-07T11:47:10.247Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10834/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WrappedGarmentAFrameLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10834/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10834/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10834/v2/model.glb\" alt=\"Wrapped garment A frame (Laundrette 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/10834/v2/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/10834/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10837","slug":"laundrette-and-cleaning-tagging-bench-ce34bd0b","title":"Intake and tagging bench (Laundrette and Cleaning Services)","summary":"A 1.4 m intake bench: a laminate top on a stainless frame with an intake tub below, a sorting slot rack across the back with blank tickets, two tag reels on spindles, a ticket printer and a tag gun on the top.","description":"A 1.4 m intake bench: a laminate top on a stainless frame with an intake tub below, a sorting slot rack across the back with blank tickets, two tag reels on spindles, a ticket printer and a tag gun on the top. Overall 1.520 x 1.260 x 0.680 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-tagging-bench-ce34bd0b","cdnUrl":"https://cdn.3dassets.dev/assets/10837/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tagging-bench-ce34bd0b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10837/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10837/v2/poster.webp","blurhash":"UME{hCV@00og~poLD%Rj00ofxtRj9Zt7V@Ri","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":95872,"triangles":1900,"vertices":5700,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.8199999928474426,-0.00004750295005073735,-0.33994872311478797],"max":[0.699999988079071,1.2599835173462033,0.33994872311478797]},"sizeMeters":[1.52,1.26,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.181Z","updatedAt":"2026-09-07T11:47:10.142Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10837/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IntakeAndTaggingBenchLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10837/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10837/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10837/v2/model.glb\" alt=\"Intake and tagging bench (Laundrette 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/10837/v2/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/10837/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10836","slug":"laundrette-and-cleaning-order-rail-label-unit-23a3797a","title":"Order rail label unit (Laundrette and Cleaning Services)","summary":"A rail mounted order label unit: a braced post carrying a framed index board of twelve numbered markers, a thermal ticket printer with a tear bar, a label spool on a spindle and a hand scanner in its cradle.","description":"A rail mounted order label unit: a braced post carrying a framed index board of twelve numbered markers, a thermal ticket printer with a tear bar, a label spool on a spindle and a hand scanner in its cradle. Overall 0.600 x 1.500 x 0.360 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-order-rail-label-unit-23a3797a","cdnUrl":"https://cdn.3dassets.dev/assets/10836/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-order-rail-label-unit-23a3797a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10836/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10836/v2/poster.webp","blurhash":"U4AJ~Axa009G~pWA9GkD4nWB?Hxu00%M_29F","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":67076,"triangles":1330,"vertices":3990,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.29997985107867353,0,-0.17999816888943143],"max":[0.29997985107867353,1.5,0.17999816888943143]},"sizeMeters":[0.6,1.5,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:19.960Z","updatedAt":"2026-09-07T11:47:10.192Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10836/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OrderRailLabelUnitLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10836/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10836/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10836/v2/model.glb\" alt=\"Order rail label unit (Laundrette 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/10836/v2/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/10836/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10841","slug":"laundrette-and-cleaning-dry-cleaning-machine-open-door-5642e938","title":"Dry cleaning machine, open door (Laundrette and Cleaning Services)","summary":"The solvent dry cleaning machine with its porthole swung fully open on the hinge axis, showing the perforated stainless cage with its stiffening rings and lifters inside the pressed door collar.","description":"The solvent dry cleaning machine with its porthole swung fully open on the hinge axis, showing the perforated stainless cage with its stiffening rings and lifters inside the pressed door collar. Overall 1.373 x 2.382 x 1.792 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-drum. Functional variant of dry-cleaning-machine. 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-dry-cleaning-machine-open-door-5642e938","cdnUrl":"https://cdn.3dassets.dev/assets/10841/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-dry-cleaning-machine-open-door-5642e938","thumbnailUrl":"https://cdn.3dassets.dev/assets/10841/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10841/v2/poster.webp","blurhash":"UABpqeIU00?aIooLt6WB00t7~qM{%LWUM|t7","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":265976,"triangles":5416,"vertices":16248,"meshes":8,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7476788741023137,0,-0.7599999904632568],"max":[0.6250694873266255,2.381999969482422,1.0320951619710068]},"sizeMeters":[1.373,2.382,1.792],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.225Z","updatedAt":"2026-09-07T11:47:10.382Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10841/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryCleaningMachineOpenDoorLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10841/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10841/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10841/v2/model.glb\" alt=\"Dry cleaning machine, open door (Laundrette 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/10841/v2/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/10841/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10840","slug":"laundrette-and-cleaning-janitorial-trolley-bb181937","title":"Janitorial trolley (Laundrette and Cleaning Services)","summary":"A full janitorial trolley on four swivel castors: a moulded base tray and two shelves on posts, a sack hoop with a refuse sack, a mop bucket in its slot, a caddy of bottles and cloths, mop and broom clips and a warning panel.","description":"A full janitorial trolley on four swivel castors: a moulded base tray and two shelves on posts, a sack hoop with a refuse sack, a mop bucket in its slot, a caddy of bottles and cloths, mop and broom clips and a warning panel. Overall 1.085 x 1.875 x 0.520 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-janitorial-trolley-bb181937","cdnUrl":"https://cdn.3dassets.dev/assets/10840/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-janitorial-trolley-bb181937","thumbnailUrl":"https://cdn.3dassets.dev/assets/10840/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10840/v2/poster.webp","blurhash":"U5Amk@%K00s,00j]~qR%00D+_1-:~Tt7D-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":241744,"triangles":4936,"vertices":14808,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5547913312911987,0,-0.2599777074540782],"max":[0.5299999713897705,1.8749029636383057,0.2599777074540782]},"sizeMeters":[1.085,1.875,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.087Z","updatedAt":"2026-09-07T11:47:11.822Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10840/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JanitorialTrolleyLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10840/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10840/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10840/v2/model.glb\" alt=\"Janitorial trolley (Laundrette 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/10840/v2/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/10840/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10842","slug":"laundrette-and-cleaning-mop-bucket-wringer-1ad0fa3b","title":"Mop bucket and wringer (Laundrette and Cleaning Services)","summary":"A two compartment mop bucket on four castors: a tapered moulded tub with a rolled rim, a divider, a pouring lip, a bail handle and a down press wringer hopper on a lever with a grip.","description":"A two compartment mop bucket on four castors: a tapered moulded tub with a rolled rim, a divider, a pouring lip, a bail handle and a down press wringer hopper on a lever with a grip. Overall 0.839 x 0.683 x 0.368 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-mop-bucket-wringer-1ad0fa3b","cdnUrl":"https://cdn.3dassets.dev/assets/10842/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-mop-bucket-wringer-1ad0fa3b","thumbnailUrl":"https://cdn.3dassets.dev/assets/10842/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10842/v2/poster.webp","blurhash":"UCCG6.Iw00xSEU-:${D*02-n~UIu=.E3NO-:","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":113712,"triangles":2300,"vertices":6900,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5793192982673645,0.000014723531457760952,-0.18400921559278868],"max":[0.25999999046325684,0.6832149612982541,0.18400921559278868]},"sizeMeters":[0.839,0.683,0.368],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.332Z","updatedAt":"2026-09-07T11:47:11.767Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10842/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MopBucketAndWringerLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10842/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10842/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10842/v2/model.glb\" alt=\"Mop bucket and wringer (Laundrette 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/10842/v2/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/10842/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10843","slug":"laundrette-and-cleaning-mop-broom-wall-rail-a9cff8de","title":"Mop and broom wall rail (Laundrette and Cleaning Services)","summary":"A 900 mm wall rail of spring clips and hooks holding a yarn mop, a bristle broom, a dustpan on its handle and a floor squeegee, with a chamfered back plate and two fixing bosses.","description":"A 900 mm wall rail of spring clips and hooks holding a yarn mop, a bristle broom, a dustpan on its handle and a floor squeegee, with a chamfered back plate and two fixing bosses. Overall 1.053 x 1.515 x 0.286 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-mop-broom-wall-rail-a9cff8de","cdnUrl":"https://cdn.3dassets.dev/assets/10843/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-mop-broom-wall-rail-a9cff8de","thumbnailUrl":"https://cdn.3dassets.dev/assets/10843/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10843/v2/poster.webp","blurhash":"U28|-Ixu00D%~oRk02xW4sIU^z-=Ow^+$t00","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":67824,"triangles":1328,"vertices":3984,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4729603259991142,0,-0.06511233732163194],"max":[0.5799964739455802,1.5148892402648926,0.22074500680935927]},"sizeMeters":[1.053,1.515,0.286],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.453Z","updatedAt":"2026-09-07T11:47:11.875Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10843/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MopAndBroomWallRailLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10843/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10843/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10843/v2/model.glb\" alt=\"Mop and broom wall rail (Laundrette 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/10843/v2/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/10843/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10844","slug":"laundrette-and-cleaning-floor-scrubber-walk-behind-2d13b151","title":"Walk behind floor scrubber (Laundrette and Cleaning Services)","summary":"A walk behind scrubber dryer: twin disc brushes under a splash skirted deck, moulded solution and recovery tanks with a filler cap and level tube, a rear squeegee on a swivel arm with its recovery hose, and a control head with a throttle bar.","description":"A walk behind scrubber dryer: twin disc brushes under a splash skirted deck, moulded solution and recovery tanks with a filler cap and level tube, a rear squeegee on a swivel arm with its recovery hose, and a control head with a throttle bar. Overall 0.720 x 1.118 x 0.918 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-floor-scrubber-walk-behind-2d13b151","cdnUrl":"https://cdn.3dassets.dev/assets/10844/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-floor-scrubber-walk-behind-2d13b151","thumbnailUrl":"https://cdn.3dassets.dev/assets/10844/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10844/v2/poster.webp","blurhash":"UGFFg9%200IVMvIUkE-;00Rj_1xt%jxusiM{","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":84388,"triangles":1672,"vertices":5016,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.35998608296771806,0,-0.45814526960951546],"max":[0.35998608296771806,1.118390440940857,0.45997758802122807]},"sizeMeters":[0.72,1.118,0.918],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:20.540Z","updatedAt":"2026-09-07T11:47:11.929Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10844/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WalkBehindFloorScrubberLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10844/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10844/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10844/v2/model.glb\" alt=\"Walk behind floor scrubber (Laundrette 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/10844/v2/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/10844/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10846","slug":"laundrette-and-cleaning-floor-polisher-rotary-1d8fd246","title":"Rotary floor polisher (Laundrette and Cleaning Services)","summary":"A rotary floor polisher: a cast pad drive and bumper ring under a motor housing, a raked twin tube handle with a bail, rubber grips and a trigger bar, a tilt lock, two cable hooks and a coiled lead.","description":"A rotary floor polisher: a cast pad drive and bumper ring under a motor housing, a raked twin tube handle with a bail, rubber grips and a trigger bar, a tilt lock, two cable hooks and a coiled lead. Overall 0.500 x 1.136 x 0.746 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-floor-polisher-rotary-1d8fd246","cdnUrl":"https://cdn.3dassets.dev/assets/10846/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-floor-polisher-rotary-1d8fd246","thumbnailUrl":"https://cdn.3dassets.dev/assets/10846/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10846/v2/poster.webp","blurhash":"UBA^L6%M004o9GD%-:~pRNRitTxv%hxvM_IT","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":60852,"triangles":1198,"vertices":3594,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2500148088086814,0,-0.3727687038274319],"max":[0.2500148088086814,1.1356306076049805,0.3727687038274319]},"sizeMeters":[0.5,1.136,0.746],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:21.429Z","updatedAt":"2026-09-07T11:47:13.636Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10846/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RotaryFloorPolisherLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10846/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10846/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10846/v2/model.glb\" alt=\"Rotary floor polisher (Laundrette 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/10846/v2/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/10846/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10849","slug":"laundrette-and-cleaning-wet-vac-f9558b2a","title":"Wet and dry vacuum (Laundrette and Cleaning Services)","summary":"A wet and dry vacuum: a moulded drum on a four arm castor foot, a motor head with a carry handle, a rocker switch and a filter cap, two toggle latches, and a suction hose with a metal wand and floor tool.","description":"A wet and dry vacuum: a moulded drum on a four arm castor foot, a motor head with a carry handle, a rocker switch and a filter cap, two toggle latches, and a suction hose with a metal wand and floor tool. Overall 0.599 x 0.915 x 0.586 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-vac-f9558b2a","cdnUrl":"https://cdn.3dassets.dev/assets/10849/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wet-vac-f9558b2a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10849/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10849/v2/poster.webp","blurhash":"U9B:g9?Z0002.Ao#DhRO01IW~U-.MaacyFkY","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":73516,"triangles":1464,"vertices":4392,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2994141485011693,0,-0.29287067198974737],"max":[0.2994141485011693,0.9152815937995911,0.2928661276801598]},"sizeMeters":[0.599,0.915,0.586],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:22.559Z","updatedAt":"2026-09-07T11:47:13.490Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10849/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetAndDryVacuumLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10849/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10849/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10849/v2/model.glb\" alt=\"Wet and dry vacuum (Laundrette 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/10849/v2/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/10849/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10848","slug":"laundrette-and-cleaning-wet-floor-sign-3414a9ee","title":"Wet floor sign (Laundrette 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-3414a9ee","cdnUrl":"https://cdn.3dassets.dev/assets/10848/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wet-floor-sign-3414a9ee","thumbnailUrl":"https://cdn.3dassets.dev/assets/10848/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10848/v2/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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:22.572Z","updatedAt":"2026-09-07T11:47:13.352Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10848/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetFloorSignLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10848/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10848/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10848/v2/model.glb\" alt=\"Wet floor sign (Laundrette 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/10848/v2/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/10848/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10850","slug":"laundrette-and-cleaning-caution-barrier-post-86badf29","title":"Retractable belt barrier post (Laundrette and Cleaning Services)","summary":"A retractable belt barrier post: a weighted cast base, a chromed column and a cassette head with a drawn belt and tongue, three receiver clips around the head and a cap ring.","description":"A retractable belt barrier post: a weighted cast base, a chromed column and a cassette head with a drawn belt and tongue, three receiver clips around the head and a cap ring. Overall 0.635 x 0.980 x 0.374 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-caution-barrier-post-86badf29","cdnUrl":"https://cdn.3dassets.dev/assets/10850/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-caution-barrier-post-86badf29","thumbnailUrl":"https://cdn.3dassets.dev/assets/10850/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10850/v2/poster.webp","blurhash":"U57dwR%N004m~nof0NRis;t5R%IXE7xY-iE5","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":46484,"triangles":900,"vertices":2700,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3175231235309702,0,-0.18711936128500758],"max":[0.3175231235309702,0.9800000190734863,0.18711936128500758]},"sizeMeters":[0.635,0.98,0.374],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:22.654Z","updatedAt":"2026-09-07T11:47:13.540Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10850/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RetractableBeltBarrierPostLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10850/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10850/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10850/v2/model.glb\" alt=\"Retractable belt barrier post (Laundrette 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/10850/v2/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/10850/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10853","slug":"laundrette-and-cleaning-cleaning-caddy-5902be4a","title":"Cleaning caddy (Laundrette and Cleaning Services)","summary":"A moulded cleaning caddy: a divided tote with a rolled rim and a bail handle with a grip, three trigger spray bottles, a concentrate bottle and a stack of folded cloths.","description":"A moulded cleaning caddy: a divided tote with a rolled rim and a bail handle with a grip, three trigger spray bottles, a concentrate bottle and a stack of folded cloths. Overall 0.406 x 0.305 x 0.286 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-cleaning-caddy-5902be4a","cdnUrl":"https://cdn.3dassets.dev/assets/10853/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-cleaning-caddy-5902be4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10853/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10853/v2/poster.webp","blurhash":"U7F$Y3?w00?E00xu?boM008^-lIv?vM{oIIU","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":77560,"triangles":1548,"vertices":4644,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2029999941587448,0.000009571323662693754,-0.14299892773742326],"max":[0.2029999941587448,0.30499943358609405,0.14299892773742326]},"sizeMeters":[0.406,0.305,0.286],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:22.876Z","updatedAt":"2026-09-07T11:47:14.849Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10853/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CleaningCaddyLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10853/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10853/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10853/v2/model.glb\" alt=\"Cleaning caddy (Laundrette 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/10853/v2/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/10853/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10854","slug":"laundrette-and-cleaning-chemical-shelving-bunded-5644a008","title":"Bunded chemical shelving (Laundrette and Cleaning Services)","summary":"A 1 m boltless shelving bay with four decks and slotted uprights, a bunded spill tray with a wire grating on the base deck, concentrate drums standing in the bund and bottles and cartons on the decks above.","description":"A 1 m boltless shelving bay with four decks and slotted uprights, a bunded spill tray with a wire grating on the base deck, concentrate drums standing in the bund and bottles and cartons on the decks above. Overall 1.005 x 1.946 x 0.460 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-chemical-shelving-bunded-5644a008","cdnUrl":"https://cdn.3dassets.dev/assets/10854/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-chemical-shelving-bunded-5644a008","thumbnailUrl":"https://cdn.3dassets.dev/assets/10854/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10854/v2/poster.webp","blurhash":"U6B|EIx@009H?vxuDiD*00s;~qWAMvt6tSM}","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":234452,"triangles":4816,"vertices":14448,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5024750378074603,0,-0.2299783257659268],"max":[0.5024750378074603,1.9459999799728394,0.2299783257659268]},"sizeMeters":[1.005,1.946,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:22.911Z","updatedAt":"2026-09-07T11:47:15.178Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10854/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BundedChemicalShelvingLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10854/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10854/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10854/v2/model.glb\" alt=\"Bunded chemical shelving (Laundrette 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/10854/v2/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/10854/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10855","slug":"laundrette-and-cleaning-mop-sink-splashback-293860d2","title":"Mop sink with splashback (Laundrette and Cleaning Services)","summary":"A low mop sink: a deep stainless bowl with a bucket grating on a tiled splashback panel, a plinth with a kick, a wall bib tap with a hose, a bucket rail across the front and a hose hook rail.","description":"A low mop sink: a deep stainless bowl with a bucket grating on a tiled splashback panel, a plinth with a kick, a wall bib tap with a hose, a bucket rail across the front and a hose hook rail. Overall 0.920 x 1.500 x 0.605 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-mop-sink-splashback-293860d2","cdnUrl":"https://cdn.3dassets.dev/assets/10855/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-mop-sink-splashback-293860d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10855/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10855/v2/poster.webp","blurhash":"UHE3F?4n00~qxuV[IUxuD%xut7M{NGt7xuM{","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":93656,"triangles":1868,"vertices":5604,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.48997497644270765,0,-0.30001481160988547],"max":[0.42999053926206243,1.5,0.3050101766093397]},"sizeMeters":[0.92,1.5,0.605],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:23.118Z","updatedAt":"2026-09-07T11:47:15.226Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10855/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MopSinkWithSplashbackLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10855/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10855/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10855/v2/model.glb\" alt=\"Mop sink with splashback (Laundrette 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/10855/v2/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/10855/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10856","slug":"laundrette-and-cleaning-ppe-dispenser-wall-432d6e43","title":"Glove and PPE dispenser station (Laundrette and Cleaning Services)","summary":"A wall PPE station on a floor post: a framed board with three glove box holders, an apron roll on a spindle, a goggle hook pair, a hand gel pump on a bracket and a blank instruction panel.","description":"A wall PPE station on a floor post: a framed board with three glove box holders, an apron roll on a spindle, a goggle hook pair, a hand gel pump on a bracket and a blank instruction panel. Overall 0.800 x 1.320 x 0.290 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-ppe-dispenser-wall-432d6e43","cdnUrl":"https://cdn.3dassets.dev/assets/10856/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-ppe-dispenser-wall-432d6e43","thumbnailUrl":"https://cdn.3dassets.dev/assets/10856/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10856/v2/poster.webp","blurhash":"UCA,zk-;009F~qxu9GIUMyayt7WB4oWB-;j?","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":80224,"triangles":1572,"vertices":4716,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0,-0.15994812364789457],"max":[0.4000000059604645,1.3200070441422231,0.1300115960633917]},"sizeMeters":[0.8,1.32,0.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:23.667Z","updatedAt":"2026-09-07T11:47:15.116Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10856/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GloveAndPPEDispenserStationLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10856/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10856/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10856/v2/model.glb\" alt=\"Glove and PPE dispenser station (Laundrette 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/10856/v2/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/10856/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10858","slug":"laundrette-and-cleaning-window-cleaning-kit-87a08b74","title":"Window cleaning kit (Laundrette and Cleaning Services)","summary":"A window cleaning kit: a strip bucket with a bail handle and scrubber rail, a squeegee and a washer sleeve standing in it, and a two section telescopic pole with clamp collars lying alongside.","description":"A window cleaning kit: a strip bucket with a bail handle and scrubber rail, a squeegee and a washer sleeve standing in it, and a two section telescopic pole with clamp collars lying alongside. Overall 0.795 x 1.395 x 0.333 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-window-cleaning-kit-87a08b74","cdnUrl":"https://cdn.3dassets.dev/assets/10858/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-window-cleaning-kit-87a08b74","thumbnailUrl":"https://cdn.3dassets.dev/assets/10858/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10858/v2/poster.webp","blurhash":"U68NnSxv00D$00E1_N_29FV@-;tR~q%M4n9F","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44764,"triangles":848,"vertices":2544,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.397316038608551,0.00000928350175638526,-0.16650829912358667],"max":[0.39731664760114144,1.3950732946395874,0.1665000021457672]},"sizeMeters":[0.795,1.395,0.333],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:23.977Z","updatedAt":"2026-09-07T11:47:16.785Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10858/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindowCleaningKitLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10858/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10858/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10858/v2/model.glb\" alt=\"Window cleaning kit (Laundrette 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/10858/v2/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/10858/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10860","slug":"laundrette-and-cleaning-litter-picker-and-hoop-06210359","title":"Litter picker and bag hoop (Laundrette and Cleaning Services)","summary":"A litter picking set: a wheeled hoop stand on four castors carrying a refuse sack with a clamp, a mid tie rail, and a trigger grabber with jaws clipped to the frame.","description":"A litter picking set: a wheeled hoop stand on four castors carrying a refuse sack with a clamp, a mid tie rail, and a trigger grabber with jaws clipped to the frame. Overall 0.540 x 1.000 x 0.406 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-litter-picker-and-hoop-06210359","cdnUrl":"https://cdn.3dassets.dev/assets/10860/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-litter-picker-and-hoop-06210359","thumbnailUrl":"https://cdn.3dassets.dev/assets/10860/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10860/v2/poster.webp","blurhash":"U98||r-;004--;ofD*Rj?bt7D%M{~qt84oM_","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":125140,"triangles":2552,"vertices":7656,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.27017119528017053,0,-0.20299825160455345],"max":[0.2701712519837229,1,0.2030126504224529]},"sizeMeters":[0.54,1,0.406],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.306Z","updatedAt":"2026-09-07T11:47:16.838Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10860/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LitterPickerAndBagHoopLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10860/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10860/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10860/v2/model.glb\" alt=\"Litter picker and bag hoop (Laundrette 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/10860/v2/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/10860/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10861","slug":"laundrette-and-cleaning-vacuum-backpack-commercial-b1ec9b3e","title":"Commercial backpack vacuum (Laundrette and Cleaning Services)","summary":"A commercial backpack vacuum: a moulded body with a filter cap and vent grille on a base plate, padded shoulder straps with buckles and a waist belt, and a suction hose with a metal wand and floor tool laid out in front.","description":"A commercial backpack vacuum: a moulded body with a filter cap and vent grille on a base plate, padded shoulder straps with buckles and a waist belt, and a suction hose with a metal wand and floor tool laid out in front. Overall 1.077 x 0.630 x 0.790 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-vacuum-backpack-commercial-b1ec9b3e","cdnUrl":"https://cdn.3dassets.dev/assets/10861/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-vacuum-backpack-commercial-b1ec9b3e","thumbnailUrl":"https://cdn.3dassets.dev/assets/10861/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10861/v2/poster.webp","blurhash":"UAA^OI~q0000^+xtD%E200D%?b%N4nNG?bxt","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":64084,"triangles":1248,"vertices":3744,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.5382905006408691,-1.9263230927046848e-8,-0.39496629648941767],"max":[0.5382905006408691,0.6300072351072423,0.39500057484695267]},"sizeMeters":[1.077,0.63,0.79],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.111Z","updatedAt":"2026-09-07T11:47:16.887Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10861/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CommercialBackpackVacuumLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10861/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10861/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10861/v2/model.glb\" alt=\"Commercial backpack vacuum (Laundrette 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/10861/v2/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/10861/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10863","slug":"laundrette-and-cleaning-chemical-drum-set-99712922","title":"Concentrate chemical set (Laundrette and Cleaning Services)","summary":"A delivered concentrate set: two 5 litre drums with caps, blank label bands and carry handles, a graduated dilution jug and two trigger spray bottles.","description":"A delivered concentrate set: two 5 litre drums with caps, blank label bands and carry handles, a graduated dilution jug and two trigger spray bottles. Overall 0.520 x 0.360 x 0.328 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-chemical-drum-set-99712922","cdnUrl":"https://cdn.3dassets.dev/assets/10863/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-chemical-drum-set-99712922","thumbnailUrl":"https://cdn.3dassets.dev/assets/10863/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10863/v2/poster.webp","blurhash":"ULE{a,~q03M_t8o#t2s*009F%0t8IVadobNK","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":62048,"triangles":1208,"vertices":3624,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.25995934441597907,0,-0.16412345214595428],"max":[0.2599532140279219,0.3600000828678736,0.16411374900611125]},"sizeMeters":[0.52,0.36,0.328],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.483Z","updatedAt":"2026-09-07T11:47:16.972Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10863/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConcentrateChemicalSetLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10863/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10863/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10863/v2/model.glb\" alt=\"Concentrate chemical set (Laundrette 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/10863/v2/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/10863/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10864","slug":"laundrette-and-cleaning-wet-floor-sign-folded-30e91446","title":"Wet floor sign, folded (Laundrette and Cleaning Services)","summary":"The wet floor sign folded flat for storage: the two blades closed against each other on the hinge tube with the warning panels face to face and the carry handle uppermost.","description":"The wet floor sign folded flat for storage: the two blades closed against each other on the hinge tube with the warning panels face to face and the carry handle uppermost. Overall 0.300 x 0.620 x 0.085 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Functional variant of wet-floor-sign. 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-folded-30e91446","cdnUrl":"https://cdn.3dassets.dev/assets/10864/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wet-floor-sign-folded-30e91446","thumbnailUrl":"https://cdn.3dassets.dev/assets/10864/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10864/v2/poster.webp","blurhash":"U2By=[Sj00=:?s?Y050303-l?Z0Q~TxZE4IW","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":24456,"triangles":472,"vertices":1416,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.15001068749771815,0,-0.04268578217873981],"max":[0.15001068749771815,0.6199659705162048,0.04268578217873981]},"sizeMeters":[0.3,0.62,0.085],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.526Z","updatedAt":"2026-09-07T11:47:18.548Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10864/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetFloorSignFoldedLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10864/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10864/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10864/v2/model.glb\" alt=\"Wet floor sign, folded (Laundrette 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/10864/v2/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/10864/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10866","slug":"laundrette-and-cleaning-wheeled-bin-240-12e1e349","title":"Wheeled bin 240 litre (Laundrette and Cleaning Services)","summary":"A 240 litre two wheel bin: a tapered moulded body with a rolled rim, a comb lift bar and moulded grips, a hinged lid on a named pivot with barrel hinges, a rear lift bar and two rubber tyred wheels on a stub axle.","description":"A 240 litre two wheel bin: a tapered moulded body with a rolled rim, a comb lift bar and moulded grips, a hinged lid on a named pivot with barrel hinges, a rear lift bar and two rubber tyred wheels on a stub axle. Overall 0.592 x 1.094 x 0.799 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. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-wheeled-bin-240-12e1e349","cdnUrl":"https://cdn.3dassets.dev/assets/10866/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-bin-240-12e1e349","thumbnailUrl":"https://cdn.3dassets.dev/assets/10866/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10866/v2/poster.webp","blurhash":"U15E?I_40000-;t8M_Vs00IU-=%gD%Rjx]xa","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":59084,"triangles":1148,"vertices":3444,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.2960281492600229,0,-0.4039849558910023],"max":[0.2960281492600229,1.0939781948009812,0.3949849525531422]},"sizeMeters":[0.592,1.094,0.799],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.502Z","updatedAt":"2026-09-07T11:47:18.676Z","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/10866/v2/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 WheeledBin240LitreLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10866/v2/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/10866/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10866/v2/model.glb\" alt=\"Wheeled bin 240 litre (Laundrette 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/10866/v2/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/10866/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10867","slug":"laundrette-and-cleaning-wheeled-bin-1100-4f7b81ca","title":"Wheeled bin 1100 litre (Laundrette and Cleaning Services)","summary":"An 1100 litre four wheel bin: a steel body on a chassis with four swivel castors, a rolled rim, a comb lift bar, side lifting pockets and two domed lids on a central spine, each a named pivoted node.","description":"An 1100 litre four wheel bin: a steel body on a chassis with four swivel castors, a rolled rim, a comb lift bar, side lifting pockets and two domed lids on a central spine, each a named pivoted node. Overall 1.274 x 1.344 x 1.018 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: lid-front, lid-back. 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-wheeled-bin-1100-4f7b81ca","cdnUrl":"https://cdn.3dassets.dev/assets/10867/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-bin-1100-4f7b81ca","thumbnailUrl":"https://cdn.3dassets.dev/assets/10867/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10867/v2/poster.webp","blurhash":"U28z[Z~q00D%.9t7IAM{D$ITD%%M00xu_3RQ","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":118232,"triangles":2588,"vertices":7764,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6370000243186951,-0.00003890640571835302,-0.4969884387394563],"max":[0.6370000243186951,1.3439884147189203,0.5214884213349]},"sizeMeters":[1.274,1.344,1.018],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.664Z","updatedAt":"2026-09-07T11:47:18.724Z","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/10867/v2/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 WheeledBin1100LitreLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10867/v2/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/10867/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10867/v2/model.glb\" alt=\"Wheeled bin 1100 litre (Laundrette 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/10867/v2/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/10867/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10868","slug":"laundrette-and-cleaning-recycling-bank-3-stream-4c18dc36","title":"Recycling bank, three stream (Laundrette and Cleaning Services)","summary":"A 1.5 m three stream recycling bank: a shared carcass on a set back plinth with three framed apertures and hooded chutes, blank stream panels and label plates, a laminate top and a moulded liner tub in each bay.","description":"A 1.5 m three stream recycling bank: a shared carcass on a set back plinth with three framed apertures and hooded chutes, blank stream panels and label plates, a laminate top and a moulded liner tub in each bay. Overall 1.500 x 1.260 x 0.626 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-recycling-bank-3-stream-4c18dc36","cdnUrl":"https://cdn.3dassets.dev/assets/10868/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-recycling-bank-3-stream-4c18dc36","thumbnailUrl":"https://cdn.3dassets.dev/assets/10868/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10868/v2/poster.webp","blurhash":"UEHV3X%M00of~S-;IuIA00aexvRjtRt3RkIW","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":110980,"triangles":2276,"vertices":6828,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.75,0.000010357219735523948,-0.3299943600362114],"max":[0.75,1.2599743741988831,0.2960134782134681]},"sizeMeters":[1.5,1.26,0.626],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:25.892Z","updatedAt":"2026-09-07T11:47:18.771Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10868/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RecyclingBankThreeStreamLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10868/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10868/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10868/v2/model.glb\" alt=\"Recycling bank, three stream (Laundrette 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/10868/v2/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/10868/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10870","slug":"laundrette-and-cleaning-cardboard-baler-25ca85a3","title":"Vertical cardboard baler (Laundrette and Cleaning Services)","summary":"A vertical cardboard baler: a welded four post frame on foot plates, a loading door on a named hinge pivot with a viewing grille and a latch, a platen ram on twin guides, a hydraulic power pack, a keypad fascia and a strap wire rack.","description":"A vertical cardboard baler: a welded four post frame on foot plates, a loading door on a named hinge pivot with a viewing grille and a latch, a platen ram on twin guides, a hydraulic power pack, a keypad fascia and a strap wire rack. Overall 1.320 x 2.400 x 0.971 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: door-chamber. 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-cardboard-baler-25ca85a3","cdnUrl":"https://cdn.3dassets.dev/assets/10870/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-cardboard-baler-25ca85a3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10870/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10870/v2/poster.webp","blurhash":"U7Cj2}9F00~q_4M{D$xu4nj[-;WU-;xu9FM{","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":120464,"triangles":2368,"vertices":7104,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6900757349024585,0,-0.47499438949256967],"max":[0.6300464480239699,2.4000000953674316,0.4959961913715557]},"sizeMeters":[1.32,2.4,0.971],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:27.025Z","updatedAt":"2026-09-07T11:47:20.050Z","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/10870/v2/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 VerticalCardboardBalerLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10870/v2/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/10870/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10870/v2/model.glb\" alt=\"Vertical cardboard baler (Laundrette 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/10870/v2/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/10870/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10872","slug":"laundrette-and-cleaning-waste-compactor-550accde","title":"Static waste compactor (Laundrette and Cleaning Services)","summary":"A 2.1 m static waste compactor on skid rails: a ribbed container body with a latched discharge door, a charge box with a hopper and safety edge, a horizontal ram cylinder, a control cabinet with an isolator and a bolted service panel.","description":"A 2.1 m static waste compactor on skid rails: a ribbed container body with a latched discharge door, a charge box with a hopper and safety edge, a horizontal ram cylinder, a control cabinet with an isolator and a bolted service panel. Overall 2.160 x 1.470 x 1.366 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-waste-compactor-550accde","cdnUrl":"https://cdn.3dassets.dev/assets/10872/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-waste-compactor-550accde","thumbnailUrl":"https://cdn.3dassets.dev/assets/10872/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10872/v2/poster.webp","blurhash":"U6G95EE1009FD%~qod9E00t8-;?a$}4mt8Ro","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":114280,"triangles":2296,"vertices":6888,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-1.1100000143051147,-0.00003404331464851307,-0.6400649507521534],"max":[1.0499999523162842,1.4700096319449898,0.7258145822839159]},"sizeMeters":[2.16,1.47,1.366],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:27.902Z","updatedAt":"2026-09-07T11:47:20.264Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10872/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StaticWasteCompactorLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10872/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10872/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10872/v2/model.glb\" alt=\"Static waste compactor (Laundrette 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/10872/v2/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/10872/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10873","slug":"laundrette-and-cleaning-bin-store-enclosure-cd5cabaa","title":"Bin store enclosure bay 1.6 m (Laundrette and Cleaning Services)","summary":"A 1.6 m bin store bay on the store grid: two heavy posts on base plates with a slatted timber infill between top and bottom rails, a capping rail and a kick board at the base.","description":"A 1.6 m bin store bay on the store grid: two heavy posts on base plates with a slatted timber infill between top and bottom rails, a capping rail and a kick board at the base. Overall 1.600 x 1.800 x 0.220 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Connectors: store-left (bin-store), store-right (bin-store). 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-bin-store-enclosure-cd5cabaa","cdnUrl":"https://cdn.3dassets.dev/assets/10873/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-bin-store-enclosure-cd5cabaa","thumbnailUrl":"https://cdn.3dassets.dev/assets/10873/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10873/v2/poster.webp","blurhash":"UCDSzQ%200IV_3%MD%9Z02j[~Vaxt8xuaxRP","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":60864,"triangles":1216,"vertices":3648,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8000213417633047,-0.00003113260619276581,-0.10997649783432115],"max":[0.8000213417633047,1.7999999523162842,0.10997649783432115]},"sizeMeters":[1.6,1.8,0.22],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:27.788Z","updatedAt":"2026-09-07T11:47:20.354Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10873/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BinStoreEnclosureBay16MLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10873/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10873/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10873/v2/model.glb\" alt=\"Bin store enclosure bay 1.6 m (Laundrette 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/10873/v2/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/10873/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10875","slug":"laundrette-and-cleaning-bin-store-gate-999d0d1d","title":"Bin store gate 1.6 m (Laundrette and Cleaning Services)","summary":"The 1.6 m bin store bay fitted as a gate: two slatted leaves on named hinge pivots with barrel hinges and pull handles, a drop bolt into a ground keeper and a blank notice panel.","description":"The 1.6 m bin store bay fitted as a gate: two slatted leaves on named hinge pivots with barrel hinges and pull handles, a drop bolt into a ground keeper and a blank notice panel. Overall 1.600 x 1.800 x 0.222 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: gate-left, gate-right. Connectors: store-left (bin-store), store-right (bin-store). 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-bin-store-gate-999d0d1d","cdnUrl":"https://cdn.3dassets.dev/assets/10875/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-bin-store-gate-999d0d1d","thumbnailUrl":"https://cdn.3dassets.dev/assets/10875/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10875/v2/poster.webp","blurhash":"U6B:spM{00-p_4%MDiD%02of~UM{-;xuIAIT","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":70140,"triangles":2056,"vertices":6168,"meshes":9,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.8000213417633047,0,-0.10997649783432115],"max":[0.8000213417633047,1.7999999523162842,0.11200336421895232]},"sizeMeters":[1.6,1.8,0.222],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:27.816Z","updatedAt":"2026-09-07T11:47:20.210Z","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/10875/v2/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 BinStoreGate16MLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10875/v2/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/10875/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10875/v2/model.glb\" alt=\"Bin store gate 1.6 m (Laundrette 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/10875/v2/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/10875/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10876","slug":"laundrette-and-cleaning-waste-sack-trolley-c5c278a1","title":"Waste sack trolley (Laundrette and Cleaning Services)","summary":"A tubular waste sack truck: two bent tube stiles with rubber grips, a lipped toe plate, two pneumatic tyred wheels on stub axles, two cross rails and a strapped pair of refuse sacks.","description":"A tubular waste sack truck: two bent tube stiles with rubber grips, a lipped toe plate, two pneumatic tyred wheels on stub axles, two cross rails and a strapped pair of refuse sacks. Overall 0.596 x 1.284 x 0.461 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-waste-sack-trolley-c5c278a1","cdnUrl":"https://cdn.3dassets.dev/assets/10876/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-waste-sack-trolley-c5c278a1","thumbnailUrl":"https://cdn.3dassets.dev/assets/10876/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10876/v2/poster.webp","blurhash":"U48NkEs*00NgoHIURm?c06R:~QxnD-og-nW9","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":56324,"triangles":1120,"vertices":3360,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.298020098766882,0,-0.23032853253842653],"max":[0.298020098766882,1.2844754457473755,0.23032222588082404]},"sizeMeters":[0.596,1.284,0.461],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:28.007Z","updatedAt":"2026-09-07T11:47:21.590Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10876/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WasteSackTrolleyLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10876/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10876/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10876/v2/model.glb\" alt=\"Waste sack trolley (Laundrette 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/10876/v2/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/10876/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10877","slug":"laundrette-and-cleaning-cardboard-bale-b2b04184","title":"Cardboard bale (Laundrette and Cleaning Services)","summary":"A finished cardboard bale: a compressed block with nine visible layer courses and slightly waisted flanks, three strap wires with twisted knots and a blank ticket on the face.","description":"A finished cardboard bale: a compressed block with nine visible layer courses and slightly waisted flanks, three strap wires with twisted knots and a blank ticket on the face. Overall 1.112 x 0.810 x 0.728 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-cardboard-bale-b2b04184","cdnUrl":"https://cdn.3dassets.dev/assets/10877/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-cardboard-bale-b2b04184","thumbnailUrl":"https://cdn.3dassets.dev/assets/10877/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10877/v2/poster.webp","blurhash":"UBJ8CM~p00t6_3?ajYM|00E1M{IoRi%LNHD*","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":58320,"triangles":1148,"vertices":3444,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5559999942779541,-0.000010488290107413256,-0.3600142600103086],"max":[0.5559999942779541,0.8100000023841858,0.3680142464204496]},"sizeMeters":[1.112,0.81,0.728],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:28.286Z","updatedAt":"2026-09-07T11:47:21.726Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10877/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CardboardBaleLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10877/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10877/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10877/v2/model.glb\" alt=\"Cardboard bale (Laundrette 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/10877/v2/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/10877/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10878","slug":"laundrette-and-cleaning-wheeled-bin-240-open-lid-6b703dd2","title":"Wheeled bin 240 litre, open lid (Laundrette and Cleaning Services)","summary":"The 240 litre wheeled bin with its lid swung fully back on the hinge pivot, showing the rolled rim and the open body that the closed lid hides.","description":"The 240 litre wheeled bin with its lid swung fully back on the hinge pivot, showing the rolled rim and the open body that the closed lid hides. Overall 0.592 x 1.726 x 1.043 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: lid. Functional variant of wheeled-bin-240. 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-wheeled-bin-240-open-lid-6b703dd2","cdnUrl":"https://cdn.3dassets.dev/assets/10878/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-bin-240-open-lid-6b703dd2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10878/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10878/v2/poster.webp","blurhash":"U35#njM{00%M?b9FIU_4M_IUtR%gRjt7t7M{","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":58312,"triangles":1148,"vertices":3444,"meshes":4,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2960281492600229,0,-0.6484844906133346],"max":[0.2960281492600229,1.725640196800232,0.3949849525531422]},"sizeMeters":[0.592,1.726,1.043],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:28.183Z","updatedAt":"2026-09-07T11:47:21.911Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10878/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WheeledBin240LitreOpenLidLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10878/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10878/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10878/v2/model.glb\" alt=\"Wheeled bin 240 litre, open lid (Laundrette 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/10878/v2/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/10878/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10880","slug":"laundrette-and-cleaning-washer-commercial-small-graphi-b1d8b73c","title":"Commercial front load washer 700, graphite (Laundrette and Cleaning Services)","summary":"The 700 mm commercial washer finished in graphite: identical geometry to the white version, with the cabinet and its front stiles remapped to the dark body colour, leaving the stainless plinth, porthole bezel and hopper as they are.","description":"The 700 mm commercial washer finished in graphite: identical geometry to the white version, with the cabinet and its front stiles remapped to the dark body colour, leaving the stainless plinth, porthole bezel and hopper as they are. 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. Cosmetic colour variant of washer-commercial-small; the geometry is unchanged. 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-washer-commercial-small-graphi-b1d8b73c","cdnUrl":"https://cdn.3dassets.dev/assets/10880/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-washer-commercial-small-graphi-b1d8b73c","thumbnailUrl":"https://cdn.3dassets.dev/assets/10880/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10880/v2/poster.webp","blurhash":"UB9aEc%M00IU_NofD$ayxuWBIUt7t7WBRjof","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":204576,"triangles":4120,"vertices":12360,"meshes":8,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3499942078322848,0,-0.6274723410606384],"max":[0.3499942078322848,1.100000023841858,0.4523941924123087]},"sizeMeters":[0.7,1.1,1.08],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:28.529Z","updatedAt":"2026-09-07T11:47:22.109Z","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/10880/v2/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 CommercialFrontLoadWasher700GraphiteLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10880/v2/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/10880/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10880/v2/model.glb\" alt=\"Commercial front load washer 700, graphite (Laundrette 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/10880/v2/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/10880/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10882","slug":"laundrette-and-cleaning-tumble-dryer-single-graphite-0109b2f2","title":"Commercial tumble dryer 800, graphite (Laundrette and Cleaning Services)","summary":"The 800 mm commercial tumble dryer finished in graphite: identical geometry to the white version, with the cabinet and lint drawer front remapped to the dark body colour, leaving the stainless plinth, door bezel and intake grilles as they are.","description":"The 800 mm commercial tumble dryer finished in graphite: identical geometry to the white version, with the cabinet and lint drawer front remapped to the dark body colour, leaving the stainless plinth, door bezel and intake grilles as they are. 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. Cosmetic colour variant of tumble-dryer-single; the geometry is unchanged. 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-tumble-dryer-single-graphite-0109b2f2","cdnUrl":"https://cdn.3dassets.dev/assets/10882/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-tumble-dryer-single-graphite-0109b2f2","thumbnailUrl":"https://cdn.3dassets.dev/assets/10882/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10882/v2/poster.webp","blurhash":"UE9tT3xv00RP~qay9Foy%gRjITxaogRkWBtR","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":191784,"triangles":3816,"vertices":11448,"meshes":10,"materials":4,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.4000171080345812,0,-0.5610219533573259],"max":[0.4000171080345812,1.3200000524520874,0.5456317360530961]},"sizeMeters":[0.8,1.32,1.107],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:29.518Z","updatedAt":"2026-09-07T11:47:23.028Z","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/10882/v2/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 CommercialTumbleDryer800GraphiteLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10882/v2/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/10882/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10882/v2/model.glb\" alt=\"Commercial tumble dryer 800, graphite (Laundrette 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/10882/v2/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/10882/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10885","slug":"laundrette-and-cleaning-coin-box-column-stainless-f50d379a","title":"Coin payment column, stainless (Laundrette and Cleaning Services)","summary":"The coin payment column with a stainless cabinet instead of a painted one: identical geometry to the parent, with the column body and price card face remapped to the brushed steel finish.","description":"The coin payment column with a stainless cabinet instead of a painted one: identical geometry to the parent, with the column body and price card face remapped to the brushed steel finish. 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. Cosmetic colour variant of coin-box-column; the geometry is unchanged. 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-stainless-f50d379a","cdnUrl":"https://cdn.3dassets.dev/assets/10885/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-coin-box-column-stainless-f50d379a","thumbnailUrl":"https://cdn.3dassets.dev/assets/10885/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10885/v2/poster.webp","blurhash":"U88z=Qxu00IT~qof8_WA-;ofD%Rj-;fQIUj[","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":90772,"triangles":1808,"vertices":5424,"meshes":5,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1500091588042037,0,-0.2959807918257208],"max":[0.1500091588042037,1.100000023841858,0.25900156356758786]},"sizeMeters":[0.3,1.1,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:31.351Z","updatedAt":"2026-09-07T11:47:23.454Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10885/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoinPaymentColumnStainlessLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10885/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10885/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10885/v2/model.glb\" alt=\"Coin payment column, stainless (Laundrette 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/10885/v2/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/10885/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10884","slug":"laundrette-and-cleaning-wheeled-bin-240-recycling-3ebd1cb9","title":"Wheeled bin 240 litre, recycling stream (Laundrette and Cleaning Services)","summary":"The 240 litre wheeled bin in a recycling stream colour: identical geometry to the general waste version, with the body, lid and comb bar remapped to the signal colour.","description":"The 240 litre wheeled bin in a recycling stream colour: identical geometry to the general waste version, with the body, lid and comb bar remapped to the signal colour. Overall 0.592 x 1.094 x 0.799 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Named pivoted nodes: lid. Cosmetic colour variant of wheeled-bin-240; the geometry is unchanged. 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-wheeled-bin-240-recycling-3ebd1cb9","cdnUrl":"https://cdn.3dassets.dev/assets/10884/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wheeled-bin-240-recycling-3ebd1cb9","thumbnailUrl":"https://cdn.3dassets.dev/assets/10884/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10884/v2/poster.webp","blurhash":"U8FYI{~T0103x[WFRQs*03IW~SxtM|obkDRo","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":59180,"triangles":1148,"vertices":3444,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.2960281492600229,0,-0.4039849558910023],"max":[0.2960281492600229,1.0939781948009812,0.3949849525531422]},"sizeMeters":[0.592,1.094,0.799],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:31.214Z","updatedAt":"2026-09-07T11:47:23.400Z","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/10884/v2/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 WheeledBin240LitreRecyclingStreamLaundretteAndCleaningServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/10884/v2/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/10884/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10884/v2/model.glb\" alt=\"Wheeled bin 240 litre, recycling stream (Laundrette 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/10884/v2/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/10884/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"10888","slug":"laundrette-and-cleaning-janitorial-trolley-signal-5b5838e8","title":"Janitorial trolley, signal colour (Laundrette and Cleaning Services)","summary":"The janitorial trolley in a single signal colour: identical geometry to the grey version, with the moulded tray, shelves and caddy remapped from neutral plastic to the pack accent.","description":"The janitorial trolley in a single signal colour: identical geometry to the grey version, with the moulded tray, shelves and caddy remapped from neutral plastic to the pack accent. Overall 1.085 x 1.875 x 0.520 m (X x Y x Z), metre units, +Y up, user side toward +Z, resting on y=0. Cosmetic colour variant of janitorial-trolley; the geometry is unchanged. 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-janitorial-trolley-signal-5b5838e8","cdnUrl":"https://cdn.3dassets.dev/assets/10888/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-janitorial-trolley-signal-5b5838e8","thumbnailUrl":"https://cdn.3dassets.dev/assets/10888/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10888/v2/poster.webp","blurhash":"U6Amh$xv00sj02jr~UWC00D*^+%L^%t6E4R.","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":241852,"triangles":4936,"vertices":14808,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5547913312911987,0,-0.2599777074540782],"max":[0.5299999713897705,1.8749029636383057,0.2599777074540782]},"sizeMeters":[1.085,1.875,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:31.206Z","updatedAt":"2026-09-07T11:47:23.868Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10888/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JanitorialTrolleySignalColourLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10888/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10888/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10888/v2/model.glb\" alt=\"Janitorial trolley, signal colour (Laundrette 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/10888/v2/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/10888/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10889","slug":"laundrette-and-cleaning-wet-floor-sign-white-c663cbe3","title":"Wet floor sign, white blades (Laundrette and Cleaning Services)","summary":"The wet floor sign with white blades and a dark warning panel: identical geometry to the yellow version, with the blade and foot rail materials swapped for the pale body colour.","description":"The wet floor sign with white blades and a dark warning panel: identical geometry to the yellow version, with the blade and foot rail materials swapped for the pale body colour. 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. Cosmetic colour variant of wet-floor-sign; the geometry is unchanged. 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-white-c663cbe3","cdnUrl":"https://cdn.3dassets.dev/assets/10889/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-wet-floor-sign-white-c663cbe3","thumbnailUrl":"https://cdn.3dassets.dev/assets/10889/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10889/v2/poster.webp","blurhash":"U9D,4Yt700j?_3RjM{%M009G?b~q%MM{9G%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":24484,"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 Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:31.429Z","updatedAt":"2026-09-07T11:47:24.804Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10889/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WetFloorSignWhiteBladesLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10889/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10889/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10889/v2/model.glb\" alt=\"Wet floor sign, white blades (Laundrette 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/10889/v2/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/10889/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10893","slug":"laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","title":"Laundrette with two machine banks, folding island and seating (Laundrette and Cleaning Services)","summary":"Composed example for Laundrette and Cleaning Services.","description":"A working laundrette laid out as a customer sees it. Along the back wall a bank of two 700 mm commercial washers, a coin payment column and a 900 mm high capacity washer runs between two stainless end panels, with the water and drainage service run and the extraction riser behind it. Facing it across the room is a second bank of a tumble dryer, a stacked dryer pair, a card payment column and a stacked washer and dryer. The folding island sits between the banks with a laundry cart and a wet floor sign beside it, and the customer end carries the drop off counter and a counter module, a waiting bench and a three seat chair run, the detergent vender, the notice board hung on the inside of the shop window, a magazine rack and three shopfront bays with the entrance door in the middle. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/10893/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-laundrette-floor-c9a67b02-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/10893/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10893/v2/poster.webp","blurhash":"U5AK2F-:008_ahoKWAIV00IV~q.7ITNIt9-:","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2347468,"triangles":58498,"vertices":126541,"meshes":128,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-3.2600236772069775,-0.00004330898737725519,-3.3899987792596207],"max":[3.14268746285075,3.000022091150873,4.039052339401944]},"sizeMeters":[6.403,3,7.429],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:33.386Z","updatedAt":"2026-09-07T11:47:25.860Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10893/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LaundretteWithTwoMachineBanksFoldingIslandAndSeatingLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10893/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10893/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10893/v2/model.glb\" alt=\"Laundrette with two machine banks, folding island and seating (Laundrette 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/10893/v2/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/10893/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10890","slug":"laundrette-and-cleaning-dry-cleaning-back-area-11435a06","title":"Dry cleaning back area (Laundrette and Cleaning Services)","summary":"Composed example for Laundrette and Cleaning Services.","description":"The back area of a dry cleaners, laid out as the work moves through it. Intake is the tagging bench and the order rail label unit on the left. The solvent machine stands against the back wall with its distillation column and a solvent tank beside it, the rigid mount washer extractor and the flatwork ironer next to them. Finishing is the steam press with its head raised, the ironing station and the tunnel steamer cabinet. Finished work goes onto the rotating carousel, two hanging rail bays closed by an end post, and a rolling A frame of wrapped garments. The covered linen trolley, the sorting bench and a lint bin complete the room. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-dry-cleaning-back-area-11435a06","cdnUrl":"https://cdn.3dassets.dev/assets/10890/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-dry-cleaning-back-area-11435a06","thumbnailUrl":"https://cdn.3dassets.dev/assets/10890/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10890/v2/poster.webp","blurhash":"U5A,%s9F00%MM}xuj[IU00%N~qfOt1D%j[?I","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":2030584,"triangles":49002,"vertices":106790,"meshes":105,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-3.3506325739600102,-0.00004750295005073735,-3.359999990463257],"max":[3.0306716291255955,2.381999969482422,3.54996062680771]},"sizeMeters":[6.381,2.382,6.91],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:32.605Z","updatedAt":"2026-09-07T11:47:25.988Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10890/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryCleaningBackAreaLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10890/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10890/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10890/v2/model.glb\" alt=\"Dry cleaning back area (Laundrette 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/10890/v2/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/10890/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10892","slug":"laundrette-and-cleaning-janitorial-store-6df0f30f","title":"Janitorial store and bin yard (Laundrette and Cleaning Services)","summary":"Composed example for Laundrette and Cleaning Services.","description":"A contract cleaning store with its bin yard beyond. The mop sink with its splashback sits against the back wall between two bays of bunded chemical shelving, with the mop and broom rail and the PPE station on the side walls. The floor carries a janitorial trolley, a second trolley in the signal colour, a mop bucket and wringer, a walk behind scrubber, a rotary polisher, a wet and dry vacuum, a backpack vacuum, a cleaning caddy, a window cleaning kit, a litter picking hoop, a concentrate set and two wet floor signs. Beyond the store, two bin store bays and a gate fence the yard, and in front of them stand a 1100 litre bin, two 240 litre bins, the recycling bank, the cardboard baler, a finished bale and the sack trolley. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-janitorial-store-6df0f30f","cdnUrl":"https://cdn.3dassets.dev/assets/10892/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-janitorial-store-6df0f30f","thumbnailUrl":"https://cdn.3dassets.dev/assets/10892/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10892/v2/poster.webp","blurhash":"U9BWb-j]00xtITIU%M-p00WB~pRj%N?aIUD*","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1829812,"triangles":46862,"vertices":101107,"meshes":119,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-3.222370917052025,-0.00003890640571835302,-2.7000148116098854],"max":[3.4126954861206387,2.4000000953674316,5.0214884213349]},"sizeMeters":[6.635,2.4,7.722],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:32.255Z","updatedAt":"2026-09-07T11:47:26.104Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10892/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JanitorialStoreAndBinYardLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10892/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10892/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10892/v2/model.glb\" alt=\"Janitorial store and bin yard (Laundrette 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/10892/v2/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/10892/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"10894","slug":"laundrette-and-cleaning-connector-cases-ac6719bc","title":"Connector cases (Laundrette and Cleaning Services)","summary":"Composed example for Laundrette and Cleaning Services.","description":"Every connector type in the pack, assembled so the coupling can be checked. Front row: a machine bank of an end panel, a 700 mm washer, a coin payment column, a tumble dryer and a second end panel, all coupling on machine-bank ports at 550 mm. Second row: a counter run of two 600 mm modules and the 1.2 m drop off counter on counter-run ports at 450 mm. Third row: three shopfront bays, the middle one the entrance door, on shopfront-run ports at 1.3 m. Fourth row: two garment rail bays closed by an end post on garment-rail ports at 1.7 m. Back row: two bin store bays and a gate on bin-store ports at 900 mm. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/laundrette-and-cleaning-connector-cases-ac6719bc","cdnUrl":"https://cdn.3dassets.dev/assets/10894/v2/model.glb","downloadUrl":"https://3dassets.dev/download/laundrette-and-cleaning-connector-cases-ac6719bc","thumbnailUrl":"https://cdn.3dassets.dev/assets/10894/v2/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/10894/v2/poster.webp","blurhash":"U89aBO~p9FWCM{D%M{xb009G-;NFof?b-;Ri","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":926376,"triangles":22480,"vertices":49483,"meshes":68,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-2.400021341763305,-0.00003113260619276581,-5.127472341060638],"max":[2.400021341763305,3.000022091150873,4.912003364218952]},"sizeMeters":[4.8,3,10.039],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-06T14:36:32.982Z","updatedAt":"2026-09-07T11:47:26.514Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/10894/v2/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConnectorCasesLaundretteAndCleaningServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/10894/v2/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/10894/v2/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/10894/v2/model.glb\" alt=\"Connector cases (Laundrette 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/10894/v2/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/10894/v2/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"laundrette-and-cleaning","title":"Corner laundrette","url":"https://3dassets.dev/demos/laundrette-and-cleaning"}}}