{"data":{"id":273,"slug":"dental-practice-and-surgery","title":"Dental Practice and Surgery","summary":"A realistic dental practice: two surgeries of chair, delivery unit, operating light, stools and ported cabinet runs, a sterilising room and model lab behind them, and a reception and waiting area, all laid out from modular floor, wall, partition and door bays.","description":"Everything a developer needs to build a working dental practice, from the treatment room out to the front door. The surgery is the heart of it: a dental chair with an upholstered seat, leg rest, recline back and headrest, in two liveries and in a reclined treatment pose; a mobile delivery unit whose bracket arm carries a tray of handpieces over the patient; a floor standing operating light on a jointed arm; operator and nurse stools on castored bases; a pedestal spittoon with a rinse cup holder; a suction unit with a collection jar; a wall mounted intraoral x ray set on a scissor arm; a sensor tray; a monitor on a pole bracket; and a 1 m cabinet module with a three drawer bank, a hinged door and a grey worktop that tiles into a run of any length, with a sink and mixer variant that drops into any position in it. Set out on the worktop are an instrument tray with a mouth mirror, a tapered probe and college tweezers, an ultrasonic scaler, a curing light in its cradle, a glove and mask dispenser bracket, a yellow sharps bin and a pedal bin. Behind the surgery wall is the room that keeps it running: a bench top autoclave whose round door opens onto a real chamber recess, an instrument washer with a drop down door, an ultrasonic cleaning bath, a loaded sterile pouch rack, a glazed sterile store cabinet, and a model lab with its bench, trimmer motor, burner, articulator, plaster arches, impression trays and case boxes. The front of house is a reception desk with staff screens, linked waiting chair runs in two colours, low tables, a water cooler, a coat stand, a bead maze play corner, an appointment screen and a notice board. The building itself is modular: a 2 m clinical floor tile with welded seams, and a 2 m wall bay in three kinds, plain, glazed and with a hinged surgery door, all sharing the same ports so a run mixes them freely, plus coved skirting, ceiling light panels, wall hand gel and a low surface temperature radiator. What moves is rigid node transforms only: the chair back and its headrest, the light arm and head, the delivery, monitor and x ray arms, autoclave, cabinet, store and surgery doors, the washer door, drawers, bin and bath lids, stool seats and the lab trimmer spindle. What does not move is said in each description and it is always the same reason: hoses, suction lines, gas tubing and power cables are flexible and this library has no skinning; the foot control, the pedal bin push rod and the articulator hinge are multi bar linkages one node cannot carry; and there is no water, no flame and no person anywhere. All original CC0 geometry, with no manufacturer, brand or product name in the geometry or the text.","url":"https://3dassets.dev/packs/dental-practice-and-surgery","coverUrl":"https://cdn.3dassets.dev/assets/34423/v1/poster.webp","assetCount":54,"aiGenerated":true,"aiGeneratedAssetCount":54,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":3193436,"totalTriangles":117172,"starterScene":{"id":"34423","slug":"dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","title":"Dental practice floor (Dental Practice and Surgery)","summary":"A whole dental practice laid from 2 m clinical floor tiles and 2 m wall bays: two surgeries side by side behind a glazed partition wall, each with its chair, operating light, delivery unit, operator and nurse stools, spittoon, monitor and wall x ray arm, and a five module...","description":"A whole dental practice laid from 2 m clinical floor tiles and 2 m wall bays: two surgeries side by side behind a glazed partition wall, each with its chair, operating light, delivery unit, operator and nurse stools, spittoon, monitor and wall x ray arm, and a five module cabinet run with a sink set out with trays, a scaler, a curing light, a sharps bin and glove and mask dispensers, a sterilising room behind them running autoclaves, an instrument washer, an ultrasonic bath, a pouch rack and sterile stores, a model lab corner with the bench, articulator and plaster models, and a staff room behind the reception wall, and a reception desk, waiting rows, tables, water cooler, play corner and appointment screen at the front.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34423/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34423/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34423/v1/poster.webp","blurhash":"U6DvyT9w00w]^%n$E2Io00-m~qR-0MXU-o%L","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":1177948,"triangles":46988,"vertices":57601,"meshes":354,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-10.001199960708618,-0.06003021399493349,-8.072976105889923],"max":[6.001199960708618,2.701200008392334,6.001199960708618]},"sizeMeters":[16.002,2.761,14.074],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:34.063Z","updatedAt":"2026-09-11T08:19:34.193Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34423/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DentalPracticeFloorDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34423/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34423/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34423/v1/model.glb\" alt=\"Dental practice floor (Dental Practice and Surgery)\" 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/34423/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34423/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"34371","slug":"dental-practice-and-surgery-dental-chair-da5c65c7","title":"Dental Chair (Dental Practice and Surgery)","summary":"A dental chair in the upright position: a cast base and lift column under an upholstered seat and leg rest, with a recline back and a sliding headrest on the hinge above it.","description":"A dental chair in the upright position: a cast base and lift column under an upholstered seat and leg rest, with a recline back and a sliding headrest on the hinge above it. Overall 0.66 by 1.62 by 1.68 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The patient lies head toward -Z, so the operator works from -X and the nurse from +X. The foot control plate on the base is modelled but static: it is linked to the lift ram by hydraulics, which a rigid node cannot carry. Rigid node-transform clips: back-tilt and headrest-tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dental-chair-da5c65c7","cdnUrl":"https://cdn.3dassets.dev/assets/34371/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dental-chair-da5c65c7","thumbnailUrl":"https://cdn.3dassets.dev/assets/34371/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34371/v1/poster.webp","blurhash":"U998MPae00yDlT8_v~.m4TDh%~t,-V.9TJH?","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":41804,"triangles":1656,"vertices":1755,"meshes":9,"materials":4,"textures":0,"animations":["back-tilt","headrest-tilt"],"boundingBox":{"min":[-0.3300000028023797,-7.450580707946131e-10,-0.6861750652678126],"max":[0.3300000028023797,1.6218999532080536,0.9900000095367432]},"sizeMeters":[0.66,1.622,1.676],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:06.048Z","updatedAt":"2026-09-11T08:19:06.244Z","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/34371/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DentalChairDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34371/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34371/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34371/v1/model.glb\" alt=\"Dental Chair (Dental Practice and Surgery)\" 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/34371/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34371/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34370","slug":"dental-practice-and-surgery-dental-chair-blue-4fd61edf","title":"Dental Chair Blue (Dental Practice and Surgery)","summary":"The dental chair with blue upholstery, for a second surgery that needs to read as a different room from the same camera.","description":"The dental chair with blue upholstery, for a second surgery that needs to read as a different room from the same camera. Overall 0.66 by 1.62 by 1.68 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rigid node-transform clips: back-tilt and headrest-tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dental-chair-blue-4fd61edf","cdnUrl":"https://cdn.3dassets.dev/assets/34370/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dental-chair-blue-4fd61edf","thumbnailUrl":"https://cdn.3dassets.dev/assets/34370/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34370/v1/poster.webp","blurhash":"UB9*Ddf500x^tn9Es7.T4TD$%ix^%1.8bwI9","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":42628,"triangles":1656,"vertices":1755,"meshes":10,"materials":5,"textures":0,"animations":["back-tilt","headrest-tilt"],"boundingBox":{"min":[-0.3300000028023797,-7.450580707946131e-10,-0.6861750652678126],"max":[0.3300000028023797,1.6218999532080536,0.9900000095367432]},"sizeMeters":[0.66,1.622,1.676],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:06.018Z","updatedAt":"2026-09-11T08:19:06.122Z","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/34370/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DentalChairBlueDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34370/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34370/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34370/v1/model.glb\" alt=\"Dental Chair Blue (Dental Practice and Surgery)\" 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/34370/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34370/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34372","slug":"dental-practice-and-surgery-dental-chair-reclined-98149de1","title":"Dental Chair Reclined (Dental Practice and Surgery)","summary":"The dental chair in the treatment position, back and headrest laid almost flat, for a surgery that should read as mid appointment rather than waiting for one.","description":"The dental chair in the treatment position, back and headrest laid almost flat, for a surgery that should read as mid appointment rather than waiting for one. Overall 0.66 by 1.10 by 2.13 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The recline pose is baked into the geometry, so the back and headrest nodes are present for assembly but carry no clips here. Use the plain chair when the recline should animate. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dental-chair-reclined-98149de1","cdnUrl":"https://cdn.3dassets.dev/assets/34372/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dental-chair-reclined-98149de1","thumbnailUrl":"https://cdn.3dassets.dev/assets/34372/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34372/v1/poster.webp","blurhash":"UA9kgC%N8wNGy?8_v~yX008w%gpcvM-qcYMx","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":40532,"triangles":1656,"vertices":1755,"meshes":9,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.3300000028023797,-7.450580707946131e-10,-1.1413947864763128],"max":[0.3300000028023797,1.0998092257606682,0.9900000095367432]},"sizeMeters":[0.66,1.1,2.131],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:06.078Z","updatedAt":"2026-09-11T08:19:06.299Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34372/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DentalChairReclinedDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34372/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34372/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34372/v1/model.glb\" alt=\"Dental Chair Reclined (Dental Practice and Surgery)\" 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/34372/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34372/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34373","slug":"dental-practice-and-surgery-delivery-unit-5e9334f5","title":"Delivery Unit (Dental Practice and Surgery)","summary":"A mobile delivery unit: a castored pedestal carrying a control head and a bracket arm with a tray, three handpieces in their holders and their hose tails.","description":"A mobile delivery unit: a castored pedestal carrying a control head and a bracket arm with a tray, three handpieces in their holders and their hose tails. Overall 0.50 by 1.23 by 1.12 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The hoses are rigid: flexible tubing needs skinning, which this library does not have, so they are modelled as short tails hanging from the tray and they travel with the arm rather than trailing back to the pedestal. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-delivery-unit-5e9334f5","cdnUrl":"https://cdn.3dassets.dev/assets/34373/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-delivery-unit-5e9334f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/34373/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34373/v1/poster.webp","blurhash":"UA9HOqE100^+_NR*D%xt00t7-=M{00xZ?bI:","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":43272,"triangles":1240,"vertices":1798,"meshes":10,"materials":6,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.25000564063796754,-1.490116363633831e-10,-0.22000113979225497],"max":[0.25000564063796754,1.2280392685865995,0.8999883926711142]},"sizeMeters":[0.5,1.228,1.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:05.190Z","updatedAt":"2026-09-11T08:19:05.297Z","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/34373/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DeliveryUnitDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34373/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34373/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34373/v1/model.glb\" alt=\"Delivery Unit (Dental Practice and Surgery)\" 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/34373/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34373/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34374","slug":"dental-practice-and-surgery-operating-light-e636b996","title":"Operating Light (Dental Practice and Surgery)","summary":"A floor standing operating light: a weighted base and post carrying a jointed arm and a wide reflector head on its yoke, with sterilisable handles under the lens.","description":"A floor standing operating light: a weighted base and post carrying a jointed arm and a wide reflector head on its yoke, with sterilisable handles under the lens. Overall 0.58 by 2.21 by 1.40 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The head node is parented to the arm node, so tilting the arm carries the head and the head still tilts on its own yoke. There is no power cable: a cable is cloth and rubber, which a rigid node transform cannot carry. Rigid node-transform clips: arm-tilt and head-tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-operating-light-e636b996","cdnUrl":"https://cdn.3dassets.dev/assets/34374/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-operating-light-e636b996","thumbnailUrl":"https://cdn.3dassets.dev/assets/34374/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34374/v1/poster.webp","blurhash":"U69Qz1R*00%M~q%M9F9F00xu_3D%4TIA-;?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":31948,"triangles":772,"vertices":1236,"meshes":11,"materials":5,"textures":0,"animations":["arm-tilt","head-tilt"],"boundingBox":{"min":[-0.28999999165534973,-0.000010527782123972984,-0.25999999046325684],"max":[0.28999999165534973,2.2096401328718738,1.140017375181555]},"sizeMeters":[0.58,2.21,1.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:07.059Z","updatedAt":"2026-09-11T08:19:07.162Z","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/34374/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OperatingLightDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34374/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34374/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34374/v1/model.glb\" alt=\"Operating Light (Dental Practice and Surgery)\" 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/34374/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34374/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34375","slug":"dental-practice-and-surgery-surgery-monitor-arm-0b68e534","title":"Surgery Monitor Arm (Dental Practice and Surgery)","summary":"A pole mounted surgery monitor: a weighted base and column with a bracket arm carrying a widescreen panel for intraoral images, at the height a seated operator reads it.","description":"A pole mounted surgery monitor: a weighted base and column with a bracket arm carrying a widescreen panel for intraoral images, at the height a seated operator reads it. Overall 0.57 by 1.49 by 0.65 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-surgery-monitor-arm-0b68e534","cdnUrl":"https://cdn.3dassets.dev/assets/34375/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-surgery-monitor-arm-0b68e534","thumbnailUrl":"https://cdn.3dassets.dev/assets/34375/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34375/v1/poster.webp","blurhash":"U67BJ@?b004T?v-;IU4nMdRjx]x]00D$?b_N","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":17088,"triangles":460,"vertices":577,"meshes":6,"materials":4,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.28299999237060547,-0.000005646731623641654,-0.18000000715255737],"max":[0.28299999237060547,1.489997860255773,0.4730050303088548]},"sizeMeters":[0.566,1.49,0.653],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:07.881Z","updatedAt":"2026-09-11T08:19:07.983Z","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/34375/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SurgeryMonitorArmDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34375/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34375/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34375/v1/model.glb\" alt=\"Surgery Monitor Arm (Dental Practice and Surgery)\" 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/34375/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34375/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34376","slug":"dental-practice-and-surgery-intraoral-xray-arm-7ea56888","title":"Intraoral Xray Arm (Dental Practice and Surgery)","summary":"A wall mounted intraoral x ray set: a backplate and control box carrying a scissor arm, a tube head on its yoke and a rectangular collimator.","description":"A wall mounted intraoral x ray set: a backplate and control box carrying a scissor arm, a tube head on its yoke and a rectangular collimator. Overall 0.25 by 0.36 by 1.33 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The backplate rests on y=0 like every other model here, so mount it by placing it at the height the wall needs: 1.2 m to the arm centre suits a seated patient. The exposure switch and its lead are not modelled. Rigid node-transform clips: tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-intraoral-xray-arm-7ea56888","cdnUrl":"https://cdn.3dassets.dev/assets/34376/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-intraoral-xray-arm-7ea56888","thumbnailUrl":"https://cdn.3dassets.dev/assets/34376/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34376/v1/poster.webp","blurhash":"UBAAjy4nM{M{~qDiR*t700oLxu-;00.8%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":23036,"triangles":488,"vertices":892,"meshes":8,"materials":5,"textures":0,"animations":["tilt"],"boundingBox":{"min":[-0.12300000339746475,-7.1525572131747595e-9,-0.058006989341451466],"max":[0.12300000339746475,0.36000001430511475,1.2700032044436222]},"sizeMeters":[0.246,0.36,1.328],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:07.934Z","updatedAt":"2026-09-11T08:19:08.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/34376/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function IntraoralXrayArmDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34376/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34376/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34376/v1/model.glb\" alt=\"Intraoral Xray Arm (Dental Practice and Surgery)\" 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/34376/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34376/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34377","slug":"dental-practice-and-surgery-spittoon-unit-5db2c52f","title":"Spittoon Unit (Dental Practice and Surgery)","summary":"A pedestal spittoon: a ceramic funnel bowl with a stainless rim and rinse spout, and a swing out cup holder with a rinse cup in it.","description":"A pedestal spittoon: a ceramic funnel bowl with a stainless rim and rinse spout, and a swing out cup holder with a rinse cup in it. Overall 0.51 by 1.02 by 0.36 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The bowl is a solid funnel with a dark inner cone rather than a hollowed basin, and no water is modelled anywhere: a water surface is not a rigid node. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-spittoon-unit-5db2c52f","cdnUrl":"https://cdn.3dassets.dev/assets/34377/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-spittoon-unit-5db2c52f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34377/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34377/v1/poster.webp","blurhash":"U597nm~q0000_Nxt9EIV8_RP?v-;D%R*x[t6","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":30160,"triangles":812,"vertices":1302,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.17800000309944153,-3.7252906315288215e-10,-0.17799457338588492],"max":[0.33000001311302185,1.0249140480398007,0.17799457338588492]},"sizeMeters":[0.508,1.025,0.356],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:08.063Z","updatedAt":"2026-09-11T08:19:08.174Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34377/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpittoonUnitDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34377/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34377/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34377/v1/model.glb\" alt=\"Spittoon Unit (Dental Practice and Surgery)\" 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/34377/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34377/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34378","slug":"dental-practice-and-surgery-suction-unit-a2a55578","title":"Suction Unit (Dental Practice and Surgery)","summary":"A suction unit: a white cased pump on a dark plinth with a clear collection jar and its stainless lid, a gauge on the front and two hose stubs.","description":"A suction unit: a white cased pump on a dark plinth with a clear collection jar and its stainless lid, a gauge on the front and two hose stubs. Overall 0.34 by 0.59 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-suction-unit-a2a55578","cdnUrl":"https://cdn.3dassets.dev/assets/34378/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-suction-unit-a2a55578","thumbnailUrl":"https://cdn.3dassets.dev/assets/34378/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34378/v1/poster.webp","blurhash":"UCD9^+x]00IA9ZbHt7jZ00V@_Noz^+V@RPkW","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":21024,"triangles":604,"vertices":882,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.17001577123314499,-3.7252906315288215e-10,-0.14999914007938364],"max":[0.17198732896954178,0.5922426581382751,0.15199913995552897]},"sizeMeters":[0.342,0.592,0.302],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:09.927Z","updatedAt":"2026-09-11T08:19:10.050Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34378/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SuctionUnitDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34378/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34378/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34378/v1/model.glb\" alt=\"Suction Unit (Dental Practice and Surgery)\" 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/34378/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34378/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34379","slug":"dental-practice-and-surgery-dentists-stool-c6053f0f","title":"Dentists Stool (Dental Practice and Surgery)","summary":"An operator stool: a five star castored base and gas column under a round upholstered seat with a small curved back rest on its stem.","description":"An operator stool: a five star castored base and gas column under a round upholstered seat with a small curved back rest on its stem. Overall 0.53 by 0.78 by 0.56 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The seat spins on its column; the gas lift itself is static, because a height change is a scale a rigid node clip should not fake. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dentists-stool-c6053f0f","cdnUrl":"https://cdn.3dassets.dev/assets/34379/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dentists-stool-c6053f0f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34379/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34379/v1/poster.webp","blurhash":"U56+U=pH00Q-Q7o}qGR500Rj?^xuquV@X.o}","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":36732,"triangles":844,"vertices":1677,"meshes":5,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.2627641260623932,-0.000009778174991065258,-0.2849999964237213],"max":[0.2627641260623932,0.7799949555943457,0.27377425290779]},"sizeMeters":[0.526,0.78,0.559],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:09.618Z","updatedAt":"2026-09-11T08:19:09.723Z","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/34379/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DentistsStoolDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34379/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34379/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34379/v1/model.glb\" alt=\"Dentists Stool (Dental Practice and Surgery)\" 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/34379/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34379/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34380","slug":"dental-practice-and-surgery-nurses-stool-963c4692","title":"Nurses Stool (Dental Practice and Surgery)","summary":"A nurse saddle stool: the same castored base on a taller column, with a blue seat pad, a foot ring and a body support arm curving round the front.","description":"A nurse saddle stool: the same castored base on a taller column, with a blue seat pad, a foot ring and a body support arm curving round the front. Overall 0.53 by 0.86 by 0.50 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-nurses-stool-963c4692","cdnUrl":"https://cdn.3dassets.dev/assets/34380/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-nurses-stool-963c4692","thumbnailUrl":"https://cdn.3dassets.dev/assets/34380/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34380/v1/poster.webp","blurhash":"U984xsoz00RPx^k9VrjI00Rj_4xuH=WBx_oy","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":43592,"triangles":1020,"vertices":2040,"meshes":5,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.2627641260623932,-0.000009778174991065258,-0.22602850355342755],"max":[0.2627641260623932,0.8600138938934235,0.27377425290779]},"sizeMeters":[0.526,0.86,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:10.781Z","updatedAt":"2026-09-11T08:19:10.966Z","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/34380/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function NursesStoolDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34380/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34380/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34380/v1/model.glb\" alt=\"Nurses Stool (Dental Practice and Surgery)\" 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/34380/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34380/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34381","slug":"dental-practice-and-surgery-cabinet-run-module-2856164b","title":"Cabinet Run Module (Dental Practice and Surgery)","summary":"A 1 m surgery cabinet module: a white carcass on a dark plinth under a grey worktop, with a three drawer bank on the left, a hinged door on the right and a coloured upstand at the back.","description":"A 1 m surgery cabinet module: a white carcass on a dark plinth under a grey worktop, with a three drawer bank on the left, a hinged door on the right and a coloured upstand at the back. Overall 1.00 by 0.96 by 0.65 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Tiles on a 1 m run through cabinet-left and cabinet-right: the carcass is exactly 1 m wide and the worktop stops flush with it, so two modules butt into one continuous worktop without the two tops fighting for the same plane. Rigid node-transform clips: drawer-open, drawer-close, door-open and door-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-cabinet-run-module-2856164b","cdnUrl":"https://cdn.3dassets.dev/assets/34381/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-cabinet-run-module-2856164b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34381/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34381/v1/poster.webp","blurhash":"UEHoXl-V00Io?^-pi^IU00jFxGoztRNGMdRj","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":19524,"triangles":1296,"vertices":1112,"meshes":12,"materials":5,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.5,0.00001800741030449221,-0.3050100728962664],"max":[0.5,0.9599691536556643,0.3470049712998332]},"sizeMeters":[1,0.96,0.652],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:11.093Z","updatedAt":"2026-09-11T08:19:11.193Z","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/34381/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CabinetRunModuleDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34381/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34381/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34381/v1/model.glb\" alt=\"Cabinet Run Module (Dental Practice and Surgery)\" 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/34381/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34381/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34382","slug":"dental-practice-and-surgery-cabinet-run-sink-module-42493004","title":"Cabinet Run Sink Module (Dental Practice and Surgery)","summary":"The cabinet module with a stainless sink let into the worktop and a lever mixer behind it, the hand wash point every surgery run needs, with a pair of doors under the bowl.","description":"The cabinet module with a stainless sink let into the worktop and a lever mixer behind it, the hand wash point every surgery run needs, with a pair of doors under the bowl. Overall 1.00 by 1.21 by 0.65 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Shares the cabinet ports, so a sink module drops into any position in a run. The tap swings on its own body in a real surgery; here it is static, because a mixer spout and a hose are one assembly and only the spout could carry a node. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-cabinet-run-sink-module-42493004","cdnUrl":"https://cdn.3dassets.dev/assets/34382/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-cabinet-run-sink-module-42493004","thumbnailUrl":"https://cdn.3dassets.dev/assets/34382/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34382/v1/poster.webp","blurhash":"UBFPW.Md00E1JR%2i{NG00tR~p-;=|IoRjs.","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":30760,"triangles":1392,"vertices":1463,"meshes":9,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5,0.00001800741030449221,-0.3050100728962664],"max":[0.5,1.210311770439148,0.34700000420212745]},"sizeMeters":[1,1.21,0.652],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:11.475Z","updatedAt":"2026-09-11T08:19:11.584Z","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/34382/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CabinetRunSinkModuleDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34382/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34382/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34382/v1/model.glb\" alt=\"Cabinet Run Sink Module (Dental Practice and Surgery)\" 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/34382/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34382/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34383","slug":"dental-practice-and-surgery-instrument-tray-33b4d81c","title":"Instrument Tray (Dental Practice and Surgery)","summary":"A set out instrument tray: a stainless tray on a paper liner with a mouth mirror, a tapered probe, college tweezers and three cotton rolls laid out ready.","description":"A set out instrument tray: a stainless tray on a paper liner with a mouth mirror, a tapered probe, college tweezers and three cotton rolls laid out ready. Overall 0.28 by 0.04 by 0.21 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The instruments are separate solids resting in the tray, not welded to it, so a consumer can lift one out in an editor. Nothing here is rigged. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-instrument-tray-33b4d81c","cdnUrl":"https://cdn.3dassets.dev/assets/34383/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-instrument-tray-33b4d81c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34383/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34383/v1/poster.webp","blurhash":"U6AmxWxu00R%_4xuIUIU00WD~qRj00IUx]%M","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":30452,"triangles":728,"vertices":1401,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.14000000059604645,9.213593962775768e-7,-0.09499679596095147],"max":[0.14000000059604645,0.03944548465486735,0.11799780487263638]},"sizeMeters":[0.28,0.039,0.213],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:12.705Z","updatedAt":"2026-09-11T08:19:12.899Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34383/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InstrumentTrayDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34383/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34383/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34383/v1/model.glb\" alt=\"Instrument Tray (Dental Practice and Surgery)\" 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/34383/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34383/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34384","slug":"dental-practice-and-surgery-ultrasonic-scaler-11a53ef2","title":"Ultrasonic Scaler (Dental Practice and Surgery)","summary":"A worktop ultrasonic scaler: a cased generator with a control face and coloured keys, a water bottle on top and a handpiece with a tapered tip in its holder.","description":"A worktop ultrasonic scaler: a cased generator with a control face and coloured keys, a water bottle on top and a handpiece with a tapered tip in its holder. Overall 0.27 by 0.29 by 0.33 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-ultrasonic-scaler-11a53ef2","cdnUrl":"https://cdn.3dassets.dev/assets/34384/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-ultrasonic-scaler-11a53ef2","thumbnailUrl":"https://cdn.3dassets.dev/assets/34384/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34384/v1/poster.webp","blurhash":"UADADXtR00x^D+ITM^%N00RP^+oM_N%g%2RP","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":28284,"triangles":712,"vertices":1108,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.12500946169937555,-0.000005111038345426144,-0.1550000011920929],"max":[0.14699595760884118,0.2950010485320699,0.17673544585704803]},"sizeMeters":[0.272,0.295,0.332],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:12.579Z","updatedAt":"2026-09-11T08:19:12.687Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34384/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function UltrasonicScalerDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34384/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34384/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34384/v1/model.glb\" alt=\"Ultrasonic Scaler (Dental Practice and Surgery)\" 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/34384/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34384/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34385","slug":"dental-practice-and-surgery-curing-light-3b7ed27a","title":"Curing Light (Dental Practice and Surgery)","summary":"A cordless curing light in its charging cradle: a pistol shaped wand with a blue grip and an angled emitting tip, standing on a weighted base.","description":"A cordless curing light in its charging cradle: a pistol shaped wand with a blue grip and an angled emitting tip, standing on a weighted base. Overall 0.14 by 0.18 by 0.20 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-curing-light-3b7ed27a","cdnUrl":"https://cdn.3dassets.dev/assets/34385/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-curing-light-3b7ed27a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34385/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34385/v1/poster.webp","blurhash":"UCB3{LRi00ohxu%2M{Io00t8_NRPM{D*t7?H","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":22728,"triangles":484,"vertices":907,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.06999769254379622,2.2351741291171123e-10,-0.0650023010748555],"max":[0.06999769254379622,0.18353899922146294,0.13784605264663696]},"sizeMeters":[0.14,0.184,0.203],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:12.803Z","updatedAt":"2026-09-11T08:19:12.902Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34385/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CuringLightDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34385/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34385/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34385/v1/model.glb\" alt=\"Curing Light (Dental Practice and Surgery)\" 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/34385/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34385/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34386","slug":"dental-practice-and-surgery-glove-and-mask-dispenser-64ec22b4","title":"Glove And Mask Dispenser (Dental Practice and Surgery)","summary":"A wall bracket of three glove cartons and a mask box: a stainless backplate with open fronted holders and a small shelf over them.","description":"A wall bracket of three glove cartons and a mask box: a stainless backplate with open fronted holders and a small shelf over them. Overall 0.52 by 0.34 by 0.13 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The backplate rests on y=0; mount it at about 1.3 m for a standing nurse. Nothing here moves. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-glove-and-mask-dispenser-64ec22b4","cdnUrl":"https://cdn.3dassets.dev/assets/34386/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-glove-and-mask-dispenser-64ec22b4","thumbnailUrl":"https://cdn.3dassets.dev/assets/34386/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34386/v1/poster.webp","blurhash":"UDF?9FE200TH_N?vMxDi00?G$yMeMcs:S~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":38044,"triangles":1248,"vertices":1670,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.25999999046325684,-0.000011284718459403376,-0.0800099148644314],"max":[0.2612000107765198,0.3400112865065988,0.050009917397628806]},"sizeMeters":[0.521,0.34,0.13],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:14.301Z","updatedAt":"2026-09-11T08:19:14.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34386/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GloveAndMaskDispenserDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34386/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34386/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34386/v1/model.glb\" alt=\"Glove And Mask Dispenser (Dental Practice and Surgery)\" 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/34386/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34386/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34387","slug":"dental-practice-and-surgery-sharps-bin-fe796f33","title":"Sharps Bin (Dental Practice and Surgery)","summary":"A yellow sharps bin with a white lid: the aperture, the temporary closure slide and a printed label panel, in the colour every clinical room uses for it.","description":"A yellow sharps bin with a white lid: the aperture, the temporary closure slide and a printed label panel, in the colour every clinical room uses for it. Overall 0.25 by 0.32 by 0.21 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The lid is a fixed push fit rather than a hinge: a sharps bin lid locks down and is never reopened, so animating it would be wrong. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-sharps-bin-fe796f33","cdnUrl":"https://cdn.3dassets.dev/assets/34387/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-sharps-bin-fe796f33","thumbnailUrl":"https://cdn.3dassets.dev/assets/34387/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34387/v1/poster.webp","blurhash":"UQIEwgtl00M{%joLRgog5Anit5t7xBf,RlV?","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":10168,"triangles":288,"vertices":352,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.12700000405311584,4.76837147544984e-9,-0.10500067475823119],"max":[0.12700000405311584,0.325204939168559,0.10700264920966832]},"sizeMeters":[0.254,0.325,0.212],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:15.391Z","updatedAt":"2026-09-11T08:19:15.500Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34387/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SharpsBinDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34387/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34387/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34387/v1/model.glb\" alt=\"Sharps Bin (Dental Practice and Surgery)\" 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/34387/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34387/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34389","slug":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","title":"Pedal Waste Bin (Dental Practice and Surgery)","summary":"A pedal waste bin: a stainless drum on a dark foot plate with a hinged lid, the pedal and its push rod modelled at the front.","description":"A pedal waste bin: a stainless drum on a dark foot plate with a hinged lid, the pedal and its push rod modelled at the front. Overall 0.34 by 0.55 by 0.40 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The pedal and push rod are static. A pedal bin is a four bar linkage, and one rigid node cannot carry the pedal, the rod and the lid together, so the lid is the part that moves. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","cdnUrl":"https://cdn.3dassets.dev/assets/34389/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/34389/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34389/v1/poster.webp","blurhash":"U9A16Ko#00Mx~qe:8_S1Mxs:xuNG0Koz?bV?","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":25264,"triangles":572,"vertices":1105,"meshes":7,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.17000534099898157,0.000007584771386924538,-0.15500000128522515],"max":[0.17000534099898157,0.548999168567843,0.23999999463558197]},"sizeMeters":[0.34,0.549,0.395],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:15.771Z","updatedAt":"2026-09-11T08:19:15.870Z","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/34389/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PedalWasteBinDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34389/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34389/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34389/v1/model.glb\" alt=\"Pedal Waste Bin (Dental Practice and Surgery)\" 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/34389/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34389/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34388","slug":"dental-practice-and-surgery-xray-sensor-tray-cdf20eb4","title":"Xray Sensor Tray (Dental Practice and Surgery)","summary":"An x ray sensor tray: a small dish holding two digital sensors with their leads coiled, coloured bite blocks and an aiming ring.","description":"An x ray sensor tray: a small dish holding two digital sensors with their leads coiled, coloured bite blocks and an aiming ring. Overall 0.28 by 0.05 by 0.20 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-xray-sensor-tray-cdf20eb4","cdnUrl":"https://cdn.3dassets.dev/assets/34388/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-xray-sensor-tray-cdf20eb4","thumbnailUrl":"https://cdn.3dassets.dev/assets/34388/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34388/v1/poster.webp","blurhash":"U7EfTj.800-n~q-;V[WA00RP?H9a00D%D*D*","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":16072,"triangles":336,"vertices":596,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.14000000059604645,0.0000021361413389577033,-0.10000427301709229],"max":[0.14000000059604645,0.053500534461348295,0.10000427301709229]},"sizeMeters":[0.28,0.053,0.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:14.713Z","updatedAt":"2026-09-11T08:19:14.828Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34388/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function XraySensorTrayDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34388/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34388/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34388/v1/model.glb\" alt=\"Xray Sensor Tray (Dental Practice and Surgery)\" 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/34388/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34388/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34390","slug":"dental-practice-and-surgery-autoclave-bench-13c84e68","title":"Autoclave Bench (Dental Practice and Surgery)","summary":"A bench top autoclave on its steel stand: a white cased chamber with a stainless flange, a round hinged door with a lever handle, and a control panel with a lit display beside it.","description":"A bench top autoclave on its steel stand: a white cased chamber with a stainless flange, a round hinged door with a lever handle, and a control panel with a lit display beside it. Overall 0.90 by 1.39 by 0.77 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The chamber is a real recess behind the flange, so the door opening shows a bore rather than a printed circle. The water reservoir, the printer and the drain hose are not modelled. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-autoclave-bench-13c84e68","cdnUrl":"https://cdn.3dassets.dev/assets/34390/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-autoclave-bench-13c84e68","thumbnailUrl":"https://cdn.3dassets.dev/assets/34390/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34390/v1/poster.webp","blurhash":"UIBg9?E100%L~qa|4nt7M_t7Rjf8IUaetRR*","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":49632,"triangles":1764,"vertices":2213,"meshes":11,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.44999998807907104,-7.1525572131747595e-9,-0.3100161665973983],"max":[0.44999998807907104,1.3900063968741265,0.4600000113248825]},"sizeMeters":[0.9,1.39,0.77],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:16.067Z","updatedAt":"2026-09-11T08:19:16.235Z","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/34390/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function AutoclaveBenchDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34390/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34390/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34390/v1/model.glb\" alt=\"Autoclave Bench (Dental Practice and Surgery)\" 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/34390/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34390/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34391","slug":"dental-practice-and-surgery-autoclave-bench-open-9242233f","title":"Autoclave Bench Open (Dental Practice and Surgery)","summary":"The bench top autoclave with its door swung open and two sterile pouches on the chamber shelf, for a sterilising room that should read as a cycle being loaded.","description":"The bench top autoclave with its door swung open and two sterile pouches on the chamber shelf, for a sterilising room that should read as a cycle being loaded. Overall 0.90 by 1.39 by 1.01 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-autoclave-bench-open-9242233f","cdnUrl":"https://cdn.3dassets.dev/assets/34391/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-autoclave-bench-open-9242233f","thumbnailUrl":"https://cdn.3dassets.dev/assets/34391/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34391/v1/poster.webp","blurhash":"ULBN1gRi00xv~qae9Ft7WBjuRjofITWVj[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":49836,"triangles":1788,"vertices":2265,"meshes":12,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-7.1525572131747595e-9,-0.3100161665973983],"max":[0.44999998807907104,1.3900063968741265,0.702047201012705]},"sizeMeters":[0.9,1.39,1.012],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:17.464Z","updatedAt":"2026-09-11T08:19:17.567Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34391/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AutoclaveBenchOpenDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34391/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34391/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34391/v1/model.glb\" alt=\"Autoclave Bench Open (Dental Practice and Surgery)\" 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/34391/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34391/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34392","slug":"dental-practice-and-surgery-instrument-washer-80e1c484","title":"Instrument Washer (Dental Practice and Surgery)","summary":"An under bench instrument washer disinfector: a white carcass on a dark plinth under a grey worktop, with a full width drop down door, a bar handle and a control strip above it.","description":"An under bench instrument washer disinfector: a white carcass on a dark plinth under a grey worktop, with a full width drop down door, a bar handle and a control strip above it. Overall 0.64 by 0.94 by 0.66 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The door falls forward to horizontal like a dishwasher. The wash arms and baskets are inside a closed cabinet and are not modelled: nothing a consumer can see would move. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-instrument-washer-80e1c484","cdnUrl":"https://cdn.3dassets.dev/assets/34392/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-instrument-washer-80e1c484","thumbnailUrl":"https://cdn.3dassets.dev/assets/34392/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34392/v1/poster.webp","blurhash":"UMFiS-9F00xu~qayITWB00%Mt7WBM{M{Rj%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":19496,"triangles":696,"vertices":670,"meshes":8,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3199999928474426,8.940696516468449e-10,-0.2999998546717721],"max":[0.3199999928474426,0.9400005968101192,0.3599885644220953]},"sizeMeters":[0.64,0.94,0.66],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:18.331Z","updatedAt":"2026-09-11T08:19:18.439Z","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/34392/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function InstrumentWasherDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34392/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34392/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34392/v1/model.glb\" alt=\"Instrument Washer (Dental Practice and Surgery)\" 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/34392/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34392/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34393","slug":"dental-practice-and-surgery-ultrasonic-cleaner-bath-1c9409ff","title":"Ultrasonic Cleaner Bath (Dental Practice and Surgery)","summary":"A bench top ultrasonic cleaner: a white cased bath with a recessed stainless tank, a hinged lid with a handle, a timer face and a drain tap on the side.","description":"A bench top ultrasonic cleaner: a white cased bath with a recessed stainless tank, a hinged lid with a handle, a timer face and a drain tap on the side. Overall 0.41 by 0.26 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. No water and no bubbles: a liquid surface is not a rigid node, so the tank ships as a dry stainless recess. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-ultrasonic-cleaner-bath-1c9409ff","cdnUrl":"https://cdn.3dassets.dev/assets/34393/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-ultrasonic-cleaner-bath-1c9409ff","thumbnailUrl":"https://cdn.3dassets.dev/assets/34393/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34393/v1/poster.webp","blurhash":"UAE3PG~q4n%MDit7-;WV009Ft7IU?bRQDis:","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":21352,"triangles":660,"vertices":731,"meshes":8,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.17499999701976776,0.0000018871059610375829,-0.1650064059705107],"max":[0.23999999463558197,0.2619978609476696,0.14001251406160212]},"sizeMeters":[0.415,0.262,0.305],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:17.585Z","updatedAt":"2026-09-11T08:19:17.781Z","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/34393/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function UltrasonicCleanerBathDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34393/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34393/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34393/v1/model.glb\" alt=\"Ultrasonic Cleaner Bath (Dental Practice and Surgery)\" 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/34393/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34393/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34394","slug":"dental-practice-and-surgery-sterile-pouch-rack-6c397dee","title":"Sterile Pouch Rack (Dental Practice and Surgery)","summary":"A sterile pouch rack: a steel frame with four sloping shelves and retaining lips, loaded with mint and blue pouches of wrapped instruments.","description":"A sterile pouch rack: a steel frame with four sloping shelves and retaining lips, loaded with mint and blue pouches of wrapped instruments. Overall 0.59 by 0.97 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The pouches are separate solids lying on the shelves rather than one welded block, so a consumer can thin them out. Nothing here moves. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-sterile-pouch-rack-6c397dee","cdnUrl":"https://cdn.3dassets.dev/assets/34394/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-sterile-pouch-rack-6c397dee","thumbnailUrl":"https://cdn.3dassets.dev/assets/34394/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34394/v1/poster.webp","blurhash":"UA9*DVxb00In.ms:H?Na9tV@-px]XmofnORj","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":26412,"triangles":1056,"vertices":1190,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.29500534876649437,-8.344650304081824e-9,-0.15000153000713773],"max":[0.29500534876649437,0.9699934604510501,0.15000153000713773]},"sizeMeters":[0.59,0.97,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:17.823Z","updatedAt":"2026-09-11T08:19:17.928Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34394/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SterilePouchRackDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34394/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34394/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34394/v1/model.glb\" alt=\"Sterile Pouch Rack (Dental Practice and Surgery)\" 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/34394/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34394/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34395","slug":"dental-practice-and-surgery-sterile-store-cabinet-ac44fdc4","title":"Sterile Store Cabinet (Dental Practice and Surgery)","summary":"A sterile store cabinet: a full height white carcass with four loaded shelves behind a pair of glazed doors, on a dark plinth with a coloured header.","description":"A sterile store cabinet: a full height white carcass with four loaded shelves behind a pair of glazed doors, on a dark plinth with a coloured header. Overall 0.92 by 2.02 by 0.48 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The carcass is open backed behind the doors, so the stock reads the moment a door swings. The stock boxes are separate solids on each shelf. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-sterile-store-cabinet-ac44fdc4","cdnUrl":"https://cdn.3dassets.dev/assets/34395/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-sterile-store-cabinet-ac44fdc4","thumbnailUrl":"https://cdn.3dassets.dev/assets/34395/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34395/v1/poster.webp","blurhash":"UDED0L%M00D%u5t7Z#M{00WB~Vj[k=W;Z$ni","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55356,"triangles":2964,"vertices":2625,"meshes":13,"materials":7,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.46000000834465027,0.0000018294420155301472,-0.21996948548089007],"max":[0.46000000834465027,2.019986276751446,0.25800230790253986]},"sizeMeters":[0.92,2.02,0.478],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:19.346Z","updatedAt":"2026-09-11T08:19:19.451Z","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/34395/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SterileStoreCabinetDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34395/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34395/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34395/v1/model.glb\" alt=\"Sterile Store Cabinet (Dental Practice and Surgery)\" 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/34395/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34395/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34396","slug":"dental-practice-and-surgery-sterile-store-cabinet-open-5d970cb2","title":"Sterile Store Cabinet Open (Dental Practice and Surgery)","summary":"The sterile store cabinet with both doors swung wide, for a shot that needs the stock on the shelves rather than a reflection in the glass.","description":"The sterile store cabinet with both doors swung wide, for a shot that needs the stock on the shelves rather than a reflection in the glass. Overall 1.05 by 2.02 by 0.87 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-sterile-store-cabinet-open-5d970cb2","cdnUrl":"https://cdn.3dassets.dev/assets/34396/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-sterile-store-cabinet-open-5d970cb2","thumbnailUrl":"https://cdn.3dassets.dev/assets/34396/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34396/v1/poster.webp","blurhash":"UBE3VVxu00In%~s:MJNG00oL~WX8tloLROWX","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":57880,"triangles":2964,"vertices":2625,"meshes":13,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.5231768542745187,0.0000018294420155301472,-0.21996948548089007],"max":[0.5231768542745187,2.019986276751446,0.6478167807087866]},"sizeMeters":[1.046,2.02,0.868],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:19.519Z","updatedAt":"2026-09-11T08:19:19.633Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34396/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SterileStoreCabinetOpenDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34396/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34396/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34396/v1/model.glb\" alt=\"Sterile Store Cabinet Open (Dental Practice and Surgery)\" 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/34396/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34396/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34397","slug":"dental-practice-and-surgery-plaster-model-on-stand-d0c45662","title":"Plaster Model On Stand (Dental Practice and Surgery)","summary":"A plaster study model on a display stand: a full lower arch of teeth on a pink gum base and a trimmed plaster plinth, on a weighted dark foot.","description":"A plaster study model on a display stand: a full lower arch of teeth on a pink gum base and a trimmed plaster plinth, on a weighted dark foot. Overall 0.16 by 0.18 by 0.16 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-plaster-model-on-stand-d0c45662","cdnUrl":"https://cdn.3dassets.dev/assets/34397/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-plaster-model-on-stand-d0c45662","thumbnailUrl":"https://cdn.3dassets.dev/assets/34397/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34397/v1/poster.webp","blurhash":"UGDcUMx]00Mx~Vni4.X800Rj-;tR4:S2-ps:","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":24768,"triangles":536,"vertices":1064,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999999821186066,-3.050733292323665e-7,-0.07999999821186066],"max":[0.07999999821186066,0.1780044886817324,0.07999999821186066]},"sizeMeters":[0.16,0.178,0.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:20.673Z","updatedAt":"2026-09-11T08:19:20.795Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34397/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlasterModelOnStandDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34397/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34397/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34397/v1/model.glb\" alt=\"Plaster Model On Stand (Dental Practice and Surgery)\" 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/34397/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34397/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34398","slug":"dental-practice-and-surgery-articulator-with-model-032999fd","title":"Articulator With Model (Dental Practice and Surgery)","summary":"A dental articulator holding a mounted case: a hinged steel frame with an incisal pin, an upper arch on the top member and a lower arch on the base, both on plaster mounts.","description":"A dental articulator holding a mounted case: a hinged steel frame with an incisal pin, an upper arch on the top member and a lower arch on the base, both on plaster mounts. Overall 0.15 by 0.19 by 0.19 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The frame is static. An articulator opens on a condylar hinge whose axis sits behind and above the models, and a single rigid node carrying the top member alone would drag the mounted arch through the lower one. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-articulator-with-model-032999fd","cdnUrl":"https://cdn.3dassets.dev/assets/34398/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-articulator-with-model-032999fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/34398/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34398/v1/poster.webp","blurhash":"UAEo_T.800Di?cRPMxtR0LIU={%M~qWV9at7","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":43732,"triangles":1164,"vertices":2063,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.0750067131308745,-0.00000265703763865921,-0.0949999988079071],"max":[0.0750067131308745,0.18800265082385442,0.0949999988079071]},"sizeMeters":[0.15,0.188,0.19],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:20.048Z","updatedAt":"2026-09-11T08:19:20.159Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34398/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArticulatorWithModelDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34398/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34398/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34398/v1/model.glb\" alt=\"Articulator With Model (Dental Practice and Surgery)\" 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/34398/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34398/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34399","slug":"dental-practice-and-surgery-lab-bench-ce7410b0","title":"Lab Bench (Dental Practice and Surgery)","summary":"A model lab bench: a timber topped bench with an upstand, a cased trimmer motor with a spinning spindle and bur, a gas burner on its plate, a plaster bowl and a spatula.","description":"A model lab bench: a timber topped bench with an upstand, a cased trimmer motor with a spinning spindle and bur, a gas burner on its plate, a plaster bowl and a spatula. Overall 1.40 by 1.40 by 0.71 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The trimmer spindle spins; the burner is modelled unlit, because a flame is not geometry, and the gas hose is static for the same reason the surgery hoses are. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-lab-bench-ce7410b0","cdnUrl":"https://cdn.3dassets.dev/assets/34399/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-lab-bench-ce7410b0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34399/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34399/v1/poster.webp","blurhash":"UKD9-bRP00kC~qoJDiM|4:t7xCRj4oo#%1ni","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":52872,"triangles":1808,"vertices":2075,"meshes":10,"materials":8,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.7020000219345093,-0.0000024282794760521753,-0.35696780707895304],"max":[0.7020000219345093,1.3999679274662633,0.35005340143020897]},"sizeMeters":[1.404,1.4,0.707],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:21.223Z","updatedAt":"2026-09-11T08:19:21.436Z","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/34399/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LabBenchDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34399/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34399/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34399/v1/model.glb\" alt=\"Lab Bench (Dental Practice and Surgery)\" 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/34399/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34399/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34400","slug":"dental-practice-and-surgery-impression-tray-set-4531389a","title":"Impression Tray Set (Dental Practice and Surgery)","summary":"A set of four impression trays on a rack: perforated stainless horseshoes in two sizes with coloured handles, upper and lower, laid out ready to load.","description":"A set of four impression trays on a rack: perforated stainless horseshoes in two sizes with coloured handles, upper and lower, laid out ready to load. Overall 0.36 by 0.03 by 0.26 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-impression-tray-set-4531389a","cdnUrl":"https://cdn.3dassets.dev/assets/34400/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-impression-tray-set-4531389a","thumbnailUrl":"https://cdn.3dassets.dev/assets/34400/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34400/v1/poster.webp","blurhash":"U57eCt#T00O=yExaa0NZ00O??wrXHXI.pbwM","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":31412,"triangles":792,"vertices":1639,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.18000000715255737,0.00000709517189286836,-0.13000519331255295],"max":[0.18000000715255737,0.03399409382223854,0.13000519331255295]},"sizeMeters":[0.36,0.034,0.26],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:21.307Z","updatedAt":"2026-09-11T08:19:21.477Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34400/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ImpressionTraySetDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34400/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34400/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34400/v1/model.glb\" alt=\"Impression Tray Set (Dental Practice and Surgery)\" 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/34400/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34400/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34401","slug":"dental-practice-and-surgery-model-box-stack-6cd7f002","title":"Model Box Stack (Dental Practice and Surgery)","summary":"A stack of four case boxes: cardboard model boxes with coloured job labels and a lid slightly out of line, the way a lab bench really looks.","description":"A stack of four case boxes: cardboard model boxes with coloured job labels and a lid slightly out of line, the way a lab bench really looks. Overall 0.32 by 0.54 by 0.24 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-model-box-stack-6cd7f002","cdnUrl":"https://cdn.3dassets.dev/assets/34401/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-model-box-stack-6cd7f002","thumbnailUrl":"https://cdn.3dassets.dev/assets/34401/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34401/v1/poster.webp","blurhash":"UDFP4@%L00D*?wWUI9oM0KWB%MoyD*oMxZWT","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":27180,"triangles":1216,"vertices":1082,"meshes":9,"materials":9,"textures":0,"animations":[],"boundingBox":{"min":[-0.15500846681282526,1.3411045607369942e-9,-0.11000640935533945],"max":[0.1599999964237213,0.5440000295639038,0.1269956268553193]},"sizeMeters":[0.315,0.544,0.237],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:21.802Z","updatedAt":"2026-09-11T08:19:21.989Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34401/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ModelBoxStackDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34401/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34401/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34401/v1/model.glb\" alt=\"Model Box Stack (Dental Practice and Surgery)\" 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/34401/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34401/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34402","slug":"dental-practice-and-surgery-reception-desk-ad8b99c5","title":"Reception Desk (Dental Practice and Surgery)","summary":"A 2.4 m reception desk: a timber fronted counter with a raised transaction shelf, two staff monitors and a keyboard on the working top, a card terminal and a lit name panel.","description":"A 2.4 m reception desk: a timber fronted counter with a raised transaction shelf, two staff monitors and a keyboard on the working top, a card terminal and a lit name panel. Overall 2.44 by 1.36 by 0.84 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The patient side faces +Z and the staff side -Z. The chair, the drawers and the under counter storage are not modelled: the desk is a shell a developer can back with the cabinet modules in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-reception-desk-ad8b99c5","cdnUrl":"https://cdn.3dassets.dev/assets/34402/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-reception-desk-ad8b99c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/34402/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34402/v1/poster.webp","blurhash":"UDGuwH%09Gxs0L~q-nNG00E2t8t7?EDiXTIo","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":36596,"triangles":1344,"vertices":1380,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-1.2200000286102295,0.00003052187780155924,-0.3800207558798427],"max":[1.2200000286102295,1.3599322545936605,0.46002076899286454]},"sizeMeters":[2.44,1.36,0.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:22.579Z","updatedAt":"2026-09-11T08:19:22.686Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34402/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReceptionDeskDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34402/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34402/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34402/v1/model.glb\" alt=\"Reception Desk (Dental Practice and Surgery)\" 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/34402/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34402/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34403","slug":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","title":"Waiting Chairs Run (Dental Practice and Surgery)","summary":"A run of three linked waiting chairs: upholstered seats and backs on a steel beam with sled feet and outer arms, the bench a waiting room is furnished in threes with.","description":"A run of three linked waiting chairs: upholstered seats and backs on a steel beam with sled feet and outer arms, the bench a waiting room is furnished in threes with. Overall 1.76 by 0.95 by 0.52 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Faces +Z. Two runs back to back or facing across a table is how a real waiting area is set out. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-waiting-chairs-run-23b191c8","cdnUrl":"https://cdn.3dassets.dev/assets/34403/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-waiting-chairs-run-23b191c8","thumbnailUrl":"https://cdn.3dassets.dev/assets/34403/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34403/v1/poster.webp","blurhash":"UKAeT,RPMJoe?^tlIAR5Q8o~NuMxMJr?OENa","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":34016,"triangles":1416,"vertices":1366,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.878000020980835,-0.00003704552638883474,-0.26004028289115877],"max":[0.878000020980835,0.9500251596706388,0.25995209323158236]},"sizeMeters":[1.756,0.95,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:24.078Z","updatedAt":"2026-09-11T08:19:24.180Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34403/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingChairsRunDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34403/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34403/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34403/v1/model.glb\" alt=\"Waiting Chairs Run (Dental Practice and Surgery)\" 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/34403/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34403/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34404","slug":"dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","title":"Waiting Chairs Run Coral (Dental Practice and Surgery)","summary":"The waiting chair run in coral, for the second row facing the first: two colours is what stops a white waiting room reading as an empty corridor.","description":"The waiting chair run in coral, for the second row facing the first: two colours is what stops a white waiting room reading as an empty corridor. Overall 1.76 by 0.95 by 0.52 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","cdnUrl":"https://cdn.3dassets.dev/assets/34404/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","thumbnailUrl":"https://cdn.3dassets.dev/assets/34404/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34404/v1/poster.webp","blurhash":"UPGa,.NG57kC~W%2E1Io0e%1r=Io57SOs9i_","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":34076,"triangles":1416,"vertices":1366,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.878000020980835,-0.00003704552638883474,-0.26004028289115877],"max":[0.878000020980835,0.9500251596706388,0.25995209323158236]},"sizeMeters":[1.756,0.95,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:24.109Z","updatedAt":"2026-09-11T08:19:24.219Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34404/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingChairsRunCoralDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34404/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34404/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34404/v1/model.glb\" alt=\"Waiting Chairs Run Coral (Dental Practice and Surgery)\" 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/34404/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34404/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34405","slug":"dental-practice-and-surgery-low-table-with-magazines-12960d5e","title":"Low Table With Magazines (Dental Practice and Surgery)","summary":"A low waiting room table: a timber top on dark square legs with an under shelf, four magazines fanned across it and a small stack below.","description":"A low waiting room table: a timber top on dark square legs with an under shelf, four magazines fanned across it and a small stack below. Overall 0.90 by 0.46 by 0.50 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-low-table-with-magazines-12960d5e","cdnUrl":"https://cdn.3dassets.dev/assets/34405/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-low-table-with-magazines-12960d5e","thumbnailUrl":"https://cdn.3dassets.dev/assets/34405/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34405/v1/poster.webp","blurhash":"ULE.wvxv0Lob~WxuM{Rj01t6-oNH9Gf%bcRl","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":21104,"triangles":720,"vertices":729,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,-0.0000160263376571268,-0.25002898596049583],"max":[0.44999998807907104,0.46199578479504017,0.25002898596049583]},"sizeMeters":[0.9,0.462,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:23.586Z","updatedAt":"2026-09-11T08:19:23.690Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34405/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LowTableWithMagazinesDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34405/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34405/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34405/v1/model.glb\" alt=\"Low Table With Magazines (Dental Practice and Surgery)\" 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/34405/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34405/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34406","slug":"dental-practice-and-surgery-water-cooler-ddcca514","title":"Water Cooler (Dental Practice and Surgery)","summary":"A bottled water cooler: a white cased unit on a dark plinth with a clear bottle and blue cap, cold and ambient taps, a drip tray and a cup tube on the side.","description":"A bottled water cooler: a white cased unit on a dark plinth with a clear bottle and blue cap, cold and ambient taps, a drip tray and a cup tube on the side. Overall 0.41 by 1.35 by 0.42 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-water-cooler-ddcca514","cdnUrl":"https://cdn.3dassets.dev/assets/34406/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-water-cooler-ddcca514","thumbnailUrl":"https://cdn.3dassets.dev/assets/34406/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34406/v1/poster.webp","blurhash":"UBCGc8xu00D%NIf8n#Wn00WC~pkAs=WVobs:","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":30996,"triangles":856,"vertices":1282,"meshes":8,"materials":8,"textures":0,"animations":[],"boundingBox":{"min":[-0.1700021430509413,6.705522803684971e-10,-0.18000000715255737],"max":[0.23500625290428856,1.350000023841858,0.2377786684000147]},"sizeMeters":[0.405,1.35,0.418],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:24.275Z","updatedAt":"2026-09-11T08:19:24.377Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34406/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterCoolerDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34406/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34406/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34406/v1/model.glb\" alt=\"Water Cooler (Dental Practice and Surgery)\" 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/34406/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34406/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34407","slug":"dental-practice-and-surgery-childrens-play-corner-f7dbaecc","title":"Childrens Play Corner (Dental Practice and Surgery)","summary":"A childrens play corner: a coral toy box with a hinged yellow lid, a bead maze panel on wires behind it and a low seat beside it, the one piece of a dental practice that is allowed to be loud.","description":"A childrens play corner: a coral toy box with a hinged yellow lid, a bead maze panel on wires behind it and a low seat beside it, the one piece of a dental practice that is allowed to be loud. Overall 1.03 by 1.24 by 0.56 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. The bead wires are straight steel rods with beads threaded on them, and neither moves: a bead sliding along a wire is a second node per bead for no gain. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-childrens-play-corner-f7dbaecc","cdnUrl":"https://cdn.3dassets.dev/assets/34407/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-childrens-play-corner-f7dbaecc","thumbnailUrl":"https://cdn.3dassets.dev/assets/34407/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34407/v1/poster.webp","blurhash":"UBD+@_}=005s0gJ8=w#R019ct9-h}5=|F$9t","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":45992,"triangles":1580,"vertices":1953,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.36000001430511475,-0.0000018167942030800077,-0.3250254597106197],"max":[0.6700000166893005,1.24399995803833,0.23000443377021168]},"sizeMeters":[1.03,1.244,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:25.291Z","updatedAt":"2026-09-11T08:19:25.406Z","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/34407/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ChildrensPlayCornerDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34407/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34407/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34407/v1/model.glb\" alt=\"Childrens Play Corner (Dental Practice and Surgery)\" 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/34407/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34407/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34408","slug":"dental-practice-and-surgery-coat-stand-53da7706","title":"Coat Stand (Dental Practice and Surgery)","summary":"A coat stand: a weighted three foot base and steel post with four coloured hook tips at the top and an umbrella ring at the bottom.","description":"A coat stand: a weighted three foot base and steel post with four coloured hook tips at the top and an umbrella ring at the bottom. Overall 0.40 by 1.74 by 0.37 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-coat-stand-53da7706","cdnUrl":"https://cdn.3dassets.dev/assets/34408/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-coat-stand-53da7706","thumbnailUrl":"https://cdn.3dassets.dev/assets/34408/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34408/v1/poster.webp","blurhash":"U35r3:oJ00WF%yWBDjog_Nod8_NI_Moe8_NI","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":30732,"triangles":848,"vertices":1523,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.20052558183670044,-0.000003340751195089753,-0.14800000190734863],"max":[0.20052558183670044,1.7360005082414371,0.2209065944019132]},"sizeMeters":[0.401,1.736,0.369],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:25.725Z","updatedAt":"2026-09-11T08:19:25.848Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34408/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoatStandDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34408/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34408/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34408/v1/model.glb\" alt=\"Coat Stand (Dental Practice and Surgery)\" 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/34408/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34408/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34409","slug":"dental-practice-and-surgery-appointment-screen-13007900","title":"Appointment Screen (Dental Practice and Surgery)","summary":"A wall mounted appointment screen: a dark cased panel with a lit display listing surgeries and times in coloured rows, on a flush wall bracket.","description":"A wall mounted appointment screen: a dark cased panel with a lit display listing surgeries and times in coloured rows, on a flush wall bracket. Overall 0.94 by 0.58 by 0.12 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rests on y=0 and is meant to be placed at head height on a wall. The display is an emissive panel with coloured rows, not readable text: no brand or patient name appears anywhere. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-appointment-screen-13007900","cdnUrl":"https://cdn.3dassets.dev/assets/34409/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-appointment-screen-13007900","thumbnailUrl":"https://cdn.3dassets.dev/assets/34409/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34409/v1/poster.webp","blurhash":"UGEfj4-;00o2xa?btRD$00M{_Nf+R*IUV?x]","category":{"slug":"icons","title":"3D Icons & UI"},"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":11660,"triangles":288,"vertices":354,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-0.4699999988079071,-9.189920603946966e-7,-0.06999450730501006],"max":[0.4699999988079071,0.5800009106474102,0.045989378942398115]},"sizeMeters":[0.94,0.58,0.116],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:25.806Z","updatedAt":"2026-09-11T08:19:25.902Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34409/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AppointmentScreenDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34409/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34409/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34409/v1/model.glb\" alt=\"Appointment Screen (Dental Practice and Surgery)\" 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/34409/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34409/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34410","slug":"dental-practice-and-surgery-notice-board-2e73a2e3","title":"Notice Board (Dental Practice and Surgery)","summary":"A framed notice board: a cork panel in a timber frame with five pinned notices at slight angles, the practice information wall every waiting room has.","description":"A framed notice board: a cork panel in a timber frame with five pinned notices at slight angles, the practice information wall every waiting room has. Overall 1.00 by 0.72 by 0.04 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-notice-board-2e73a2e3","cdnUrl":"https://cdn.3dassets.dev/assets/34410/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-notice-board-2e73a2e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34410/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34410/v1/poster.webp","blurhash":"UBGlFr%g00%0-;~pof4o00s+~oIpRjkER*Vr","category":{"slug":"icons","title":"3D Icons & UI"},"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":17912,"triangles":540,"vertices":600,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5,-0.000026849135781326083,-0.015015106662190619],"max":[0.5,0.7200268634408964,0.02201232948157804]},"sizeMeters":[1,0.72,0.037],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:26.033Z","updatedAt":"2026-09-11T08:19:26.192Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34410/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NoticeBoardDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34410/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34410/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34410/v1/model.glb\" alt=\"Notice Board (Dental Practice and Surgery)\" 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/34410/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34410/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34411","slug":"dental-practice-and-surgery-corridor-wall-module-6478e914","title":"Corridor Wall Module (Dental Practice and Surgery)","summary":"A 2 m by 2.7 m internal wall bay: a plain plastered wall with a coved clinical skirting and a coloured dado rail, the piece a practice plan is drawn with.","description":"A 2 m by 2.7 m internal wall bay: a plain plastered wall with a coved clinical skirting and a coloured dado rail, the piece a practice plan is drawn with. Overall 2.00 by 2.70 by 0.15 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Tiles on the 2 m wall grid through wall-left and wall-right, and it shares those ports with the door bay and the glazed partition, so a run mixes all three. Two bays meet face to face at their own ends rather than overlapping. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-corridor-wall-module-6478e914","cdnUrl":"https://cdn.3dassets.dev/assets/34411/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-corridor-wall-module-6478e914","thumbnailUrl":"https://cdn.3dassets.dev/assets/34411/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34411/v1/poster.webp","blurhash":"U9H2i.?b00D%^,_3IU4U00V@~qkDtRxuaKD%","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":7664,"triangles":324,"vertices":278,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.07297610588992276],"max":[0.9999237302152423,2.700000047683716,0.07297610588992276]},"sizeMeters":[2,2.7,0.146],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:27.208Z","updatedAt":"2026-09-11T08:19:27.322Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34411/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CorridorWallModuleDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34411/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34411/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34411/v1/model.glb\" alt=\"Corridor Wall Module (Dental Practice and Surgery)\" 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/34411/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34411/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34413","slug":"dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","title":"Corridor Wall Module Blue (Dental Practice and Surgery)","summary":"The wall bay with a blue dado rail, for the corridor or the waiting side of a practice that uses a second house colour.","description":"The wall bay with a blue dado rail, for the corridor or the waiting side of a practice that uses a second house colour. Overall 2.00 by 2.70 by 0.15 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","cdnUrl":"https://cdn.3dassets.dev/assets/34413/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","thumbnailUrl":"https://cdn.3dassets.dev/assets/34413/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34413/v1/poster.webp","blurhash":"U9HC4a?b00D%^+_3IU4U00Rj~qogtRxuWAD%","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":7708,"triangles":324,"vertices":278,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.07297610588992276],"max":[0.9999237302152423,2.700000047683716,0.07297610588992276]},"sizeMeters":[2,2.7,0.146],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:27.461Z","updatedAt":"2026-09-11T08:19:27.589Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34413/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CorridorWallModuleBlueDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34413/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34413/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34413/v1/model.glb\" alt=\"Corridor Wall Module Blue (Dental Practice and Surgery)\" 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/34413/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34413/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34412","slug":"dental-practice-and-surgery-surgery-door-module-bfb9e1fc","title":"Surgery Door Module (Dental Practice and Surgery)","summary":"A 2 m wall bay with a surgery door: piers and a head over a lined opening, a hinged leaf with a vision panel, a lever handle both sides, a kick plate and a room number plate on the pier.","description":"A 2 m wall bay with a surgery door: piers and a head over a lined opening, a hinged leaf with a vision panel, a lever handle both sides, a kick plate and a room number plate on the pier. Overall 2.00 by 2.70 by 0.16 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Same wall ports as the plain bay, so a door drops into any position in a run. The leaf sits inside the opening and clears the lining on both faces, so nothing shares a plane with the wall. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-surgery-door-module-bfb9e1fc","cdnUrl":"https://cdn.3dassets.dev/assets/34412/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-surgery-door-module-bfb9e1fc","thumbnailUrl":"https://cdn.3dassets.dev/assets/34412/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34412/v1/poster.webp","blurhash":"U6FFv$4n00_3~q.84n0000t7~qRkkC%MV@9F","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":32940,"triangles":1272,"vertices":1213,"meshes":7,"materials":6,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.07893505483312437],"max":[0.9999237302152423,2.700000047683716,0.07893505483312437]},"sizeMeters":[2,2.7,0.158],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:27.444Z","updatedAt":"2026-09-11T08:19:27.573Z","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/34412/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SurgeryDoorModuleDentalPracticeAndSurgery(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34412/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34412/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34412/v1/model.glb\" alt=\"Surgery Door Module (Dental Practice and Surgery)\" 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/34412/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34412/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"34414","slug":"dental-practice-and-surgery-surgery-door-module-open-e59a6ba3","title":"Surgery Door Module Open (Dental Practice and Surgery)","summary":"The surgery door bay with the leaf standing open, for a plan that needs to see into a room from the corridor without animating anything.","description":"The surgery door bay with the leaf standing open, for a plan that needs to see into a room from the corridor without animating anything. Overall 2.00 by 2.70 by 0.97 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-surgery-door-module-open-e59a6ba3","cdnUrl":"https://cdn.3dassets.dev/assets/34414/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-surgery-door-module-open-e59a6ba3","thumbnailUrl":"https://cdn.3dassets.dev/assets/34414/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34414/v1/poster.webp","blurhash":"UBEfWqIU00%M~qt74nM{8_t7xvRjtRt7M{RP","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":32408,"triangles":1272,"vertices":1211,"meshes":7,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.07893505483312437],"max":[0.9999237302152423,2.700000047683716,0.8878865667272186]},"sizeMeters":[2,2.7,0.967],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:28.808Z","updatedAt":"2026-09-11T08:19:28.936Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34414/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SurgeryDoorModuleOpenDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34414/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34414/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34414/v1/model.glb\" alt=\"Surgery Door Module Open (Dental Practice and Surgery)\" 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/34414/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34414/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34415","slug":"dental-practice-and-surgery-glazed-partition-module-404bca72","title":"Glazed Partition Module (Dental Practice and Surgery)","summary":"A 2 m glazed partition bay: a solid dado wall under a two panel glazed screen in a grey frame, with a manifestation strip across both panes at eye height.","description":"A 2 m glazed partition bay: a solid dado wall under a two panel glazed screen in a grey frame, with a manifestation strip across both panes at eye height. Overall 2.00 by 2.70 by 0.15 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Shares the wall ports, so a glazed bay drops into a wall run. It is what lets a surgery stay enclosed and still read from a camera in front of the building. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-glazed-partition-module-404bca72","cdnUrl":"https://cdn.3dassets.dev/assets/34415/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-glazed-partition-module-404bca72","thumbnailUrl":"https://cdn.3dassets.dev/assets/34415/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34415/v1/poster.webp","blurhash":"U7EMON~q0000_3-;IB4n00M{_NtQMy%Mx]D$","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":17040,"triangles":696,"vertices":672,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.9999237302152423,-2.3841858265427618e-8,-0.07300638030248906],"max":[0.9999237302152423,2.700000047683716,0.07300638030248906]},"sizeMeters":[2,2.7,0.146],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:28.920Z","updatedAt":"2026-09-11T08:19:29.047Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34415/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GlazedPartitionModuleDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34415/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34415/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34415/v1/model.glb\" alt=\"Glazed Partition Module (Dental Practice and Surgery)\" 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/34415/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34415/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34417","slug":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","title":"Clinical Floor Tile (Dental Practice and Surgery)","summary":"A 2 m square of welded clinical vinyl: a grey field with the welded seam grid and a coloured route inlay along one edge, the tile every room in this pack stands on.","description":"A 2 m square of welded clinical vinyl: a grey field with the welded seam grid and a coloured route inlay along one edge, the tile every room in this pack stands on. Overall 2.00 by 0.07 by 2.00 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Tiles on the 2 m floor grid through floor-north, floor-south, floor-east and floor-west, so a practice floor of any shape is this one tile repeated. The route inlay runs along Z, so a turn is a tile rotated 90 degrees. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-clinical-floor-tile-e09b593c","cdnUrl":"https://cdn.3dassets.dev/assets/34417/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-clinical-floor-tile-e09b593c","thumbnailUrl":"https://cdn.3dassets.dev/assets/34417/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34417/v1/poster.webp","blurhash":"U7CZnlx^00nO%gW;aKs:00R5~qR+8_sUS#I:","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"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":6176,"triangles":84,"vertices":196,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.0011999607086182,-0.000030213994933490917,-1.0011999607086182],"max":[1.0011999607086182,0.06604014699371107,1.0011999607086182]},"sizeMeters":[2.002,0.066,2.002],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:30.385Z","updatedAt":"2026-09-11T08:19:30.493Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34417/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClinicalFloorTileDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34417/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34417/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34417/v1/model.glb\" alt=\"Clinical Floor Tile (Dental Practice and Surgery)\" 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/34417/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34417/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34416","slug":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","title":"Clinical Floor Tile Blue (Dental Practice and Surgery)","summary":"The clinical floor tile in blue with a white inlay, for the waiting and reception half of a practice where the clinical grey would read as a corridor.","description":"The clinical floor tile in blue with a white inlay, for the waiting and reception half of a practice where the clinical grey would read as a corridor. Overall 2.00 by 0.07 by 2.00 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","cdnUrl":"https://cdn.3dassets.dev/assets/34416/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/34416/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34416/v1/poster.webp","blurhash":"U89t[q%g00Rj-;jZM|kC00IU.Ts,4nX8%1nh","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"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":6408,"triangles":84,"vertices":196,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.0011999607086182,-0.000030213994933490917,-1.0011999607086182],"max":[1.0011999607086182,0.0660284421174957,1.0011999607086182]},"sizeMeters":[2.002,0.066,2.002],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:29.309Z","updatedAt":"2026-09-11T08:19:29.441Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34416/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClinicalFloorTileBlueDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34416/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34416/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34416/v1/model.glb\" alt=\"Clinical Floor Tile Blue (Dental Practice and Surgery)\" 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/34416/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34416/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34418","slug":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","title":"Ceiling Light Panel (Dental Practice and Surgery)","summary":"A 1.2 m by 0.6 m surface mounted ceiling light: an open bottomed white tray in a steel surround with a lit diffuser inside it.","description":"A 1.2 m by 0.6 m surface mounted ceiling light: an open bottomed white tray in a steel surround with a lit diffuser inside it. Overall 1.24 by 0.10 by 0.64 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rests on y=0, so place it at the ceiling height the room needs. The emissive diffuser is geometry, not a light source: a consumer still lights the room. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-ceiling-light-panel-5fd450a0","cdnUrl":"https://cdn.3dassets.dev/assets/34418/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-ceiling-light-panel-5fd450a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34418/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34418/v1/poster.webp","blurhash":"UCECwe%M00WC?b-;RjIU00jZ~qM{0000t6-;","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":14608,"triangles":564,"vertices":523,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6200000047683716,0.00000946054934239035,-0.3200378454131363],"max":[0.6200000047683716,0.09999145785932759,0.3200378454131363]},"sizeMeters":[1.24,0.1,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:32.015Z","updatedAt":"2026-09-11T08:19:32.121Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34418/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CeilingLightPanelDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34418/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34418/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34418/v1/model.glb\" alt=\"Ceiling Light Panel (Dental Practice and Surgery)\" 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/34418/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34418/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34419","slug":"dental-practice-and-surgery-wall-hand-gel-2fc70334","title":"Wall Hand Gel (Dental Practice and Surgery)","summary":"A wall mounted hand gel dispenser: a stainless backplate holding a white bottle with a coloured label, an elbow lever above it and a nozzle under it.","description":"A wall mounted hand gel dispenser: a stainless backplate holding a white bottle with a coloured label, an elbow lever above it and a nozzle under it. Overall 0.14 by 0.36 by 0.17 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Rests on y=0 and mounts at about 1.25 m. The lever is static: an elbow lever and a pump are one linkage inside the bottle. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-wall-hand-gel-2fc70334","cdnUrl":"https://cdn.3dassets.dev/assets/34419/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-wall-hand-gel-2fc70334","thumbnailUrl":"https://cdn.3dassets.dev/assets/34419/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34419/v1/poster.webp","blurhash":"UB9%|?IV00-;%MfRIUoe00t7_NM{IpWBxat6","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":15168,"triangles":444,"vertices":532,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.06998962787848484,-5.9604645663569045e-9,-0.06499786400223258],"max":[0.06998962787848484,0.36000001430511475,0.11000459636995301]},"sizeMeters":[0.14,0.36,0.175],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:31.060Z","updatedAt":"2026-09-11T08:19:31.158Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34419/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallHandGelDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34419/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34419/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34419/v1/model.glb\" alt=\"Wall Hand Gel (Dental Practice and Surgery)\" 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/34419/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34419/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34420","slug":"dental-practice-and-surgery-radiator-019b3a52","title":"Radiator (Dental Practice and Surgery)","summary":"A low surface temperature radiator: a white cased panel with a slotted front and top grille, a blue thermostatic valve head and wall brackets, the clinical version of a panel radiator.","description":"A low surface temperature radiator: a white cased panel with a slotted front and top grille, a blue thermostatic valve head and wall brackets, the clinical version of a panel radiator. Overall 1.02 by 0.68 by 0.15 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-radiator-019b3a52","cdnUrl":"https://cdn.3dassets.dev/assets/34420/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-radiator-019b3a52","thumbnailUrl":"https://cdn.3dassets.dev/assets/34420/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34420/v1/poster.webp","blurhash":"UEFr|x%M4nxu%h~qxuIU00tR?baeni9GNGxu","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":24692,"triangles":692,"vertices":964,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.5099999904632568,-0.000016395462476281875,-0.07502059859104887],"max":[0.5099999904632568,0.6750164082774748,0.0779977138548572]},"sizeMeters":[1.02,0.675,0.153],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:31.091Z","updatedAt":"2026-09-11T08:19:31.195Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34420/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RadiatorDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34420/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34420/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34420/v1/model.glb\" alt=\"Radiator (Dental Practice and Surgery)\" 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/34420/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34420/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34421","slug":"dental-practice-and-surgery-skirting-run-c4cda0f5","title":"Skirting Run (Dental Practice and Surgery)","summary":"A 2 m run of coved clinical skirting: an upstand with a welded cove at the floor and a coloured capping strip, the detail that makes a vinyl floor washable.","description":"A 2 m run of coved clinical skirting: an upstand with a welded cove at the floor and a coloured capping strip, the detail that makes a vinyl floor washable. Overall 2.00 by 0.11 by 0.04 m (X by Y by Z). Metre units, +Y up, the side a patient or a nurse approaches from toward +Z, resting on y=0. Tiles on the 2 m grid through skirt-left and skirt-right. It runs against the face of a wall bay rather than being part of it, so a room laid from floor tiles can be skirted after the walls are placed. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-skirting-run-c4cda0f5","cdnUrl":"https://cdn.3dassets.dev/assets/34421/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-skirting-run-c4cda0f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/34421/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34421/v1/poster.webp","blurhash":"U78;#;WYIUogXS_Na~Rj00bv?vWUrq00X6%g","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":7700,"triangles":256,"vertices":268,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1,-0.00005035516810637103,-0.01098666341135899],"max":[1,0.1119816303308882,0.03399673525336826]},"sizeMeters":[2,0.112,0.045],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:32.138Z","updatedAt":"2026-09-11T08:19:32.236Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34421/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SkirtingRunDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34421/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34421/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34421/v1/model.glb\" alt=\"Skirting Run (Dental Practice and Surgery)\" 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/34421/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34421/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34423","slug":"dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","title":"Dental practice floor (Dental Practice and Surgery)","summary":"A whole dental practice laid from 2 m clinical floor tiles and 2 m wall bays: two surgeries side by side behind a glazed partition wall, each with its chair, operating light, delivery unit, operator and nurse stools, spittoon, monitor and wall x ray arm, and a five module...","description":"A whole dental practice laid from 2 m clinical floor tiles and 2 m wall bays: two surgeries side by side behind a glazed partition wall, each with its chair, operating light, delivery unit, operator and nurse stools, spittoon, monitor and wall x ray arm, and a five module cabinet run with a sink set out with trays, a scaler, a curing light, a sharps bin and glove and mask dispensers, a sterilising room behind them running autoclaves, an instrument washer, an ultrasonic bath, a pouch rack and sterile stores, a model lab corner with the bench, articulator and plaster models, and a staff room behind the reception wall, and a reception desk, waiting rows, tables, water cooler, play corner and appointment screen at the front.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/34423/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-dental-pract-43c189a0-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/34423/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34423/v1/poster.webp","blurhash":"U6DvyT9w00w]^%n$E2Io00-m~qR-0MXU-o%L","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":1177948,"triangles":46988,"vertices":57601,"meshes":354,"materials":12,"textures":0,"animations":[],"boundingBox":{"min":[-10.001199960708618,-0.06003021399493349,-8.072976105889923],"max":[6.001199960708618,2.701200008392334,6.001199960708618]},"sizeMeters":[16.002,2.761,14.074],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:34.063Z","updatedAt":"2026-09-11T08:19:34.193Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34423/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DentalPracticeFloorDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34423/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34423/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34423/v1/model.glb\" alt=\"Dental practice floor (Dental Practice and Surgery)\" 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/34423/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34423/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"34422","slug":"dental-practice-and-surgery-surgery-mid-appointment-4aec5851","title":"Surgery, mid appointment (Dental Practice and Surgery)","summary":"One surgery at room scale with the chair reclined into the treatment position: the operating light over it, the delivery unit swung in, both stools drawn up, the spittoon at the patient's shoulder, the monitor and the wall x ray arm, and the full cabinet run behind with a...","description":"One surgery at room scale with the chair reclined into the treatment position: the operating light over it, the delivery unit swung in, both stools drawn up, the spittoon at the patient's shoulder, the monitor and the wall x ray arm, and the full cabinet run behind with a sink module, an instrument tray, an ultrasonic scaler, a curing light, the sharps bin, the dispensers and the pedal bin, in a room of floor tiles closed by a wall bay and a glazed partition.","status":"published","url":"https://3dassets.dev/assets/dental-practice-and-surgery-surgery-mid-appointment-4aec5851","cdnUrl":"https://cdn.3dassets.dev/assets/34422/v1/model.glb","downloadUrl":"https://3dassets.dev/download/dental-practice-and-surgery-surgery-mid-appointment-4aec5851","thumbnailUrl":"https://cdn.3dassets.dev/assets/34422/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34422/v1/poster.webp","blurhash":"U4F$hW4n00~q^+kVIUWB00-pyDE14:xaWAIU","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":526852,"triangles":19492,"vertices":26128,"meshes":163,"materials":11,"textures":0,"animations":[],"boundingBox":{"min":[-4.001199960708618,-0.06003021399493349,-4.078935054833124],"max":[4.001199960708618,2.700000047683716,2.103996735253368]},"sizeMeters":[8.002,2.76,6.183],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T08:19:34.046Z","updatedAt":"2026-09-11T08:19:34.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/34422/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SurgeryMidAppointmentDentalPracticeAndSurgery(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/34422/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/34422/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34422/v1/model.glb\" alt=\"Surgery, mid appointment (Dental Practice and Surgery)\" 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/34422/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/34422/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"dental-practice-and-surgery","title":"Dental Practice and Surgery","url":"https://3dassets.dev/demos/dental-practice-and-surgery"}}}