{"data":{"id":"21","slug":"clinic-and-veterinary-practice","title":"Veterinary clinic","summary":"Walk a 30 by 20 metre practice built from the Clinic and Veterinary Practice pack: reception and a full waiting room, two consulting bays, a treatment room, a stocked dispensary, a veterinary prep room and a kennel ward with walk-in runs.","url":"https://3dassets.dev/demos/clinic-and-veterinary-practice","coverUrl":"https://cdn.3dassets.dev/media/clinic-and-veterinary-practice-demo-4.png","featured":false,"pack":{"slug":"clinic-and-veterinary-practice","title":"Clinic and Veterinary Practice","url":"https://3dassets.dev/packs/clinic-and-veterinary-practice","summary":"A realistic primary care clinic and small animal veterinary practice: reception, consulting, treatment, minor procedures, dispensing, veterinary prep, kennels and runs.","assetCount":121,"totalBytes":20044812,"starterScene":{"slug":"clinic-and-veterinary-practice-consultin-4b5ee682-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/16833/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-consultin-4b5ee682-starter-scene","fileSize":1370632}},"placementCount":191,"assetCount":48,"spawn":{"position":[0,0,3.2],"yaw":180},"publishedAt":"2026-09-07T21:05:02.079Z","updatedAt":"2026-09-07T21:05:02.080Z","description":"One practice floor from 48 of the pack's 121 models, in the room preset with cool light and lamps under a 3.4 m ceiling.\n\nYou start in the central aisle of the waiting room facing reception: five desk modules with corner returns, wayfinding totems and leaflet racks either side, and the patient records units behind. Around you are two rows of benches, armchairs along the walls, planters, water dispensers, notice boards, a children's play corner and a pet weighing platform with carriers on the floor of the animal side.\n\nBehind reception, from west to east: two consulting bays closed off by folding screens and a curtain track, each with an examination couch with steps, a clinician desk, a stool, a patient chair, a wall diagnostic set and a hand wash basin; the treatment room with the minor procedures couch, a mobile procedure light, treatment trolleys, instrument cabinets and a double scrub sink; the dispensary with eight bays of stocked shelving, stock bays down both sides, a counter island of 600 and four drawer modules, two vaccine fridges and the controlled drug cabinet; the veterinary prep room with the raised examination table, the prep and induction bench, a lab bench with a microscope, the centrifuge and analyser bench and the grooming bath; and the kennel ward, fenced with dog run panels, with four kennel banks, cat condos, the isolation kennel, feed bins and two walk-in runs.\n\nThis pack ships animation clips: the couches, the desks, the treatment trolleys, the instrument cabinets, the counter drawers, the fridges, the drug cabinet, the prep bench, the analyser bench, the grooming bath ramp, the kennel and condo doors, the isolation kennel, the feed bins, the pedal bins and the run gates play as you come within three metres and rewind when you leave. The curtain drape, the folding screens, the run panels, the shelving and the seating are static: they have no moving part.","scene":{"version":1,"spawn":{"position":[0,0,3.2],"yaw":180},"bounds":{"min":[-15,0,-10],"max":[15,3.4,10]},"ground":{"style":"plain"},"environment":{"preset":"room","wallHeight":3.4,"wall":"#eef1f2","floor":"#d9dedc","light":"cool","lampHeight":3,"shadows":true},"placements":[{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[-2.4,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[-1.2,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[0,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[1.2,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[2.4,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-corner-c7d220f9","position":[-3.4,0,0.6],"rotation":270},{"asset":"clinic-and-veterinary-practice-reception-desk-corner-c7d220f9","position":[3.4,0,0.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[-3.4,0,-0.35],"rotation":270},{"asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498","position":[3.4,0,-0.35],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[-1.2,0,-0.4],"rotation":180},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[1.2,0,-0.4],"rotation":180},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[2.7,0,-1.3],"rotation":0},{"asset":"clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","position":[-2.6,0,-2.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","position":[-1.6,0,-2.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","position":[1.6,0,-2.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","position":[2.6,0,-2.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-2.55,0,-2.55],"rotation":180},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-1.65,0,-2.55],"rotation":180},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[1.65,0,-2.55],"rotation":180},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[2.55,0,-2.55],"rotation":180},{"asset":"clinic-and-veterinary-practice-wayfinding-sign-1875de24","position":[-4.4,0,1.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-wayfinding-sign-1875de24","position":[4.4,0,1.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","position":[-5.2,0,0.4],"rotation":90},{"asset":"clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","position":[5.2,0,0.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[-7.7,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[-4.6,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[4.6,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[7.7,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[-2,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[2,0,4.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[-9.9,0,4.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[9.9,0,4.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[-7.7,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[-4.6,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[4.6,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","position":[7.7,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[-2,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[2,0,6.8],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[-9.9,0,6.8],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[9.9,0,6.8],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-14.1,0,3.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-14.1,0,4.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-14.1,0,5.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-14.1,0,6.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-14.1,0,7.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[14.1,0,3.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[14.1,0,5.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","position":[14.1,0,7.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-child-play-table-bdb3e5a9","position":[-12.3,0,8.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-13.5,0,9.3],"rotation":45},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-10.7,0,9.2],"rotation":315},{"asset":"clinic-and-veterinary-practice-notice-board-a60357a3","position":[-14.3,0,8.4],"rotation":90},{"asset":"clinic-and-veterinary-practice-notice-board-a60357a3","position":[-2.6,0,9.7],"rotation":180},{"asset":"clinic-and-veterinary-practice-notice-board-a60357a3","position":[2.6,0,9.7],"rotation":180},{"asset":"clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","position":[-4.2,0,9.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-water-dispenser-988c79ce","position":[-7.4,0,9.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-water-dispenser-988c79ce","position":[7.4,0,9.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[-1.1,0,9.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","position":[1.1,0,9.6],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[5.2,0,9.3],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[6.1,0,9.3],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[-9,0,9.3],"rotation":180},{"asset":"clinic-and-veterinary-practice-pet-weighing-platform-b728f15e","position":[11.6,0,2.3],"rotation":180},{"asset":"clinic-and-veterinary-practice-notice-board-a60357a3","position":[14.3,0,1.6],"rotation":270},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[13,0,4.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[12.4,0,8.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[12.6,0,9.4],"rotation":180},{"asset":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","position":[13.9,0,9.4],"rotation":180},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-9,0,-9.1],"rotation":90},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-9,0,-7.5],"rotation":90},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-9,0,-5.9],"rotation":90},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-9,0,-4.3],"rotation":90},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-9,0,-2.7],"rotation":90},{"asset":"clinic-and-veterinary-practice-cubicle-curtain-track-a05a94a2","position":[-13.4,0,-5.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-cubicle-curtain-track-a05a94a2","position":[-11.4,0,-5.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-examination-couch-with--20a73e55","position":[-12.2,0,-9.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-diagnostic-wall-set-f0d41486","position":[-13.9,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinician-desk-eca22374","position":[-9.9,0,-7.6],"rotation":270},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[-10.9,0,-7.9],"rotation":90},{"asset":"clinic-and-veterinary-practice-patient-chair-e364bf45","position":[-10.9,0,-6.8],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","position":[-14.15,0,-8.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[-13.9,0,-7],"rotation":90},{"asset":"clinic-and-veterinary-practice-examination-couch-with--20a73e55","position":[-12.2,0,-4.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-diagnostic-wall-set-f0d41486","position":[-14.3,0,-2.4],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinician-desk-eca22374","position":[-9.9,0,-3],"rotation":270},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[-10.9,0,-3.3],"rotation":90},{"asset":"clinic-and-veterinary-practice-patient-chair-e364bf45","position":[-10.9,0,-2.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","position":[-14.15,0,-3.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[-13.9,0,-4.9],"rotation":90},{"asset":"clinic-and-veterinary-practice-scrub-sink-double-3b00208f","position":[-6.6,0,-9.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-instrument-cabinet-98ec2833","position":[-5,0,-9.5],"rotation":0},{"asset":"clinic-and-veterinary-practice-instrument-cabinet-98ec2833","position":[-8.2,0,-9.5],"rotation":0},{"asset":"clinic-and-veterinary-practice-minor-procedures-couch-5927ed1f","position":[-6.4,0,-6.4],"rotation":90},{"asset":"clinic-and-veterinary-practice-procedure-light-7472fb04","position":[-8.1,0,-7.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","position":[-4.6,0,-6.9],"rotation":270},{"asset":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","position":[-4.6,0,-5.4],"rotation":270},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[-7.7,0,-4.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[-8.3,0,-5.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-patient-chair-e364bf45","position":[-5,0,-4.3],"rotation":180},{"asset":"clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","position":[-4.3,0,-8.5],"rotation":270},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-6.2,0,-2.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-7.9,0,-2.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-3.2,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-2.3,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-1.4,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[-0.5,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[0.4,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[1.3,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[2.2,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","position":[3.1,0,-9.7],"rotation":0},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[-3.7,0,-8.5],"rotation":90},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[-3.7,0,-7.5],"rotation":90},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[-3.7,0,-6.5],"rotation":90},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[-3.7,0,-5.5],"rotation":90},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[3.7,0,-5.5],"rotation":270},{"asset":"clinic-and-veterinary-practice-stock-shelving-c5a90861","position":[3.7,0,-4.5],"rotation":270},{"asset":"clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee","position":[3.6,0,-8.6],"rotation":270},{"asset":"clinic-and-veterinary-practice-controlled-drug-cabinet-638b7c11","position":[3.75,0,-7.6],"rotation":270},{"asset":"clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee","position":[3.6,0,-6.7],"rotation":270},{"asset":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","position":[-1.8,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","position":[-1.2000000000000002,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","position":[-0.6000000000000001,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","position":[-2.220446049250313e-16,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","position":[0.5999999999999999,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","position":[1.2,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","position":[1.7999999999999996,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-corn-c357a025","position":[-2.45,0,-6],"rotation":270},{"asset":"clinic-and-veterinary-practice-dispensing-counter-corn-c357a025","position":[2.45,0,-6],"rotation":0},{"asset":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","position":[-2.45,0,-6.7],"rotation":270},{"asset":"clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","position":[2.45,0,-6.7],"rotation":90},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[-0.6,0,-5.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[1.4,0,-5.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[-3,0,-4.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[-3.7,0,-3.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-prep-induction-bench-c1c53861","position":[6,0,-9.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-lab-bench-microscope-a94b071e","position":[7.95,0,-9.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-centrifuge-analyser-ben-23a84b65","position":[9.4,0,-9.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-instrument-cabinet-98ec2833","position":[4.9,0,-8],"rotation":90},{"asset":"clinic-and-veterinary-practice-scrub-sink-double-3b00208f","position":[4.9,0,-5.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-vet-examination-table-0e78660b","position":[6.8,0,-4.5],"rotation":0},{"asset":"clinic-and-veterinary-practice-procedure-light-7472fb04","position":[8.4,0,-6],"rotation":180},{"asset":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","position":[5.7,0,-6.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","position":[8,0,-4.5],"rotation":270},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[6,0,-3.6],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[4.8,0,-3.6],"rotation":90},{"asset":"clinic-and-veterinary-practice-grooming-bath-114d778e","position":[5.6,0,-2.3],"rotation":0},{"asset":"clinic-and-veterinary-practice-folding-screen-divider-94424271","position":[8.2,0,-2.2],"rotation":0},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[7.6,0,-3.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.2,0,-9.28],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.2,0,-8.24],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.2,0,-7.2],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.2,0,-6.16],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.2,0,-5.12],"rotation":90},{"asset":"clinic-and-veterinary-practice-run-gate-332ffd57","position":[10.2,0,-4.08],"rotation":90},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[10.2,0,-9.8],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[10.2,0,-3.56],"rotation":0},{"asset":"clinic-and-veterinary-practice-kennel-bank-small-a20c2524","position":[14.5,0,-9.025],"rotation":270},{"asset":"clinic-and-veterinary-practice-kennel-bank-medium-21ab23fa","position":[14.5,0,-7.675],"rotation":270},{"asset":"clinic-and-veterinary-practice-kennel-bank-small-a20c2524","position":[14.5,0,-6.325],"rotation":270},{"asset":"clinic-and-veterinary-practice-kennel-bank-medium-21ab23fa","position":[14.5,0,-4.975],"rotation":270},{"asset":"clinic-and-veterinary-practice-cat-condo-unit-bab6d02f","position":[10.9,0,-9.5],"rotation":0},{"asset":"clinic-and-veterinary-practice-cat-condo-unit-bab6d02f","position":[11.8,0,-9.5],"rotation":0},{"asset":"clinic-and-veterinary-practice-isolation-kennel-8354d192","position":[13,0,-9.3],"rotation":0},{"asset":"clinic-and-veterinary-practice-feed-bin-set-2ea14aa0","position":[11.4,0,-7.8],"rotation":90},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[12.6,0,-6.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[13.3,0,-6.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","position":[10.7,0,-8.9],"rotation":90},{"asset":"clinic-and-veterinary-practice-feed-bin-set-2ea14aa0","position":[11.4,0,-6.3],"rotation":90},{"asset":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","position":[12.6,0.55,-6.4],"rotation":0},{"asset":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","position":[13.3,0,-5.2],"rotation":270},{"asset":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","position":[12.3,0,-8.4],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[11.12,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[12.16,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-gate-332ffd57","position":[11.12,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[12.16,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.6,0,-3.38],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[10.6,0,-2.34],"rotation":90},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[10.6,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[10.6,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[13.2,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[14.24,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-gate-332ffd57","position":[13.2,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[14.24,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[12.68,0,-3.38],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[12.68,0,-2.34],"rotation":90},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[12.68,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[12.68,0,-1.82],"rotation":0},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[14.76,0,-3.38],"rotation":90},{"asset":"clinic-and-veterinary-practice-dog-run-panel-455b5921","position":[14.76,0,-2.34],"rotation":90},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[14.76,0,-3.9],"rotation":0},{"asset":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","position":[14.76,0,-1.82],"rotation":0}],"points":[{"position":[0,0,1.9],"title":"Reception","text":"Five 1200 desk modules with corner returns, stools behind and the patient records units backing the dispensary. Wayfinding totems and leaflet racks flank it.","asset":"clinic-and-veterinary-practice-reception-desk-module-d612d498"},{"position":[-6,0,5.7],"title":"Waiting room","text":"Two rows of five and three seat benches facing reception, armchairs along the walls, planters, water dispensers and notice boards, with a play table in the children's corner and a pet weighing platform on the animal side.","asset":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546"},{"position":[-11.5,0,-6.6],"title":"Consulting bays","text":"Two bays behind folding screens, split by a curtain track: each has an examination couch with steps, a clinician desk and stool, a patient chair, a wall diagnostic set and a basin. The couch and the desk open as you come close.","asset":"clinic-and-veterinary-practice-examination-couch-with--20a73e55"},{"position":[-6.5,0,-4.4],"title":"Treatment room","text":"The minor procedures couch with stirrups under a mobile procedure light, two treatment trolleys, instrument cabinets and a double scrub sink on the back wall. The trolleys and the cabinets have clips.","asset":"clinic-and-veterinary-practice-minor-procedures-couch-5927ed1f"},{"position":[0,0,-4.4],"title":"Dispensary","text":"Stocked shelving on the back wall, stock bays down both sides, a counter island of 600 and four drawer modules, two vaccine fridges and the controlled drug cabinet. Drawers and doors open as you approach.","asset":"clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee"},{"position":[7,0,-6.5],"title":"Veterinary prep","text":"The raised examination table in the middle, with the prep and induction bench, a lab bench with a microscope and the analyser bench along the back wall, a scrub sink, an instrument cabinet and the grooming bath by the door.","asset":"clinic-and-veterinary-practice-vet-examination-table-0e78660b"},{"position":[12.2,0,-5.4],"title":"Kennel ward","text":"Four kennel banks along the east wall, cat condos and the isolation kennel at the back, feed bins and carriers, and two walk-in runs fenced with panels. The kennel doors and the run gates open when you come close.","asset":"clinic-and-veterinary-practice-kennel-bank-small-a20c2524"}],"poster":{"position":[-10.7,2.2,-0.8],"lookAt":[-12.2,0.4,-4.5]}},"bounds":{"min":[-15,0,-10],"max":[15,3.4,10]},"assets":[{"id":"16718","slug":"clinic-and-veterinary-practice-reception-desk-module-d612d498","title":"Reception desk module 1200 (Clinic and Veterinary Practice)","summary":"A 1.2 m reception counter module on the 600 mm counter-run grid: panelled carcass with a recessed plinth, postformed staff worktop, raised customer ledge on brackets and a framed glazed screen guard with a perforated speech grille.","description":"A 1.2 m reception counter module on the 600 mm counter-run grid: panelled carcass with a recessed plinth, postformed staff worktop, raised customer ledge on brackets and a framed glazed screen guard with a perforated speech grille. Overall 1.20 by 1.61 by 0.78 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Tiles along X on the 600 mm counter-run grid through counter-left and counter-right ports at mid-height. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-reception-desk-module-d612d498","cdnUrl":"https://cdn.3dassets.dev/assets/16718/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-reception-desk-module-d612d498","thumbnailUrl":"https://cdn.3dassets.dev/assets/16718/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16718/v1/poster.webp","blurhash":"UBEVyn?H009G9Z%M%1D$00NH~Wt5^*MxM}tS","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":114220,"triangles":2296,"vertices":6888,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,0,-0.3499899378321694],"max":[0.6000000238418579,1.6100303817902057,0.42998995094519127]},"sizeMeters":[1.2,1.61,0.78],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:21:58.775Z","updatedAt":"2026-10-10T04:03:18.376Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16718/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReceptionDeskModule1200ClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16718/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16718/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16718/v1/model.glb\" alt=\"Reception desk module 1200 (Clinic and Veterinary Practice)\" 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/16718/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/16718/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16722","slug":"clinic-and-veterinary-practice-reception-desk-corner-c7d220f9","title":"Reception desk corner (Clinic and Veterinary Practice)","summary":"A 700 mm square reception counter corner that turns a run through 90 degrees: mitred postformed top, panelled front skin and a screen guard on posts.","description":"A 700 mm square reception counter corner that turns a run through 90 degrees: mitred postformed top, panelled front skin and a screen guard on posts. Overall 0.76 by 1.43 by 0.76 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Carries counter-left on the -X face and counter-back on the -Z face so a run can turn a corner. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-reception-desk-corner-c7d220f9","cdnUrl":"https://cdn.3dassets.dev/assets/16722/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-reception-desk-corner-c7d220f9","thumbnailUrl":"https://cdn.3dassets.dev/assets/16722/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16722/v1/poster.webp","blurhash":"UBD+}D^+009G9FS5%LVs00Io~pjX?HxZRkS%","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":66200,"triangles":1296,"vertices":3888,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.37997984575169597,0.000010683074687684035,-0.37997984575169597],"max":[0.37997984575169597,1.429998277411832,0.37997984575169597]},"sizeMeters":[0.76,1.43,0.76],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:21:58.857Z","updatedAt":"2026-10-05T19:21:24.772Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16722/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReceptionDeskCornerClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16722/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16722/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16722/v1/model.glb\" alt=\"Reception desk corner (Clinic and Veterinary Practice)\" 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/16722/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/16722/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16738","slug":"clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","title":"Clinician stool (Clinic and Veterinary Practice)","summary":"A gas-lift clinician stool: five-star castor base, shrouded column with a height lever, a piped round seat pad and a small lumbar pad on a bent stem.","description":"A gas-lift clinician stool: five-star castor base, shrouded column with a height lever, a piped round seat pad and a small lumbar pad on a bent stem. Overall 0.51 by 0.89 by 0.56 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","cdnUrl":"https://cdn.3dassets.dev/assets/16738/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-clinician-stool-ad7b8e5a","thumbnailUrl":"https://cdn.3dassets.dev/assets/16738/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16738/v1/poster.webp","blurhash":"U48Ee:x]00IUysRPHryD00M{?v%gDNoeyEWC","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":105776,"triangles":2136,"vertices":6408,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2304250106368277,-0.000004342258946105071,-0.27988526225090027],"max":[0.2819904342446539,0.8921962380409241,0.27988526225090027]},"sizeMeters":[0.512,0.892,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T16:22:03.195Z","updatedAt":"2026-10-25T17:35:50.433Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16738/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClinicianStoolClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16738/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16738/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16738/v1/model.glb\" alt=\"Clinician stool (Clinic and Veterinary Practice)\" 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/16738/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/16738/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16746","slug":"clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","title":"Clinical waste pedal bin (Clinic and Veterinary Practice)","summary":"A 60 litre clinical waste pedal bin: a chamfered body on a base ring, a foot pedal linkage and a hinged lid on a named pivot.","description":"A 60 litre clinical waste pedal bin: a chamfered body on a base ring, a foot pedal linkage and a hinged lid on a named pivot. Overall 0.44 by 0.68 by 0.41 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The lid is a named node pivoted on its hinge at the rear rim. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","cdnUrl":"https://cdn.3dassets.dev/assets/16746/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-clinical-waste-bin-b690e83d","thumbnailUrl":"https://cdn.3dassets.dev/assets/16746/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16746/v1/poster.webp","blurhash":"UAGSAS~q008_I7ofx_M{00IU_4kDIuoI%0o#","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":30764,"triangles":556,"vertices":1668,"meshes":4,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.21899999678134918,0,-0.20474031583103644],"max":[0.21899999678134918,0.6780066106014496,0.20500545219215857]},"sizeMeters":[0.438,0.678,0.41],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:22:04.956Z","updatedAt":"2026-10-25T14:44:35.494Z","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/16746/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 ClinicalWastePedalBinClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16746/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/16746/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16746/v1/model.glb\" alt=\"Clinical waste pedal bin (Clinic and Veterinary Practice)\" 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/16746/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/16746/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16725","slug":"clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","title":"Patient records wall unit (Clinic and Veterinary Practice)","summary":"A 1 m open patient records wall unit: six decks with angled card dividers, a coloured label rail on every shelf edge, a solid back and a recessed kick plinth.","description":"A 1 m open patient records wall unit: six decks with angled card dividers, a coloured label rail on every shelf edge, a solid back and a recessed kick plinth. Overall 1.00 by 1.95 by 0.34 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","cdnUrl":"https://cdn.3dassets.dev/assets/16725/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-records-wall-unit-4e7bd8a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/16725/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16725/v1/poster.webp","blurhash":"U9EfNM%L00Is~q%M9FD%02a$?FV??bt7D%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":147676,"triangles":3008,"vertices":9024,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5000717307256161,0,-0.1699636871298774],"max":[0.5012000203132629,1.9500000476837158,0.17117315076209022]},"sizeMeters":[1.001,1.95,0.341],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T16:22:00.133Z","updatedAt":"2026-10-25T08:26:08.246Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16725/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatientRecordsWallUnitClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16725/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16725/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16725/v1/model.glb\" alt=\"Patient records wall unit (Clinic and Veterinary Practice)\" 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/16725/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/16725/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16778","slug":"clinic-and-veterinary-practice-dispensing-shelving-f439340f","title":"Dispensing shelving (Clinic and Veterinary Practice)","summary":"A 900 mm dispensing shelving unit: five raked tilt shelves with front retaining lips and vertical dividers, carrying blank cartons, on a panelled back.","description":"A 900 mm dispensing shelving unit: five raked tilt shelves with front retaining lips and vertical dividers, carrying blank cartons, on a panelled back. Overall 0.90 by 1.50 by 0.32 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-dispensing-shelving-f439340f","cdnUrl":"https://cdn.3dassets.dev/assets/16778/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-dispensing-shelving-f439340f","thumbnailUrl":"https://cdn.3dassets.dev/assets/16778/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16778/v1/poster.webp","blurhash":"U9FPEH%M00M}~q-;9F4n4oj]-oRj?b%MIU9F","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":122720,"triangles":3136,"vertices":9408,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.45004119998779263,0,-0.1599475081637013],"max":[0.45004119998779263,1.5,0.1599475081637013]},"sizeMeters":[0.9,1.5,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:13.731Z","updatedAt":"2026-10-05T23:11:51.289Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16778/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DispensingShelvingClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16778/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16778/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16778/v1/model.glb\" alt=\"Dispensing shelving (Clinic and Veterinary Practice)\" 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/16778/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/16778/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16828","slug":"clinic-and-veterinary-practice-wayfinding-sign-1875de24","title":"Wayfinding sign totem (Clinic and Veterinary Practice)","summary":"A floor-standing wayfinding totem: a weighted chamfered base, an aluminium panel with edge posts, five blank direction strips with arrow tabs and a coloured header band.","description":"A floor-standing wayfinding totem: a weighted chamfered base, an aluminium panel with edge posts, five blank direction strips with arrow tabs and a coloured header band. Overall 0.44 by 1.70 by 0.30 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-wayfinding-sign-1875de24","cdnUrl":"https://cdn.3dassets.dev/assets/16828/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-wayfinding-sign-1875de24","thumbnailUrl":"https://cdn.3dassets.dev/assets/16828/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16828/v1/poster.webp","blurhash":"U3AAaY_M0000~Us,4pIq4mRi?v%N^+t79FIV","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":69256,"triangles":1376,"vertices":4128,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.21997744916221512,0,-0.15002142558998777],"max":[0.21997744916221512,1.7000000476837158,0.15002142558998777]},"sizeMeters":[0.44,1.7,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:25.298Z","updatedAt":"2026-10-08T09:55:55.888Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16828/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WayfindingSignTotemClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16828/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16828/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16828/v1/model.glb\" alt=\"Wayfinding sign totem (Clinic and Veterinary Practice)\" 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/16828/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/16828/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16726","slug":"clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","title":"Information and leaflet rack (Clinic and Veterinary Practice)","summary":"A floor-standing leaflet rack on a weighted disc base: five angled shelves with clear retaining lips, blank leaflet cards and a header panel.","description":"A floor-standing leaflet rack on a weighted disc base: five angled shelves with clear retaining lips, blank leaflet cards and a header panel. Overall 0.44 by 1.50 by 0.38 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","cdnUrl":"https://cdn.3dassets.dev/assets/16726/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-leaflet-rack-a9dcc12a","thumbnailUrl":"https://cdn.3dassets.dev/assets/16726/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16726/v1/poster.webp","blurhash":"U4ATl=_30000~Uxt4qD*Dgoc%iRo4TRj_4xv","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":60796,"triangles":1200,"vertices":3600,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2200190754766543,0,-0.19000717306586754],"max":[0.2200190754766543,1.5000036595118154,0.19000717306586754]},"sizeMeters":[0.44,1.5,0.38],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:00.479Z","updatedAt":"2026-10-06T11:41:18.605Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16726/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InformationAndLeafletRackClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16726/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16726/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16726/v1/model.glb\" alt=\"Information and leaflet rack (Clinic and Veterinary Practice)\" 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/16726/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/16726/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16731","slug":"clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","title":"Waiting bench, five seat (Clinic and Veterinary Practice)","summary":"A five-place version of the beam waiting bench on the same 560 mm place pitch, for a wider waiting room wall.","description":"A five-place version of the beam waiting bench on the same 560 mm place pitch, for a wider waiting room wall. Overall 2.83 by 0.90 by 0.49 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","cdnUrl":"https://cdn.3dassets.dev/assets/16731/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-waiting-bench-5-seat-0695a546","thumbnailUrl":"https://cdn.3dassets.dev/assets/16731/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16731/v1/poster.webp","blurhash":"U78q+@tRMd%M.9?^RjMx00o}%#IU4T4TtStS","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":323912,"triangles":6680,"vertices":20040,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-1.4140000343322754,0.00007155009900355891,-0.2359615524072659],"max":[1.4140000343322754,0.8961664570069319,0.24996161762337685]},"sizeMeters":[2.828,0.896,0.486],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T16:22:00.679Z","updatedAt":"2026-10-25T15:38:25.764Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16731/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingBenchFiveSeatClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16731/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16731/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16731/v1/model.glb\" alt=\"Waiting bench, five seat (Clinic and Veterinary Practice)\" 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/16731/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/16731/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16721","slug":"clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","title":"Waiting bench, three seat (Clinic and Veterinary Practice)","summary":"A three-place waiting bench: a pressed steel beam on bent tube cantilever feet carrying piped wipe-clean seat pads, welted upright back pads on raked boards and tubular arms between the places.","description":"A three-place waiting bench: a pressed steel beam on bent tube cantilever feet carrying piped wipe-clean seat pads, welted upright back pads on raked boards and tubular arms between the places. Overall 1.71 by 0.90 by 0.49 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","cdnUrl":"https://cdn.3dassets.dev/assets/16721/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-waiting-bench-3-seat-bef06621","thumbnailUrl":"https://cdn.3dassets.dev/assets/16721/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16721/v1/poster.webp","blurhash":"UAA1eRtRDOtR?w.8M_Mx00tR%gMwD4MdtStR","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":204872,"triangles":4200,"vertices":12600,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8539999723434448,0.00004208774519648406,-0.23605083619234538],"max":[0.8539999723434448,0.8962679289841406,0.24995688549990286]},"sizeMeters":[1.708,0.896,0.486],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:21:59.854Z","updatedAt":"2026-10-25T15:52:01.778Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16721/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingBenchThreeSeatClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16721/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16721/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16721/v1/model.glb\" alt=\"Waiting bench, three seat (Clinic and Veterinary Practice)\" 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/16721/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/16721/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16728","slug":"clinic-and-veterinary-practice-waiting-planter-e0a73e09","title":"Waiting room trough planter (Clinic and Veterinary Practice)","summary":"A 900 mm timber trough planter on a recessed dark plinth with a chamfered rim and a sunken liner tray; plants are supplied separately.","description":"A 900 mm timber trough planter on a recessed dark plinth with a chamfered rim and a sunken liner tray; plants are supplied separately. Overall 0.93 by 0.50 by 0.35 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-waiting-planter-e0a73e09","cdnUrl":"https://cdn.3dassets.dev/assets/16728/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-waiting-planter-e0a73e09","thumbnailUrl":"https://cdn.3dassets.dev/assets/16728/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16728/v1/poster.webp","blurhash":"UNG[sC%L9Ft6~W?HR*Rj00xtxaNGE1M|RjRj","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":102980,"triangles":2108,"vertices":6324,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4650000035762787,0.00001977035197608945,-0.175018922821932],"max":[0.4650000035762787,0.499990542626768,0.175018922821932]},"sizeMeters":[0.93,0.5,0.35],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T16:22:01.552Z","updatedAt":"2026-10-25T12:37:28.883Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16728/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingRoomTroughPlanterClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16728/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16728/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16728/v1/model.glb\" alt=\"Waiting room trough planter (Clinic and Veterinary Practice)\" 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/16728/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/16728/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16720","slug":"clinic-and-veterinary-practice-waiting-armchair-a71bcc69","title":"Waiting armchair (Clinic and Veterinary Practice)","summary":"A waiting-room armchair with a tapered timber frame, shaped tube arms with timber caps, a deep piped seat cushion and a welted upright back pad.","description":"A waiting-room armchair with a tapered timber frame, shaped tube arms with timber caps, a deep piped seat cushion and a welted upright back pad. Overall 0.63 by 0.99 by 0.54 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-waiting-armchair-a71bcc69","cdnUrl":"https://cdn.3dassets.dev/assets/16720/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-waiting-armchair-a71bcc69","thumbnailUrl":"https://cdn.3dassets.dev/assets/16720/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16720/v1/poster.webp","blurhash":"U5DJYFx^00iv?^M}4Txs00IUY6x];Js.FzRk","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":88144,"triangles":1784,"vertices":5352,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3150085194028577,0,-0.272724538994224],"max":[0.3150085194028577,0.9918212890625,0.26999697084465735]},"sizeMeters":[0.63,0.992,0.543],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:21:58.813Z","updatedAt":"2026-10-05T14:13:06.914Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16720/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingArmchairClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16720/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16720/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16720/v1/model.glb\" alt=\"Waiting armchair (Clinic and Veterinary Practice)\" 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/16720/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/16720/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16719","slug":"clinic-and-veterinary-practice-child-play-table-bdb3e5a9","title":"Child play table with stools (Clinic and Veterinary Practice)","summary":"A low child play table: a soft-edged moulded top with a raised rim and three pressed activity wells on a round tube frame, with two moulded pedestal stools.","description":"A low child play table: a soft-edged moulded top with a raised rim and three pressed activity wells on a round tube frame, with two moulded pedestal stools. Overall 0.82 by 0.49 by 0.99 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-child-play-table-bdb3e5a9","cdnUrl":"https://cdn.3dassets.dev/assets/16719/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-child-play-table-bdb3e5a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/16719/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16719/v1/poster.webp","blurhash":"UHEMByt501og~oIUD*xt01M|jXRj0M-:%LR-","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":81440,"triangles":1644,"vertices":4932,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.41000464481633037,0.00002124813747211851,-0.3100000023841858],"max":[0.41000464481633037,0.4899777091779689,0.6762391924858093]},"sizeMeters":[0.82,0.49,0.986],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:21:58.803Z","updatedAt":"2026-10-25T14:37:10.846Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16719/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChildPlayTableWithStoolsClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16719/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16719/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16719/v1/model.glb\" alt=\"Child play table with stools (Clinic and Veterinary Practice)\" 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/16719/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/16719/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16730","slug":"clinic-and-veterinary-practice-notice-board-a60357a3","title":"Practice notice board (Clinic and Veterinary Practice)","summary":"A freestanding practice notice board on two weighted posts: a framed pinboard with a coloured header rail and four blank notice cards.","description":"A freestanding practice notice board on two weighted posts: a framed pinboard with a coloured header rail and four blank notice cards. Overall 1.10 by 1.68 by 0.34 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-notice-board-a60357a3","cdnUrl":"https://cdn.3dassets.dev/assets/16730/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-notice-board-a60357a3","thumbnailUrl":"https://cdn.3dassets.dev/assets/16730/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16730/v1/poster.webp","blurhash":"U997w.t700RP_Nxu4TIAIAfktlRjDOof.8Rj","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":46416,"triangles":936,"vertices":2808,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5499850287590093,0,-0.17001494876152465],"max":[0.5499850287590093,1.6799999475479126,0.17001494876152465]},"sizeMeters":[1.1,1.68,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:00.572Z","updatedAt":"2026-10-12T21:51:09.368Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16730/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PracticeNoticeBoardClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16730/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16730/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16730/v1/model.glb\" alt=\"Practice notice board (Clinic and Veterinary Practice)\" 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/16730/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/16730/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16723","slug":"clinic-and-veterinary-practice-water-dispenser-988c79ce","title":"Waiting room water dispenser (Clinic and Veterinary Practice)","summary":"A bottled water cooler: a chamfered cabinet on a recessed base, an inverted bottle in a collar, two lever taps over a grated drip tray and a side cup tube.","description":"A bottled water cooler: a chamfered cabinet on a recessed base, an inverted bottle in a collar, two lever taps over a grated drip tray and a side cup tube. Overall 0.38 by 1.42 by 0.38 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-water-dispenser-988c79ce","cdnUrl":"https://cdn.3dassets.dev/assets/16723/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-water-dispenser-988c79ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/16723/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16723/v1/poster.webp","blurhash":"U5Csms?b00004:WB-oso00WB~poL~qof4nRj","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":67688,"triangles":1328,"vertices":3984,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.17002036870180764,0,-0.17000030138529182],"max":[0.20502036512552896,1.4199999570846558,0.21392377962096495]},"sizeMeters":[0.375,1.42,0.384],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:21:58.880Z","updatedAt":"2026-10-25T14:23:20.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16723/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaitingRoomWaterDispenserClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16723/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16723/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16723/v1/model.glb\" alt=\"Waiting room water dispenser (Clinic and Veterinary Practice)\" 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/16723/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/16723/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16729","slug":"clinic-and-veterinary-practice-pet-weighing-platform-b728f15e","title":"Pet weighing platform (Clinic and Veterinary Practice)","summary":"A low walk-on veterinary weighing platform: a pressed deck with ribbed non-slip treads, a shallow entry ramp and a column-mounted indicator head.","description":"A low walk-on veterinary weighing platform: a pressed deck with ribbed non-slip treads, a shallow entry ramp and a column-mounted indicator head. Overall 0.81 by 1.05 by 0.77 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-pet-weighing-platform-b728f15e","cdnUrl":"https://cdn.3dassets.dev/assets/16729/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-pet-weighing-platform-b728f15e","thumbnailUrl":"https://cdn.3dassets.dev/assets/16729/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16729/v1/poster.webp","blurhash":"U79Qpx%M00f400M{xuofWYt7adIU~pt8IWad","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":56300,"triangles":1104,"vertices":3312,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.42000372918693823,0,-0.27998890435460627],"max":[0.3899795890807611,1.0460312366485596,0.48570500766995967]},"sizeMeters":[0.81,1.046,0.766],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:00.557Z","updatedAt":"2026-10-12T09:36:43.461Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16729/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PetWeighingPlatformClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16729/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16729/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16729/v1/model.glb\" alt=\"Pet weighing platform (Clinic and Veterinary Practice)\" 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/16729/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/16729/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16817","slug":"clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","title":"Animal transport crate (Clinic and Veterinary Practice)","summary":"A moulded two-piece animal transport crate: a chamfered base and lid on a joint rail with side vent slots, a top grab handle, a barred door in a surround on a named pivot with a twist latch, and a bed pad.","description":"A moulded two-piece animal transport crate: a chamfered base and lid on a joint rail with side vent slots, a top grab handle, a barred door in a surround on a named pivot with a twist latch, and a bed pad. Overall 0.63 by 0.55 by 0.88 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The barred door and its latch are named nodes pivoted on the hinge edge. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","cdnUrl":"https://cdn.3dassets.dev/assets/16817/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-animal-transport-crate-bbea9bc0","thumbnailUrl":"https://cdn.3dassets.dev/assets/16817/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16817/v1/poster.webp","blurhash":"U8G+8Rt900V?=lM|IvxW00ayr.t50[M_%Lxv","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":114388,"triangles":2288,"vertices":6864,"meshes":6,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3160086737767011,0.000006710437596590957,-0.41600000858306885],"max":[0.3160086737767011,0.5499743124698121,0.46099944504857915]},"sizeMeters":[0.632,0.55,0.877],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:23.240Z","updatedAt":"2026-10-25T08:04:10.862Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16817/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AnimalTransportCrateClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16817/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16817/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16817/v1/model.glb\" alt=\"Animal transport crate (Clinic and Veterinary Practice)\" 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/16817/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/16817/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16747","slug":"clinic-and-veterinary-practice-folding-screen-divider-94424271","title":"Folding screen divider (Clinic and Veterinary Practice)","summary":"A three-panel folding screen divider on levelling feet: chamfered frames with infill panels, a mid rail and knuckle hinges between the leaves.","description":"A three-panel folding screen divider on levelling feet: chamfered frames with infill panels, a mid rail and knuckle hinges between the leaves. Overall 1.57 by 1.75 by 0.31 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-folding-screen-divider-94424271","cdnUrl":"https://cdn.3dassets.dev/assets/16747/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-folding-screen-divider-94424271","thumbnailUrl":"https://cdn.3dassets.dev/assets/16747/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16747/v1/poster.webp","blurhash":"UBF={%9F00%M-;-;D%9F00%M~qIURjxuxuIU","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":85892,"triangles":1752,"vertices":5256,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7845167397082962,0.000030155326244174496,-0.15506088448685604],"max":[0.7845167397082962,1.75,0.15506088448685604]},"sizeMeters":[1.569,1.75,0.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:05.992Z","updatedAt":"2026-10-25T10:47:17.107Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16747/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingScreenDividerClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16747/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16747/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16747/v1/model.glb\" alt=\"Folding screen divider (Clinic and Veterinary Practice)\" 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/16747/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/16747/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16744","slug":"clinic-and-veterinary-practice-cubicle-curtain-track-a05a94a2","title":"Cubicle curtain track and drape (Clinic and Veterinary Practice)","summary":"A 2 m L-shaped cubicle curtain track with a return leg, end stops and drop rods, carrying a pleated drape on hooks with a perforated mesh head band.","description":"A 2 m L-shaped cubicle curtain track with a return leg, end stops and drop rods, carrying a pleated drape on hooks with a perforated mesh head band. Overall 2.00 by 2.23 by 1.05 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-cubicle-curtain-track-a05a94a2","cdnUrl":"https://cdn.3dassets.dev/assets/16744/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-cubicle-curtain-track-a05a94a2","thumbnailUrl":"https://cdn.3dassets.dev/assets/16744/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16744/v1/poster.webp","blurhash":"UKAnWC_ND4I9n4t7tlR%DOMxo}W;W=jbo0WU","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":149368,"triangles":3058,"vertices":9174,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.000499963760376,0.000047112508430924294,-1.0220522077385614],"max":[1,2.230022499594562,0.0281885600371615]},"sizeMeters":[2,2.23,1.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:22:04.782Z","updatedAt":"2026-10-10T02:15:28.710Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16744/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CubicleCurtainTrackAndDrapeClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16744/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16744/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16744/v1/model.glb\" alt=\"Cubicle curtain track and drape (Clinic and Veterinary Practice)\" 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/16744/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/16744/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16735","slug":"clinic-and-veterinary-practice-examination-couch-with--20a73e55","title":"Examination couch with steps (Clinic and Veterinary Practice)","summary":"A panelled examination couch on a cupboard base with a drawer and plinth, a two-tread patient step drawn out at the foot end, a tubular grab rail on the far side and piped sectional pads.","description":"A panelled examination couch on a cupboard base with a drawer and plinth, a two-tread patient step drawn out at the foot end, a tubular grab rail on the far side and piped sectional pads. Overall 1.88 by 0.95 by 0.92 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The base drawer is a named node pivoted on its slide axis. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-examination-couch-with--20a73e55","cdnUrl":"https://cdn.3dassets.dev/assets/16735/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-examination-couch-with--20a73e55","thumbnailUrl":"https://cdn.3dassets.dev/assets/16735/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16735/v1/poster.webp","blurhash":"UAED0MkW00s.Fe_N?H4T00Nx.8$*Q-9ZE1%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":122216,"triangles":2416,"vertices":7248,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.949999988079071,-0.000009817741946555048,-0.3199450500191457],"max":[0.9300000071525574,0.9485118974389151,0.5999450810135609]},"sizeMeters":[1.88,0.949,0.92],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:22:02.268Z","updatedAt":"2026-10-25T15:53:09.256Z","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/16735/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 ExaminationCouchWithStepsClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16735/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/16735/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16735/v1/model.glb\" alt=\"Examination couch with steps (Clinic and Veterinary Practice)\" 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/16735/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/16735/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16739","slug":"clinic-and-veterinary-practice-diagnostic-wall-set-f0d41486","title":"Wall diagnostic set (Clinic and Veterinary Practice)","summary":"A wall-mounted diagnostic station on a floor-reaching mounting rail: a backboard with two charging cradles holding an otoscope and an ophthalmoscope handle, coiled cords, a specula dispenser and a blank chart card.","description":"A wall-mounted diagnostic station on a floor-reaching mounting rail: a backboard with two charging cradles holding an otoscope and an ophthalmoscope handle, coiled cords, a specula dispenser and a blank chart card. Overall 0.65 by 1.42 by 0.17 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-diagnostic-wall-set-f0d41486","cdnUrl":"https://cdn.3dassets.dev/assets/16739/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-diagnostic-wall-set-f0d41486","thumbnailUrl":"https://cdn.3dassets.dev/assets/16739/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16739/v1/poster.webp","blurhash":"UBBpnVof00V@j]ofjsRj00Rj~qxu-;fQIUay","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":72760,"triangles":1462,"vertices":4386,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2949684044281353,0,-0.04500152294807927],"max":[0.3500014624237527,1.4199999570846558,0.1250095108390265]},"sizeMeters":[0.645,1.42,0.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:03.231Z","updatedAt":"2026-10-12T22:36:32.147Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16739/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallDiagnosticSetClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16739/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16739/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16739/v1/model.glb\" alt=\"Wall diagnostic set (Clinic and Veterinary Practice)\" 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/16739/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/16739/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16737","slug":"clinic-and-veterinary-practice-clinician-desk-eca22374","title":"Clinician desk (Clinic and Veterinary Practice)","summary":"A 1.4 m consulting desk: panel end frames, a postformed top with a cable grommet and an under-top cable tray, a modesty panel and a three-drawer pedestal.","description":"A 1.4 m consulting desk: panel end frames, a postformed top with a cable grommet and an under-top cable tray, a modesty panel and a three-drawer pedestal. Overall 1.40 by 0.75 by 0.74 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The three pedestal drawers are named nodes pivoted on their slide axes. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-clinician-desk-eca22374","cdnUrl":"https://cdn.3dassets.dev/assets/16737/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-clinician-desk-eca22374","thumbnailUrl":"https://cdn.3dassets.dev/assets/16737/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16737/v1/poster.webp","blurhash":"UOF62x-;9GIU~p%MIURj00Rjt6og4.oextM{","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":63384,"triangles":1444,"vertices":4332,"meshes":7,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.699999988079071,-0.000024701982384633947,-0.3600512649642831],"max":[0.699999988079071,0.751002715640019,0.3838386914420172]},"sizeMeters":[1.4,0.751,0.744],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":14,"publishedAt":"2026-09-07T16:22:02.406Z","updatedAt":"2026-10-25T15:29:41.375Z","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/16737/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 ClinicianDeskClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16737/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/16737/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16737/v1/model.glb\" alt=\"Clinician desk (Clinic and Veterinary Practice)\" 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/16737/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/16737/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16740","slug":"clinic-and-veterinary-practice-patient-chair-e364bf45","title":"Patient chair (Clinic and Veterinary Practice)","summary":"A four-leg patient chair with a tapered timber frame, open arms on turned supports, a piped seat pad and a welted upright back pad.","description":"A four-leg patient chair with a tapered timber frame, open arms on turned supports, a piped seat pad and a welted upright back pad. Overall 0.49 by 1.01 by 0.53 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-patient-chair-e364bf45","cdnUrl":"https://cdn.3dassets.dev/assets/16740/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-patient-chair-e364bf45","thumbnailUrl":"https://cdn.3dassets.dev/assets/16740/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16740/v1/poster.webp","blurhash":"U4CZkX?c00Q,P;9GQR?a00Di?v-;n2%MXURj","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":97344,"triangles":1976,"vertices":5928,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.24501907344696397,0,-0.28046660338265744],"max":[0.24501907344696397,1.0077404975891113,0.24502916847092954]},"sizeMeters":[0.49,1.008,0.525],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:03.270Z","updatedAt":"2026-10-25T06:37:27.260Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16740/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatientChairClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16740/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16740/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16740/v1/model.glb\" alt=\"Patient chair (Clinic and Veterinary Practice)\" 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/16740/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/16740/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16834","slug":"clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","title":"Clinical hand wash basin (Clinic and Veterinary Practice)","summary":"A wall-hung clinical hand wash basin on floor-reaching mounting rails: a shaped deck with a real recessed bowl, a strainer waste and bottle trap, an elbow-lever mixer, a splashback and soap and paper towel dispensers.","description":"A wall-hung clinical hand wash basin on floor-reaching mounting rails: a shaped deck with a real recessed bowl, a strainer waste and bottle trap, an elbow-lever mixer, a splashback and soap and paper towel dispensers. Overall 0.79 by 1.50 by 0.47 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","cdnUrl":"https://cdn.3dassets.dev/assets/16834/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-clinical-hand-wash-basi-8eaa7002","thumbnailUrl":"https://cdn.3dassets.dev/assets/16834/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16834/v1/poster.webp","blurhash":"UBB:v#V[00xu?bxuD%IU00ay~qayR%M{Rj-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":122552,"triangles":2484,"vertices":7452,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.314973906674398,0,-0.2595718103993123],"max":[0.46998504668162233,1.5,0.21003265343223335]},"sizeMeters":[0.785,1.5,0.47],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T16:22:27.394Z","updatedAt":"2026-10-06T11:17:18.292Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16834/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClinicalHandWashBasinClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16834/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16834/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16834/v1/model.glb\" alt=\"Clinical hand wash basin (Clinic and Veterinary Practice)\" 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/16834/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/16834/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16768","slug":"clinic-and-veterinary-practice-scrub-sink-double-3b00208f","title":"Double scrub sink (Clinic and Veterinary Practice)","summary":"A 1.1 m double scrub sink: a tubular stainless frame, a pressed deck with two real bowl apertures and recessed bowls, strainer wastes and bottle traps, elbow-lever mixers, a splashback with three scrub dispensers and a knee kick rail.","description":"A 1.1 m double scrub sink: a tubular stainless frame, a pressed deck with two real bowl apertures and recessed bowls, strainer wastes and bottle traps, elbow-lever mixers, a splashback with three scrub dispensers and a knee kick rail. Overall 1.11 by 1.64 by 0.60 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-scrub-sink-double-3b00208f","cdnUrl":"https://cdn.3dassets.dev/assets/16768/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-scrub-sink-double-3b00208f","thumbnailUrl":"https://cdn.3dassets.dev/assets/16768/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16768/v1/poster.webp","blurhash":"U69H65WB00xu~qof9FWB00M|%Nxu00ay-;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":197576,"triangles":4048,"vertices":12144,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5559880439095761,0,-0.3195786785136414],"max":[0.5559880439095761,1.6399947989029535,0.2800414722223985]},"sizeMeters":[1.112,1.64,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:22:11.412Z","updatedAt":"2026-10-05T20:49:14.097Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16768/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DoubleScrubSinkClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16768/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16768/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16768/v1/model.glb\" alt=\"Double scrub sink (Clinic and Veterinary Practice)\" 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/16768/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/16768/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16770","slug":"clinic-and-veterinary-practice-instrument-cabinet-98ec2833","title":"Instrument cabinet (Clinic and Veterinary Practice)","summary":"A tall instrument cabinet: an 18 mm carcass on a recessed plinth with two named glazed doors over three glass shelves of trays, and two named drawers below.","description":"A tall instrument cabinet: an 18 mm carcass on a recessed plinth with two named glazed doors over three glass shelves of trays, and two named drawers below. Overall 0.90 by 1.85 by 0.49 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Both glazed doors and both drawers are named nodes pivoted on their hinge and slide axes. 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/clinic-and-veterinary-practice-instrument-cabinet-98ec2833","cdnUrl":"https://cdn.3dassets.dev/assets/16770/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-instrument-cabinet-98ec2833","thumbnailUrl":"https://cdn.3dassets.dev/assets/16770/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16770/v1/poster.webp","blurhash":"UCFr@f-q00IU~qxu9FIU00WB.8kC?bt7D%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":185724,"triangles":4184,"vertices":12552,"meshes":12,"materials":4,"textures":0,"animations":["drawer-open","drawer-close","door-open","door-close"],"boundingBox":{"min":[-0.45006409461830893,0.000010683547639354918,-0.2099978663865184],"max":[0.45006409461830893,1.850000023841858,0.2819739759800908]},"sizeMeters":[0.9,1.85,0.492],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:10.705Z","updatedAt":"2026-10-06T08:15:00.727Z","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/16770/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 InstrumentCabinetClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16770/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/16770/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16770/v1/model.glb\" alt=\"Instrument cabinet (Clinic and Veterinary Practice)\" 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/16770/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/16770/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16766","slug":"clinic-and-veterinary-practice-minor-procedures-couch-5927ed1f","title":"Minor procedures couch with stirrups (Clinic and Veterinary Practice)","summary":"A minor procedures couch: a painted pedestal base on levelling pads with a foot pedal bar, a raised back section and a dropped leg section on real hinge knuckles, piped wipe-clean pads and two padded stirrups on socket posts.","description":"A minor procedures couch: a painted pedestal base on levelling pads with a foot pedal bar, a raised back section and a dropped leg section on real hinge knuckles, piped wipe-clean pads and two padded stirrups on socket posts. Overall 1.64 by 1.14 by 1.06 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-minor-procedures-couch-5927ed1f","cdnUrl":"https://cdn.3dassets.dev/assets/16766/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-minor-procedures-couch-5927ed1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/16766/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16766/v1/poster.webp","blurhash":"UBCs{q^+004nO@tS?HVs00S$_N$*=a%M9ZIU","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":143288,"triangles":2900,"vertices":8700,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.7912925481796265,-0.00004636850450767671,-0.5649261623002512],"max":[0.8534444570541382,1.137810303800932,0.4920534937955362]},"sizeMeters":[1.645,1.138,1.057],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:22:09.492Z","updatedAt":"2026-10-05T22:59:54.211Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16766/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MinorProceduresCouchWithStirrupsClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16766/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16766/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16766/v1/model.glb\" alt=\"Minor procedures couch with stirrups (Clinic and Veterinary Practice)\" 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/16766/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/16766/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16765","slug":"clinic-and-veterinary-practice-procedure-light-7472fb04","title":"Mobile procedure light (Clinic and Veterinary Practice)","summary":"A mobile procedure light: a five-star castor base, a tall column, a two-section balanced arm on friction knuckles and a vented dish head with a bezel, a lens field and a sterilisable centre handle.","description":"A mobile procedure light: a five-star castor base, a tall column, a two-section balanced arm on friction knuckles and a vented dish head with a bezel, a lens field and a sterilisable centre handle. Overall 1.22 by 1.54 by 0.84 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-procedure-light-7472fb04","cdnUrl":"https://cdn.3dassets.dev/assets/16765/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-procedure-light-7472fb04","thumbnailUrl":"https://cdn.3dassets.dev/assets/16765/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16765/v1/poster.webp","blurhash":"U471l[xu00M{?bM_9F-;00j]~qNF4n-;~q4n","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":115724,"triangles":2342,"vertices":7026,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.2871084948646673,0,-0.3506323348309125],"max":[0.9279718282151478,1.5399999618530273,0.4883906469870033]},"sizeMeters":[1.215,1.54,0.839],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:09.468Z","updatedAt":"2026-10-06T13:08:02.301Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16765/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MobileProcedureLightClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16765/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16765/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16765/v1/model.glb\" alt=\"Mobile procedure light (Clinic and Veterinary Practice)\" 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/16765/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/16765/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16751","slug":"clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","title":"Treatment trolley (Clinic and Veterinary Practice)","summary":"A three-deck stainless treatment trolley on braked swivel castors: tubular corner posts, pressed lipped decks, a slung drawer, a back rail, an instrument tray and a sharps container on an end cradle.","description":"A three-deck stainless treatment trolley on braked swivel castors: tubular corner posts, pressed lipped decks, a slung drawer, a back rail, an instrument tray and a sharps container on an end cradle. Overall 0.87 by 1.05 by 0.54 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The slung drawer is a named node pivoted on its slide axis. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","cdnUrl":"https://cdn.3dassets.dev/assets/16751/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-treatment-trolley-b5ff1ad0","thumbnailUrl":"https://cdn.3dassets.dev/assets/16751/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16751/v1/poster.webp","blurhash":"U9B3]A%N00M_~qxu9FIU00t2~qIpD*xt%MM|","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":179028,"triangles":3648,"vertices":10944,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3934549084961563,0,-0.25280568652598756],"max":[0.4799867264092117,1.0540000200271606,0.2889042991205309]},"sizeMeters":[0.873,1.054,0.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:06.440Z","updatedAt":"2026-10-06T08:15:02.553Z","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/16751/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 TreatmentTrolleyClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16751/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/16751/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16751/v1/model.glb\" alt=\"Treatment trolley (Clinic and Veterinary Practice)\" 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/16751/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/16751/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16785","slug":"clinic-and-veterinary-practice-stock-shelving-c5a90861","title":"Stock shelving bay (Clinic and Veterinary Practice)","summary":"A 1 m slotted steel stock shelving bay: pilaster uprights, four decks, a kick plate, a panelled back, a row of raked tilt bins and blank cartons above.","description":"A 1 m slotted steel stock shelving bay: pilaster uprights, four decks, a kick plate, a panelled back, a row of raked tilt bins and blank cartons above. Overall 1.00 by 1.92 by 0.45 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-stock-shelving-c5a90861","cdnUrl":"https://cdn.3dassets.dev/assets/16785/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-stock-shelving-c5a90861","thumbnailUrl":"https://cdn.3dassets.dev/assets/16785/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16785/v1/poster.webp","blurhash":"U8C%Ko^k000K~q%M9EIU4UI;%L-U?HozE1RP","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":161772,"triangles":3304,"vertices":9912,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5000473168399273,0,-0.22500662843377844],"max":[0.5000473168399273,1.9220000505447388,0.22500662843377844]},"sizeMeters":[1,1.922,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:15.540Z","updatedAt":"2026-10-12T10:49:55.483Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16785/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StockShelvingBayClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16785/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16785/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16785/v1/model.glb\" alt=\"Stock shelving bay (Clinic and Veterinary Practice)\" 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/16785/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/16785/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16783","slug":"clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee","title":"Vaccine fridge with data logger (Clinic and Veterinary Practice)","summary":"A tall solid-door vaccine refrigerator: five stocked shelves, a sealed insulated door on a gasket, a digital controller, a data logger head on the cabinet top with a probe cable and a temperature chart holder on the flank.","description":"A tall solid-door vaccine refrigerator: five stocked shelves, a sealed insulated door on a gasket, a digital controller, a data logger head on the cabinet top with a probe cable and a temperature chart holder on the flank. Overall 0.69 by 1.96 by 0.75 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The insulated door is a named node pivoted on its hinge edge. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee","cdnUrl":"https://cdn.3dassets.dev/assets/16783/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-vaccine-fridge-logger-31a34cee","thumbnailUrl":"https://cdn.3dassets.dev/assets/16783/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16783/v1/poster.webp","blurhash":"U6EMLD4U00~q?IWBD%s;00xu~qNFxuj[Rjj[","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":146764,"triangles":2916,"vertices":8748,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3559502309693202,0,-0.33004334601811114],"max":[0.33000642843969463,1.9560214281082153,0.41998234931248474]},"sizeMeters":[0.686,1.956,0.75],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:14.265Z","updatedAt":"2026-10-25T09:31:44.820Z","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/16783/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 VaccineFridgeWithDataLoggerClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16783/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/16783/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16783/v1/model.glb\" alt=\"Vaccine fridge with data logger (Clinic and Veterinary Practice)\" 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/16783/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/16783/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16780","slug":"clinic-and-veterinary-practice-controlled-drug-cabinet-638b7c11","title":"Controlled drug cabinet (Clinic and Veterinary Practice)","summary":"A wall-mounted controlled drug cabinet on two floor-reaching mounting rails: a welded steel case with two shelves, stock boxes and a register book, and a heavy door with two lock escutcheons, a lever handle and a piano hinge.","description":"A wall-mounted controlled drug cabinet on two floor-reaching mounting rails: a welded steel case with two shelves, stock boxes and a register book, and a heavy door with two lock escutcheons, a lever handle and a piano hinge. Overall 0.59 by 1.72 by 0.39 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The door and its lock furniture are named nodes pivoted on the hinge edge. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-controlled-drug-cabinet-638b7c11","cdnUrl":"https://cdn.3dassets.dev/assets/16780/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-controlled-drug-cabinet-638b7c11","thumbnailUrl":"https://cdn.3dassets.dev/assets/16780/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16780/v1/poster.webp","blurhash":"UBAAaaD%00~q-;j@IUWB9Fxu-;D%-;WBD%xu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":99692,"triangles":1948,"vertices":5844,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.2950303708244208,0,-0.1949460873445448],"max":[0.2950303708244208,1.7200000286102295,0.19498967722480498]},"sizeMeters":[0.59,1.72,0.39],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:12.937Z","updatedAt":"2026-10-06T23:31:31.239Z","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/16780/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 ControlledDrugCabinetClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16780/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/16780/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16780/v1/model.glb\" alt=\"Controlled drug cabinet (Clinic and Veterinary Practice)\" 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/16780/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/16780/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16777","slug":"clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","title":"Dispensing counter module 600 (Clinic and Veterinary Practice)","summary":"A 600 mm dispensing counter module on the counter-run grid: an 18 mm carcass on a recessed plinth with an internal shelf, a named cupboard door, a postformed 900 mm worktop and a bag rail on the front edge.","description":"A 600 mm dispensing counter module on the counter-run grid: an 18 mm carcass on a recessed plinth with an internal shelf, a named cupboard door, a postformed 900 mm worktop and a bag rail on the front edge. Overall 0.60 by 0.95 by 0.74 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Tiles along X on the 600 mm counter-run grid through counter-left and counter-right ports; the door is a named node pivoted on its hinge edge. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","cdnUrl":"https://cdn.3dassets.dev/assets/16777/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-dispensing-counter-modu-c70fd044","thumbnailUrl":"https://cdn.3dassets.dev/assets/16777/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16777/v1/poster.webp","blurhash":"UEFr-N9F00jY~pIVD*xu00tR?bxutRofM_of","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":50808,"triangles":946,"vertices":2838,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3020187942584877,0.000010680236977610169,-0.3499999940395355],"max":[0.3020187942584877,0.953003852548105,0.39396523400578987]},"sizeMeters":[0.604,0.953,0.744],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T16:22:12.462Z","updatedAt":"2026-10-25T07:20:32.869Z","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/16777/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 DispensingCounterModule600ClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16777/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/16777/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16777/v1/model.glb\" alt=\"Dispensing counter module 600 (Clinic and Veterinary Practice)\" 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/16777/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/16777/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16776","slug":"clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","title":"Dispensing counter module, four drawer (Clinic and Veterinary Practice)","summary":"A 600 mm dispensing counter module with four named drawers on lipped fronts under a postformed worktop, on the same counter-run grid.","description":"A 600 mm dispensing counter module with four named drawers on lipped fronts under a postformed worktop, on the same counter-run grid. Overall 0.60 by 0.90 by 0.70 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. All four drawers are named nodes pivoted on their slide axes. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","cdnUrl":"https://cdn.3dassets.dev/assets/16776/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-dispensing-counter-draw-c4668283","thumbnailUrl":"https://cdn.3dassets.dev/assets/16776/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16776/v1/poster.webp","blurhash":"UHHxvi?b00M{~VWBE2t700IUt8s:%3ofIUV@","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":43684,"triangles":1240,"vertices":3720,"meshes":8,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.3020187942584877,0.000010680236977610169,-0.3499999940395355],"max":[0.3020187942584877,0.8999957222997765,0.352996911714736]},"sizeMeters":[0.604,0.9,0.703],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:12.424Z","updatedAt":"2026-10-25T16:44:18.321Z","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/16776/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 DispensingCounterModuleFourDrawerClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16776/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/16776/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16776/v1/model.glb\" alt=\"Dispensing counter module, four drawer (Clinic and Veterinary Practice)\" 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/16776/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/16776/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16779","slug":"clinic-and-veterinary-practice-dispensing-counter-corn-c357a025","title":"Dispensing counter corner (Clinic and Veterinary Practice)","summary":"A 700 mm square dispensing counter corner that turns a run through 90 degrees: a mitred postformed top, a named cupboard door and an open quadrant shelf in the return.","description":"A 700 mm square dispensing counter corner that turns a run through 90 degrees: a mitred postformed top, a named cupboard door and an open quadrant shelf in the return. Overall 0.70 by 0.90 by 0.75 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Carries counter-left on the -X face and counter-back on the -Z face so a run can turn a corner. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-dispensing-counter-corn-c357a025","cdnUrl":"https://cdn.3dassets.dev/assets/16779/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-dispensing-counter-corn-c357a025","thumbnailUrl":"https://cdn.3dassets.dev/assets/16779/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16779/v1/poster.webp","blurhash":"UJG[.ybF00WB~WbFD*of00WA%Nt7xuayIUay","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":45588,"triangles":850,"vertices":2550,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.35199999809265137,0.000010683074687684035,-0.35199999809265137],"max":[0.35199999809265137,0.8999810736474837,0.39396523400578987]},"sizeMeters":[0.704,0.9,0.746],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:12.734Z","updatedAt":"2026-10-05T19:21:11.362Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16779/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 DispensingCounterCornerClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16779/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/16779/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16779/v1/model.glb\" alt=\"Dispensing counter corner (Clinic and Veterinary Practice)\" 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/16779/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/16779/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16793","slug":"clinic-and-veterinary-practice-prep-induction-bench-c1c53861","title":"Prep and induction bench (Clinic and Veterinary Practice)","summary":"A 1.5 m stainless prep bench: a tubular frame with an undershelf, a folded top with an upstand, a heated pad with a lead, a drip rail on posts with four hooks, a monitor on a rail shelf and two named slung drawers.","description":"A 1.5 m stainless prep bench: a tubular frame with an undershelf, a folded top with an upstand, a heated pad with a lead, a drip rail on posts with four hooks, a monitor on a rail shelf and two named slung drawers. Overall 1.51 by 1.56 by 0.75 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The two slung drawers are named nodes pivoted on their slide axes. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-prep-induction-bench-c1c53861","cdnUrl":"https://cdn.3dassets.dev/assets/16793/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-prep-induction-bench-c1c53861","thumbnailUrl":"https://cdn.3dassets.dev/assets/16793/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16793/v1/poster.webp","blurhash":"UABzLVR*00%2x[ofRQRP00V@_NozMxoLbbR*","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":113384,"triangles":2374,"vertices":7122,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.7560050993794891,0,-0.3559959952071162],"max":[0.7560050993794891,1.559999942779541,0.3988451127760767]},"sizeMeters":[1.512,1.56,0.755],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:18.239Z","updatedAt":"2026-10-25T14:39:27.076Z","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/16793/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 PrepAndInductionBenchClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16793/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/16793/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16793/v1/model.glb\" alt=\"Prep and induction bench (Clinic and Veterinary Practice)\" 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/16793/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/16793/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16801","slug":"clinic-and-veterinary-practice-lab-bench-microscope-a94b071e","title":"Lab bench with microscope (Clinic and Veterinary Practice)","summary":"A practice laboratory bench: a stainless frame with a laminate top and upstand, a reagent shelf on posts with bottles and a slide box, and a binocular microscope with a stage, clips, a three-objective turret and focus knobs.","description":"A practice laboratory bench: a stainless frame with a laminate top and upstand, a reagent shelf on posts with bottles and a slide box, and a binocular microscope with a stage, clips, a three-objective turret and focus knobs. Overall 1.41 by 1.45 by 0.67 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-lab-bench-microscope-a94b071e","cdnUrl":"https://cdn.3dassets.dev/assets/16801/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-lab-bench-microscope-a94b071e","thumbnailUrl":"https://cdn.3dassets.dev/assets/16801/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16801/v1/poster.webp","blurhash":"UHCZY4of00of~qt79FM{4.j[xZRj4nbI%MV@","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":131100,"triangles":2662,"vertices":7986,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7059999704360962,0.000022454448704856134,-0.33595529936223784],"max":[0.7059999704360962,1.4540103867917886,0.3299508595807139]},"sizeMeters":[1.412,1.454,0.666],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":10,"publishedAt":"2026-09-07T16:22:19.336Z","updatedAt":"2026-10-06T10:11:44.651Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16801/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LabBenchWithMicroscopeClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16801/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16801/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16801/v1/model.glb\" alt=\"Lab bench with microscope (Clinic and Veterinary Practice)\" 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/16801/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/16801/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16802","slug":"clinic-and-veterinary-practice-centrifuge-analyser-ben-23a84b65","title":"Centrifuge and analyser bench (Clinic and Veterinary Practice)","summary":"A laboratory bench carrying a centrifuge with a visible six-place rotor and a named hinged lid, and a bench analyser with a raked screen, a named sample drawer and a printer slot.","description":"A laboratory bench carrying a centrifuge with a visible six-place rotor and a named hinged lid, and a bench analyser with a raked screen, a named sample drawer and a printer slot. Overall 1.20 by 1.21 by 0.62 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The centrifuge lid and the analyser sample drawer are named nodes pivoted on their hinge and slide axes. Rigid node-transform clips: door-open, door-close, drawer-open and drawer-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-centrifuge-analyser-ben-23a84b65","cdnUrl":"https://cdn.3dassets.dev/assets/16802/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-centrifuge-analyser-ben-23a84b65","thumbnailUrl":"https://cdn.3dassets.dev/assets/16802/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16802/v1/poster.webp","blurhash":"UBD9#NoL00xu~pt7D%Rj00js_3j]00og-pM_","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":137636,"triangles":2710,"vertices":8130,"meshes":8,"materials":6,"textures":0,"animations":["door-open","door-close","drawer-open","drawer-close"],"boundingBox":{"min":[-0.6000000238418579,-0.000015004484764213899,-0.31000703157575166],"max":[0.6000000238418579,1.210030376268131,0.31000703157575166]},"sizeMeters":[1.2,1.21,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":5,"publishedAt":"2026-09-07T16:22:19.810Z","updatedAt":"2026-10-06T14:28:08.357Z","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/16802/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 CentrifugeAndAnalyserBenchClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16802/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/16802/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16802/v1/model.glb\" alt=\"Centrifuge and analyser bench (Clinic and Veterinary Practice)\" 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/16802/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/16802/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16792","slug":"clinic-and-veterinary-practice-vet-examination-table-0e78660b","title":"Veterinary examination table, raised (Clinic and Veterinary Practice)","summary":"A hydraulic veterinary examination table at working height: a stainless base plate on levelling pads with a foot pedal bar, a two-stage telescopic column with a bellows band, a pressed deck with a raised lip, a ribbed rubber mat and two tie-down rings.","description":"A hydraulic veterinary examination table at working height: a stainless base plate on levelling pads with a foot pedal bar, a two-stage telescopic column with a bellows band, a pressed deck with a raised lip, a ribbed rubber mat and two tie-down rings. Overall 1.20 by 0.97 by 0.62 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-vet-examination-table-0e78660b","cdnUrl":"https://cdn.3dassets.dev/assets/16792/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-vet-examination-table-0e78660b","thumbnailUrl":"https://cdn.3dassets.dev/assets/16792/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16792/v1/poster.webp","blurhash":"U7A,%w-;00R*_4-;xtM{ba%Mt7kB-=-;ITM_","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":147716,"triangles":3024,"vertices":9072,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6000000238418579,-0.000045039638534527526,-0.31000703157575166],"max":[0.6000000238418579,0.9670084244193464,0.31000703157575166]},"sizeMeters":[1.2,0.967,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:18.144Z","updatedAt":"2026-10-12T18:42:50.615Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16792/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VeterinaryExaminationTableRaisedClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16792/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16792/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16792/v1/model.glb\" alt=\"Veterinary examination table, raised (Clinic and Veterinary Practice)\" 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/16792/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/16792/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16797","slug":"clinic-and-veterinary-practice-grooming-bath-114d778e","title":"Grooming bath with ramp (Clinic and Veterinary Practice)","summary":"A raised stainless grooming bath: a panelled plinth, a deep pressed tub with a slatted floor grid and a strainer waste, a splashback with a mixer and a spray head on a hook, a named fold-down entry ramp and a matted step.","description":"A raised stainless grooming bath: a panelled plinth, a deep pressed tub with a slatted floor grid and a strainer waste, a splashback with a mixer and a spray head on a hook, a named fold-down entry ramp and a matted step. Overall 1.36 by 1.44 by 1.17 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The entry ramp is a named node pivoted on its bottom hinge and is shown folded down. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-grooming-bath-114d778e","cdnUrl":"https://cdn.3dassets.dev/assets/16797/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-grooming-bath-114d778e","thumbnailUrl":"https://cdn.3dassets.dev/assets/16797/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16797/v1/poster.webp","blurhash":"UAD9*W4m00?bD%s:xaIU00Rkt7-;~qM{IU-;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":198024,"triangles":4028,"vertices":12084,"meshes":5,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6809999942779541,0.000027567496234615074,-0.36603985541063383],"max":[0.6809999942779541,1.4415569050708157,0.8033624167650188]},"sizeMeters":[1.362,1.442,1.169],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:18.575Z","updatedAt":"2026-10-06T04:35:40.868Z","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/16797/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 GroomingBathWithRampClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16797/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/16797/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16797/v1/model.glb\" alt=\"Grooming bath with ramp (Clinic and Veterinary Practice)\" 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/16797/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/16797/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16820","slug":"clinic-and-veterinary-practice-dog-run-panel-455b5921","title":"Walk-in dog run panel (Clinic and Veterinary Practice)","summary":"A 1 m walk-in dog run panel: square section posts on levelling pads, a solid kick panel to 400 mm and a welded mesh infill in a chamfered frame.","description":"A 1 m walk-in dog run panel: square section posts on levelling pads, a solid kick panel to 400 mm and a welded mesh infill in a chamfered frame. Overall 1.04 by 1.80 by 0.09 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Tiles along X on the 1 m run grid through run-left and run-right ports at mid-height. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-dog-run-panel-455b5921","cdnUrl":"https://cdn.3dassets.dev/assets/16820/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-dog-run-panel-455b5921","thumbnailUrl":"https://cdn.3dassets.dev/assets/16820/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16820/v1/poster.webp","blurhash":"U4AK2J-;004n00oz~qM{?bjZ9FkC~W-;9F4T","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":60120,"triangles":1216,"vertices":3648,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.5200536987999592,0,-0.04284798616921603],"max":[0.5200536987999592,1.7999999523162842,0.04284798616921603]},"sizeMeters":[1.04,1.8,0.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":13,"publishedAt":"2026-09-07T16:22:23.549Z","updatedAt":"2026-10-25T09:41:06.721Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16820/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WalkInDogRunPanelClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16820/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16820/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16820/v1/model.glb\" alt=\"Walk-in dog run panel (Clinic and Veterinary Practice)\" 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/16820/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/16820/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16821","slug":"clinic-and-veterinary-practice-run-gate-332ffd57","title":"Dog run gate (Clinic and Veterinary Practice)","summary":"A 1 m dog run gate on the same grid: a posted frame carrying a named hinged leaf with a kick plate, mesh infill, a cam latch and a drop bolt.","description":"A 1 m dog run gate on the same grid: a posted frame carrying a named hinged leaf with a kick plate, mesh infill, a cam latch and a drop bolt. Overall 1.04 by 1.80 by 0.10 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The gate leaf, its latch and its drop bolt are named nodes pivoted on the hinge edge; the frame tiles on the 1 m run grid. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-run-gate-332ffd57","cdnUrl":"https://cdn.3dassets.dev/assets/16821/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-run-gate-332ffd57","thumbnailUrl":"https://cdn.3dassets.dev/assets/16821/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16821/v1/poster.webp","blurhash":"U38E6*t700D*?ct7D$IUxvM{M_%N_4xu4mDj","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":81464,"triangles":1616,"vertices":4848,"meshes":4,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5200536987999592,0,-0.04284798616921603],"max":[0.5200536987999592,1.7999999523162842,0.06000273623696592]},"sizeMeters":[1.04,1.8,0.103],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":7,"publishedAt":"2026-09-07T16:22:23.758Z","updatedAt":"2026-10-05T07:45:56.344Z","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/16821/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 DogRunGateClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16821/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/16821/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16821/v1/model.glb\" alt=\"Dog run gate (Clinic and Veterinary Practice)\" 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/16821/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/16821/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16822","slug":"clinic-and-veterinary-practice-run-corner-post-7c4651c2","title":"Dog run corner post (Clinic and Veterinary Practice)","summary":"A dog run corner post: a chamfered square section post on a levelling pad with a domed cap and two pairs of panel brackets with fixing pins, turning a run through 90 degrees.","description":"A dog run corner post: a chamfered square section post on a levelling pad with a domed cap and two pairs of panel brackets with fixing pins, turning a run through 90 degrees. Overall 0.15 by 1.86 by 0.16 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Carries run-left on the -X face and run-back on the -Z face so a run turns a corner. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-run-corner-post-7c4651c2","cdnUrl":"https://cdn.3dassets.dev/assets/16822/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-run-corner-post-7c4651c2","thumbnailUrl":"https://cdn.3dassets.dev/assets/16822/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16822/v1/poster.webp","blurhash":"U04ei~%g004TI9RPtlyDb^W;Vsr?xG%MR*0K","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":28672,"triangles":560,"vertices":1680,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07504257389786559,0,-0.08194447026016047],"max":[0.07504257389786559,1.8600000143051147,0.07504257389786559]},"sizeMeters":[0.15,1.86,0.157],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":20,"publishedAt":"2026-09-07T16:22:23.774Z","updatedAt":"2026-10-25T12:09:00.295Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/16822/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DogRunCornerPostClinicAndVeterinaryPractice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/16822/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/16822/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16822/v1/model.glb\" alt=\"Dog run corner post (Clinic and Veterinary Practice)\" 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/16822/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/16822/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"16807","slug":"clinic-and-veterinary-practice-kennel-bank-small-a20c2524","title":"Kennel bank, small, six bay (Clinic and Veterinary Practice)","summary":"A 1.35 m stainless kennel bank of six small bays in two tiers: a chamfered shell on a coved recessed plinth, sloped floor trays with drain lips, bay dividers and one named bar grille door per bay on knuckle hinges with a cam latch and a blank name card.","description":"A 1.35 m stainless kennel bank of six small bays in two tiers: a chamfered shell on a coved recessed plinth, sloped floor trays with drain lips, bay dividers and one named bar grille door per bay on knuckle hinges with a cam latch and a blank name card. Overall 1.35 by 1.50 by 0.85 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Tiles along X on the 1.35 m bank grid through bank-left and bank-right ports; all six doors are named nodes pivoted on their hinge edges. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-kennel-bank-small-a20c2524","cdnUrl":"https://cdn.3dassets.dev/assets/16807/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-kennel-bank-small-a20c2524","thumbnailUrl":"https://cdn.3dassets.dev/assets/16807/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16807/v1/poster.webp","blurhash":"UGCP^qt700WB~qj]DiWBt7fjM_juxut8RjM{","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":131312,"triangles":5608,"vertices":16824,"meshes":18,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6749939234412791,0.000008541905793933713,-0.4000442109168236],"max":[0.6749939234412791,1.5,0.4470012269334193]},"sizeMeters":[1.35,1.5,0.847],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":11,"publishedAt":"2026-09-07T16:22:20.675Z","updatedAt":"2026-10-12T03:00:29.523Z","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/16807/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 KennelBankSmallSixBayClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16807/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/16807/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16807/v1/model.glb\" alt=\"Kennel bank, small, six bay (Clinic and Veterinary Practice)\" 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/16807/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/16807/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16808","slug":"clinic-and-veterinary-practice-kennel-bank-medium-21ab23fa","title":"Kennel bank, medium, four bay (Clinic and Veterinary Practice)","summary":"A 1.35 m kennel bank of four medium bays in two tiers on the same shell and bank grid, with wider grille doors, sloped trays and cam latches.","description":"A 1.35 m kennel bank of four medium bays in two tiers on the same shell and bank grid, with wider grille doors, sloped trays and cam latches. Overall 1.35 by 1.50 by 0.85 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Tiles along X on the 1.35 m bank grid; all four doors are named nodes pivoted on their hinge edges. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-kennel-bank-medium-21ab23fa","cdnUrl":"https://cdn.3dassets.dev/assets/16808/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-kennel-bank-medium-21ab23fa","thumbnailUrl":"https://cdn.3dassets.dev/assets/16808/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16808/v1/poster.webp","blurhash":"UGCZhXe.00Rj~qWVD$j[t7juM{fk%Mt7M{M{","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":117576,"triangles":4320,"vertices":12960,"meshes":14,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6749939234412791,0.000008541905793933713,-0.4000442109168236],"max":[0.6749939234412791,1.5,0.4470012269334193]},"sizeMeters":[1.35,1.5,0.847],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":12,"publishedAt":"2026-09-07T16:22:21.747Z","updatedAt":"2026-10-25T16:55:15.474Z","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/16808/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 KennelBankMediumFourBayClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16808/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/16808/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16808/v1/model.glb\" alt=\"Kennel bank, medium, four bay (Clinic and Veterinary Practice)\" 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/16808/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/16808/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16812","slug":"clinic-and-veterinary-practice-cat-condo-unit-bab6d02f","title":"Cat condo unit (Clinic and Veterinary Practice)","summary":"A two-tier cat housing unit: a stainless shell on a coved plinth with a real portal hole and collar between the tiers, a perch shelf on posts, a bed pad and a litter tray, a glazed lower door and a bar grille upper door.","description":"A two-tier cat housing unit: a stainless shell on a coved plinth with a real portal hole and collar between the tiers, a perch shelf on posts, a bed pad and a litter tray, a glazed lower door and a bar grille upper door. Overall 0.80 by 1.50 by 0.67 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. Both doors are named nodes pivoted on their hinge edges. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-cat-condo-unit-bab6d02f","cdnUrl":"https://cdn.3dassets.dev/assets/16812/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-cat-condo-unit-bab6d02f","thumbnailUrl":"https://cdn.3dassets.dev/assets/16812/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16812/v1/poster.webp","blurhash":"UBB3]CRj00ae~qRj9Fxus:RjRj%M?bWVD$WB","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":130760,"triangles":2724,"vertices":8172,"meshes":9,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.40004272548747344,-0.0000033576491560022292,-0.30995513746116377],"max":[0.40004272548747344,1.5,0.3570012139959735]},"sizeMeters":[0.8,1.5,0.667],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":8,"publishedAt":"2026-09-07T16:22:21.737Z","updatedAt":"2026-10-06T15:28:37.428Z","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/16812/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 CatCondoUnitClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16812/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/16812/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16812/v1/model.glb\" alt=\"Cat condo unit (Clinic and Veterinary Practice)\" 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/16812/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/16812/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16811","slug":"clinic-and-veterinary-practice-isolation-kennel-8354d192","title":"Isolation kennel (Clinic and Veterinary Practice)","summary":"A walk-in isolation kennel: a sealed stainless case on a coved plinth with a floor drain and grid, a gasketed door with a full-height viewing panel on a lever handle, a rear extract vent and a filter box with a duct spigot on top.","description":"A walk-in isolation kennel: a sealed stainless case on a coved plinth with a floor drain and grid, a gasketed door with a full-height viewing panel on a lever handle, a rear extract vent and a filter box with a duct spigot on top. Overall 1.00 by 2.16 by 1.02 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The viewing door is a named node pivoted on its hinge edge. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-isolation-kennel-8354d192","cdnUrl":"https://cdn.3dassets.dev/assets/16811/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-isolation-kennel-8354d192","thumbnailUrl":"https://cdn.3dassets.dev/assets/16811/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16811/v1/poster.webp","blurhash":"U7AwYcrX00E1~qRj9E%M8wOXxa-;Riofj]Rj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":121636,"triangles":2422,"vertices":7266,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.5019775161228429,0,-0.47045416573820453],"max":[0.5000112811926866,2.1600000858306885,0.5510019692309759]},"sizeMeters":[1.002,2.16,1.021],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":6,"publishedAt":"2026-09-07T16:22:21.550Z","updatedAt":"2026-10-25T17:04:41.885Z","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/16811/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 IsolationKennelClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16811/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/16811/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16811/v1/model.glb\" alt=\"Isolation kennel (Clinic and Veterinary Practice)\" 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/16811/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/16811/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"16819","slug":"clinic-and-veterinary-practice-feed-bin-set-2ea14aa0","title":"Feed bin set (Clinic and Veterinary Practice)","summary":"Three wheeled feed bins on castors: tapered moulded bodies with base rails, blank content cards, named hinged lids with grab handles and a scoop hooked on the end bin.","description":"Three wheeled feed bins on castors: tapered moulded bodies with base rails, blank content cards, named hinged lids with grab handles and a scoop hooked on the end bin. Overall 1.36 by 0.88 by 0.44 m (X by Y by Z). Metre units, +Y up, the side a person uses toward +Z, resting on y=0. The three lids are named nodes pivoted on their rear hinges. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clinic-and-veterinary-practice-feed-bin-set-2ea14aa0","cdnUrl":"https://cdn.3dassets.dev/assets/16819/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clinic-and-veterinary-practice-feed-bin-set-2ea14aa0","thumbnailUrl":"https://cdn.3dassets.dev/assets/16819/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/16819/v1/poster.webp","blurhash":"UDHB@_?Z03tn%L~q%MD%00WZ-iaINHD%W9WE","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":285744,"triangles":6284,"vertices":18852,"meshes":7,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.6820000070519745,-0.000018164314149769767,-0.22200000289827584],"max":[0.6820000070519745,0.880489473617087,0.22200001120567323]},"sizeMeters":[1.364,0.881,0.444],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":9,"publishedAt":"2026-09-07T16:22:23.466Z","updatedAt":"2026-10-05T21:32:27.947Z","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/16819/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 FeedBinSetClinicAndVeterinaryPractice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/16819/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/16819/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/16819/v1/model.glb\" alt=\"Feed bin set (Clinic and Veterinary Practice)\" 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/16819/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/16819/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}}]}}