{"data":{"id":"91","slug":"dental-practice-and-surgery","title":"Dental Practice and Surgery","summary":"Walk a dental practice: reception and waiting at the front, two surgeries with chairs that recline, a sterilising room behind and a small lab corner.","url":"https://3dassets.dev/demos/dental-practice-and-surgery","coverUrl":"https://cdn.3dassets.dev/media/dental-practice-and-surgery-demo.png","featured":true,"pack":{"slug":"dental-practice-and-surgery","title":"Dental Practice and Surgery","url":"https://3dassets.dev/packs/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.","assetCount":54,"totalBytes":3193436,"starterScene":{"slug":"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","fileSize":1177948}},"placementCount":197,"assetCount":51,"spawn":{"position":[4.6,0.03,5.4],"yaw":-163.3},"publishedAt":"2026-09-11T08:20:46.622Z","updatedAt":"2026-09-11T08:20:46.623Z","description":"A working dental practice built from the pack's ported floor, wall, glazed and door modules.\n\n**What is placed.** Reception at the front with its desk and screens, waiting chair runs, a low table, the water cooler, the coat stand, the appointment screen and a children's play corner. Two surgeries behind it, each with the chair, the delivery unit, the operating light, the dentist's and nurse's stools, the spittoon, the suction unit, the wall mounted x ray arm, the monitor and a ported cabinet run with a sink module, dressed with instrument trays, the ultrasonic scaler, the curing light, glove and mask dispensers, a sharps bin and a pedal bin. Behind them the sterilising room holds the autoclave, the instrument washer, the ultrasonic bath, the pouch rack and the sterile store, and a lab corner carries the articulator, plaster arches, impression trays and the lab bench.\n\n**What moves.** The chair back reclines with its headrest parented to it, the operating light arm and head tilt, the delivery unit, monitor and x ray arms tilt, the autoclave, washer, cabinet and store doors open and close, the drawers pull out, the bin pedal lids lift and the stool seats spin.\n\n**What does not move, and why.** Tubing, cables, water and the suction hoses are static geometry: none is reachable with the rigid node transforms this library uses. There are no dentists, nurses or patients, because nothing here is skinned, and no real dental brand appears anywhere in the pack.","scene":{"version":1,"spawn":{"position":[4.6,0.03,5.4],"yaw":-163.3},"ground":{"style":"none"},"environment":{"preset":"room","wallHeight":3.6,"lampHeight":3.2,"shadows":true},"placements":[{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-9,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-9,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-9,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-9,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-9,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-7,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-7,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-7,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-7,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-7,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-5,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-5,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-5,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-5,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-5,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-3,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-3,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-3,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-3,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-3,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-1,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-1,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-1,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-1,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[-1,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[1,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[1,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[1,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[1,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[1,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[3,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[3,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[3,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[3,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[3,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[5,-0.06,-7],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[5,-0.06,-5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[5,-0.06,-3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[5,-0.06,-1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-e09b593c","position":[5,-0.06,1],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-9,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-9,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-7,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-7,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-5,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-5,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-3,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-3,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-1,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[-1,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[1,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[1,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[3,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[3,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[5,-0.06,3],"rotation":0},{"asset":"dental-practice-and-surgery-clinical-floor-tile-blue-e90177d9","position":[5,-0.06,5],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[-9,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-surgery-door-module-bfb9e1fc","position":[-7,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[-5,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[-3,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-surgery-door-module-bfb9e1fc","position":[-1,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[1,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[3,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","position":[5,0,2],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-9,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-surgery-door-module-open-e59a6ba3","position":[-7,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[-5,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-glazed-partition-module-404bca72","position":[-3,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","position":[-1,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[1,0,-4],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-9,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-7,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-5,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-3,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-1,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[1,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[3,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[5,0,-8],"rotation":0},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[2,0,-7],"rotation":90},{"asset":"dental-practice-and-surgery-surgery-door-module-bfb9e1fc","position":[2,0,-5],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[2,0,-3],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-blue-b56ea55b","position":[2,0,-1],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[2,0,1],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-4,0,-3],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-4,0,-1],"rotation":90},{"asset":"dental-practice-and-surgery-corridor-wall-module-6478e914","position":[-4,0,1],"rotation":90},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-9.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-8.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-sink-module-42493004","position":[-7.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-6.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-5.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-dental-chair-da5c65c7","position":[-7.5,0,-0.8],"rotation":0},{"asset":"dental-practice-and-surgery-operating-light-e636b996","position":[-8.6,0,-1.4],"rotation":90},{"asset":"dental-practice-and-surgery-delivery-unit-5e9334f5","position":[-6.4,0,-1.2],"rotation":-90},{"asset":"dental-practice-and-surgery-dentists-stool-c6053f0f","position":[-8.7,0,-0.4],"rotation":0},{"asset":"dental-practice-and-surgery-nurses-stool-963c4692","position":[-6.4,0,-0.1],"rotation":0},{"asset":"dental-practice-and-surgery-spittoon-unit-5db2c52f","position":[-6.5,0,0.35],"rotation":0},{"asset":"dental-practice-and-surgery-surgery-monitor-arm-0b68e534","position":[-9.3,0,-2.4],"rotation":0},{"asset":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","position":[-5.6,0,-3],"rotation":0},{"asset":"dental-practice-and-surgery-intraoral-xray-arm-7ea56888","position":[-4.12,1.2,-1],"rotation":-90},{"asset":"dental-practice-and-surgery-instrument-tray-33b4d81c","position":[-8.5,0.9,-3.45],"rotation":0},{"asset":"dental-practice-and-surgery-ultrasonic-scaler-11a53ef2","position":[-6.6,0.9,-3.5],"rotation":0},{"asset":"dental-practice-and-surgery-curing-light-3b7ed27a","position":[-9.3,0.9,-3.45],"rotation":0},{"asset":"dental-practice-and-surgery-sharps-bin-fe796f33","position":[-5.75,0.9,-3.45],"rotation":0},{"asset":"dental-practice-and-surgery-xray-sensor-tray-cdf20eb4","position":[-5.95,0.9,-3.72],"rotation":0},{"asset":"dental-practice-and-surgery-glove-and-mask-dispenser-64ec22b4","position":[-9,1.35,-3.86],"rotation":0},{"asset":"dental-practice-and-surgery-wall-hand-gel-2fc70334","position":[-8.2,1.25,-3.85],"rotation":0},{"asset":"dental-practice-and-surgery-suction-unit-a2a55578","position":[-9.6,0,-2.6],"rotation":0},{"asset":"dental-practice-and-surgery-radiator-019b3a52","position":[-8.5,0,1.85],"rotation":180},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-3.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-2.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-sink-module-42493004","position":[-1.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-0.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[0.5,0,-3.6],"rotation":0},{"asset":"dental-practice-and-surgery-dental-chair-blue-4fd61edf","position":[-1.5,0,-0.8],"rotation":0},{"asset":"dental-practice-and-surgery-operating-light-e636b996","position":[-2.6,0,-1.4],"rotation":90},{"asset":"dental-practice-and-surgery-delivery-unit-5e9334f5","position":[-0.3999999999999999,0,-1.2],"rotation":-90},{"asset":"dental-practice-and-surgery-dentists-stool-c6053f0f","position":[-2.7,0,-0.4],"rotation":0},{"asset":"dental-practice-and-surgery-nurses-stool-963c4692","position":[-0.3999999999999999,0,-0.1],"rotation":0},{"asset":"dental-practice-and-surgery-spittoon-unit-5db2c52f","position":[-0.5,0,0.35],"rotation":0},{"asset":"dental-practice-and-surgery-surgery-monitor-arm-0b68e534","position":[-3.3,0,-2.4],"rotation":0},{"asset":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","position":[0.3999999999999999,0,-3],"rotation":0},{"asset":"dental-practice-and-surgery-intraoral-xray-arm-7ea56888","position":[-0.4,1.2,-3.885],"rotation":0},{"asset":"dental-practice-and-surgery-instrument-tray-33b4d81c","position":[-2.5,0.9,-3.45],"rotation":0},{"asset":"dental-practice-and-surgery-ultrasonic-scaler-11a53ef2","position":[-0.6,0.9,-3.5],"rotation":0},{"asset":"dental-practice-and-surgery-sharps-bin-fe796f33","position":[0.65,0.9,-3.45],"rotation":0},{"asset":"dental-practice-and-surgery-xray-sensor-tray-cdf20eb4","position":[0.25,0.9,-3.72],"rotation":0},{"asset":"dental-practice-and-surgery-glove-and-mask-dispenser-64ec22b4","position":[-3,1.35,-3.86],"rotation":0},{"asset":"dental-practice-and-surgery-wall-hand-gel-2fc70334","position":[-2.2,1.25,-3.85],"rotation":0},{"asset":"dental-practice-and-surgery-autoclave-bench-13c84e68","position":[-9,0,-7.4],"rotation":0},{"asset":"dental-practice-and-surgery-autoclave-bench-open-9242233f","position":[-7.9,0,-7.4],"rotation":0},{"asset":"dental-practice-and-surgery-instrument-washer-80e1c484","position":[-6.6,0,-7.5],"rotation":0},{"asset":"dental-practice-and-surgery-ultrasonic-cleaner-bath-1c9409ff","position":[-6.6,0.9,-7.4],"rotation":0},{"asset":"dental-practice-and-surgery-sterile-pouch-rack-6c397dee","position":[-5.2,0,-7.6],"rotation":0},{"asset":"dental-practice-and-surgery-sterile-store-cabinet-ac44fdc4","position":[-3.9,0,-7.65],"rotation":0},{"asset":"dental-practice-and-surgery-sterile-store-cabinet-open-5d970cb2","position":[-2.9,0,-7.65],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[-8.5,0,-5.4],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-sink-module-42493004","position":[-7.5,0,-5.4],"rotation":0},{"asset":"dental-practice-and-surgery-instrument-tray-33b4d81c","position":[-8.5,0.9,-5.3],"rotation":0},{"asset":"dental-practice-and-surgery-sharps-bin-fe796f33","position":[-5.2,0,-6.4],"rotation":0},{"asset":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","position":[-4.6,0,-6.5],"rotation":0},{"asset":"dental-practice-and-surgery-suction-unit-a2a55578","position":[0.9,0,-6.5],"rotation":0},{"asset":"dental-practice-and-surgery-lab-bench-ce7410b0","position":[-1.2,0,-7.5],"rotation":0},{"asset":"dental-practice-and-surgery-articulator-with-model-032999fd","position":[-1.65,0.9,-7.45],"rotation":0},{"asset":"dental-practice-and-surgery-plaster-model-on-stand-d0c45662","position":[-1.2,0.9,-7.45],"rotation":0},{"asset":"dental-practice-and-surgery-plaster-model-on-stand-d0c45662","position":[-0.9,0.9,-7.65],"rotation":0},{"asset":"dental-practice-and-surgery-impression-tray-set-4531389a","position":[-0.7,0.9,-7.35],"rotation":0},{"asset":"dental-practice-and-surgery-model-box-stack-6cd7f002","position":[0.6,0,-7.6],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[3.5,0,-7.5],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-sink-module-42493004","position":[4.5,0,-7.5],"rotation":0},{"asset":"dental-practice-and-surgery-cabinet-run-module-2856164b","position":[5.5,0,-7.5],"rotation":0},{"asset":"dental-practice-and-surgery-low-table-with-magazines-12960d5e","position":[4.4,0,-4.8],"rotation":0},{"asset":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","position":[4.4,0,-5.9],"rotation":0},{"asset":"dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","position":[4.4,0,-3.7],"rotation":180},{"asset":"dental-practice-and-surgery-coat-stand-53da7706","position":[2.7,0,-6.6],"rotation":0},{"asset":"dental-practice-and-surgery-water-cooler-ddcca514","position":[5.7,0,-6.4],"rotation":0},{"asset":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","position":[3,0,-7.3],"rotation":0},{"asset":"dental-practice-and-surgery-notice-board-2e73a2e3","position":[3.6,1.25,-7.87],"rotation":0},{"asset":"dental-practice-and-surgery-radiator-019b3a52","position":[5.2,0,-7.85],"rotation":0},{"asset":"dental-practice-and-surgery-model-box-stack-6cd7f002","position":[5.7,0.9,-7.45],"rotation":0},{"asset":"dental-practice-and-surgery-reception-desk-ad8b99c5","position":[4,0,3.4],"rotation":0},{"asset":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","position":[-7.5,0,3.2],"rotation":0},{"asset":"dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","position":[-7.5,0,5.4],"rotation":180},{"asset":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","position":[-3.5,0,3.2],"rotation":0},{"asset":"dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","position":[-3.5,0,5.4],"rotation":180},{"asset":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","position":[0.2,0,3.1],"rotation":0},{"asset":"dental-practice-and-surgery-low-table-with-magazines-12960d5e","position":[-7.5,0,4.3],"rotation":0},{"asset":"dental-practice-and-surgery-low-table-with-magazines-12960d5e","position":[-3.5,0,4.3],"rotation":0},{"asset":"dental-practice-and-surgery-water-cooler-ddcca514","position":[1.6,0,5.6],"rotation":0},{"asset":"dental-practice-and-surgery-childrens-play-corner-f7dbaecc","position":[-9.4,0,4.6],"rotation":90},{"asset":"dental-practice-and-surgery-coat-stand-53da7706","position":[-9.5,0,2.7],"rotation":0},{"asset":"dental-practice-and-surgery-appointment-screen-13007900","position":[4.6,1.5,2.1],"rotation":0},{"asset":"dental-practice-and-surgery-notice-board-2e73a2e3","position":[2.4,1.25,2.1],"rotation":0},{"asset":"dental-practice-and-surgery-wall-hand-gel-2fc70334","position":[1.4,1.25,2.12],"rotation":0},{"asset":"dental-practice-and-surgery-wall-hand-gel-2fc70334","position":[5.8,1.25,2.12],"rotation":0},{"asset":"dental-practice-and-surgery-radiator-019b3a52","position":[-5.5,0,1.85],"rotation":180},{"asset":"dental-practice-and-surgery-radiator-019b3a52","position":[3.2,0,1.85],"rotation":180},{"asset":"dental-practice-and-surgery-waiting-chairs-run-coral-2fdfcbd5","position":[3.2,0,5.3],"rotation":180},{"asset":"dental-practice-and-surgery-waiting-chairs-run-23b191c8","position":[3.2,0,4.4],"rotation":0},{"asset":"dental-practice-and-surgery-low-table-with-magazines-12960d5e","position":[5.4,0,4.8],"rotation":0},{"asset":"dental-practice-and-surgery-coat-stand-53da7706","position":[5.8,0,3],"rotation":0},{"asset":"dental-practice-and-surgery-pedal-waste-bin-5ba4c7fc","position":[2.4,0,5.4],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[1,0,2.07],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[3,0,2.07],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[5,0,2.07],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[-9,0,-7.93],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[-7,0,-7.93],"rotation":0},{"asset":"dental-practice-and-surgery-skirting-run-c4cda0f5","position":[-5,0,-7.93],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-7.5,2.6,-1],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-1.5,2.6,-1],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-7.5,2.6,-6],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-3,2.6,-6],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-7.5,2.6,4],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[-3.5,2.6,4],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[0.5,2.6,4],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[4,2.6,4],"rotation":0},{"asset":"dental-practice-and-surgery-ceiling-light-panel-5fd450a0","position":[4.2,2.6,-5.5],"rotation":0}],"points":[{"position":[5.4,0.03,5.2],"title":"Reception","text":"The desk with its screens, the waiting chair runs, the low table, the water cooler, the play corner and the appointment screen at the front of the practice.","asset":"dental-practice-and-surgery-reception-desk-ad8b99c5"},{"position":[-6.1,0.03,1],"title":"The surgery","text":"The chair reclines and its headrest tilts with it, with the delivery unit arms, the operating light on its arm, the stools and the spittoon around it.","asset":"dental-practice-and-surgery-dental-chair-da5c65c7"},{"position":[-7.2,0.03,0.4],"title":"Light and monitor","text":"The operating light arm and head both tilt, and so do the monitor arm and the wall mounted x ray arm. Tubing and cables are static geometry.","asset":"dental-practice-and-surgery-operating-light-e636b996"},{"position":[-8.1,0.03,-1.8],"title":"Cabinet run","text":"Ported cabinet modules repeat along the wall with a sink module among them, the worktop dressed with trays, the scaler, the curing light and the dispensers.","asset":"dental-practice-and-surgery-cabinet-run-module-2856164b"},{"position":[-7.6,0.03,-5.6],"title":"Sterilising","text":"The autoclave with a real chamber recess and a door that opens, the instrument washer, the ultrasonic bath, the pouch rack and the sterile store.","asset":"dental-practice-and-surgery-autoclave-bench-13c84e68"},{"position":[-0.25,0.03,-5.65],"title":"The lab","text":"The articulator with its plaster model, the arches, the impression trays and the lab bench, which is the part of a practice patients never see.","asset":"dental-practice-and-surgery-articulator-with-model-032999fd"}],"poster":{"position":[-4.6,2.4,0.5],"lookAt":[-8.2,1,-1.4]}},"bounds":{"min":[-12.001199960708618,-0.06003021399493349,-10.072976105889923],"max":[8.001199960708618,4.700000047683716,8.001199960708618]},"assets":[{"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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);"}}]}}