{"data":{"id":"62","slug":"textile-weaving-and-dye-workshop","title":"Textile weaving and dye workshop","summary":"Walk a working mill built from the Textile Weaving and Dye Workshop pack: floor looms down a wide aisle, a dye house of open vats, a tenter yard hung with indigo cloth, the yarn store and the cutting and despatch benches.","url":"https://3dassets.dev/demos/textile-weaving-and-dye-workshop","coverUrl":"https://cdn.3dassets.dev/media/textile-weaving-and-dye-workshop-demo.png","featured":false,"pack":{"slug":"textile-weaving-and-dye-workshop","title":"Textile Weaving and Dye Workshop","url":"https://3dassets.dev/packs/textile-weaving-and-dye-workshop","summary":"Fifty realistic weaving, winding, dyeing and cloth-finishing designs with a furnished workshop.","assetCount":51,"totalBytes":16769328,"starterScene":{"slug":"textile-weaving-and-dye-workshop-ash-and-bf1e6ddd-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/29582/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-ash-and-bf1e6ddd-starter-scene","fileSize":8168428}},"placementCount":268,"assetCount":48,"spawn":{"position":[0,0.184,4],"yaw":180},"publishedAt":"2026-09-08T12:16:09.901Z","updatedAt":"2026-09-08T12:16:09.901Z","description":"A 45 by 24 metre mill from 48 of the pack's 51 models: two of the pack's roofed ranges along the back of its own paved courtyard with the working floor in front of them, in the hall preset with warm light, the lamps hung at 3.2 m so they sit well under the ranges' own roofs and light the machines rather than the roof boards.\n\nYou start in the tenter yard on the centre line of the weaving range, looking down a 2.6 m aisle that runs from the entrance to a shelf of dyed cloth on the back wall. Four shaft floor looms stand two either side of it with a 2 m cross aisle between the rows, each with a work stool, a boat or end feed shuttle on the cloth beam and a thread guide stand. Cone racks, reed racks and the apron locker line the back wall, tension weight racks the side walls, and an inspection frame and a bolt cradle stand at the daylight end.\n\nThe covered wet bay alongside is the dye house, open on three sides so it reads from the yard: five enamel vats in a row over recessed drains, stirring paddles and lifting baskets, two rinse troughs and the wringer, the pigment jar cabinet and wash sink, the dye desk, and the steam press with its generator and ironing board. More wet work runs in the open beside it, where two vats, a trough and the wringer have room around them.\n\nThe yard between is the tenter ground: three rows of drying frames hung with indigo cloth, with lanes to walk between them, cradles of rolled cloth, the cloth shelves and inspection frames, and an outdoor cutting bench laid out in use. The second range holds preparation and the yarn store, with a double sided island of cone racks, the warping mill and beam stand, a winding desk and a spinning wheel, and its own bay presses, irons and packs.\n\nNothing moves. The pack ships no animation clips, so every mechanism holds its authored pose: the beams, treadles, wheels and swifts are static, and the vats and troughs are empty vessels with no simulated liquid. Colliders and the street outside are yours to add.","scene":{"version":1,"spawn":{"position":[0,0.184,4],"yaw":180},"bounds":{"min":[-7.5,0,-12],"max":[37.5,8,12]},"ground":{"style":"none"},"environment":{"preset":"hall","wallHeight":8,"wall":"#e6ded0","light":"warm","lampHeight":3.2,"shadows":true},"placements":[{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[0,0,-6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[0,0,6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[15,0,-6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[15,0,6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[30,0,-6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","position":[30,0,6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-roofed-textile-worksh-efe6d9a0","position":[3,0.184,-5.375],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-roofed-textile-worksh-efe6d9a0","position":[30,0.184,-5.375],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","position":[-2.2,0.344,-7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[-2.15,0.344,-5.95],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-boat-shuttle-aa54a8dc","position":[-2.5,1.304,-6.82],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[-2.2,0.344,-8.05],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","position":[2.2,0.344,-7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[2.25,0.344,-5.95],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-end-feed-shuttle-0de140f6","position":[2.48,1.304,-6.82],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[2.2,0.344,-8.05],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","position":[-2.2,0.344,-3.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[-2.15,0.344,-2.45],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-boat-shuttle-aa54a8dc","position":[-2.5,1.304,-3.32],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[-2.2,0.344,-4.55],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","position":[2.2,0.344,-3.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[2.25,0.344,-2.45],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-end-feed-shuttle-0de140f6","position":[2.48,1.304,-3.32],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[2.2,0.344,-4.55],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[-3.3,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[-2.35,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-reed-rack-c903d866","position":[-1.35,0.344,-8.98],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[0,0.344,-8.95],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-reed-rack-c903d866","position":[1.35,0.344,-8.98],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[2.35,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-apron-locker-bdee3117","position":[3.4,0.344,-8.94],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[-3.5,0.344,-7.6],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[3.5,0.344,-7.6],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[-3.5,0.344,-5.8],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[3.5,0.344,-5.8],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[-3.5,0.344,-4],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","position":[3.5,0.344,-4],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[-2.4,0.344,-1.9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[2.4,0.344,-1.85],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[-3.45,0.344,-1.9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[3.45,0.344,-1.9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-heddle-frame-a98d7283","position":[-3.6,0.344,-3.1],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-heddle-frame-a98d7283","position":[3.6,0.344,-3.1],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[4.9,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[4.9,0.184,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[6.1,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[6.1,0.184,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[7.3,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[7.3,0.184,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[8.5,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[8.5,0.184,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[9.7,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[9.7,0.184,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","position":[5.5,0.184,-1.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","position":[7.9,0.184,-1.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","position":[6.7,0.184,-1.55],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","position":[9.1,0.184,-1.55],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","position":[5.6,0.184,-4.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","position":[7.4,0.184,-4.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-wringer-3128c3eb","position":[9.2,0.184,-4.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","position":[4.4,0.184,-4],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-apron-locker-bdee3117","position":[4.35,0.184,-5.1],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-wash-sink-4487a28a","position":[4.5,0.184,-6.2],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-order-desk-42886a26","position":[7,0.184,-6.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","position":[6.7,0.968,-6.65],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[7.35,0.968,-6.62],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-task-lamp-d9fff738","position":[7.6,0.968,-6.68],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-steam-press-d9416e12","position":[9.3,0.184,-6.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-steam-generator-511c90bd","position":[9.3,0.184,-7.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-ironing-board-3f61a52d","position":[7.2,0.184,-8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[5,0.184,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[6.9,0.184,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[8.8,0.184,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[5.6,0.184,-5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[8.2,0.184,-5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[4.5,0.184,-1.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[10,0.184,-5.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[23.7,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[24.65,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[25.6,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[27,0.344,-8.95],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[28.35,0.344,-9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-reed-rack-c903d866","position":[29.35,0.344,-8.98],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-apron-locker-bdee3117","position":[30.4,0.344,-8.94],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[23.7,0.344,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[23.7,0.344,-7],"rotation":180},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[24.65,0.344,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[24.65,0.344,-7],"rotation":180},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[25.6,0.344,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[25.6,0.344,-7],"rotation":180},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[24.4,0.344,-5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[24.4,0.344,-5],"rotation":180},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[24.4,0.344,-3.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[23.8,0.344,-2.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[24.8,0.344,-2.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[23.5,0.344,-8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[23.55,0.344,-4.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-warping-mill-110132e6","position":[29.4,0.344,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-warp-beam-stand-515559b5","position":[29.2,0.344,-5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-order-desk-42886a26","position":[29.3,0.344,-4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-bobbin-winder-fd860663","position":[28.85,1.128,-4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-swift-4aa20c48","position":[29.75,1.128,-4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","position":[29.2,0.344,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","position":[28.8,0.344,-2.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[30.1,0.344,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[28.2,0.344,-4.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","position":[28.2,0.344,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-warping-board-11db9201","position":[30.5,0.344,-4],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-heddle-frame-a98d7283","position":[30.6,0.344,-7],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-heddle-frame-a98d7283","position":[30.6,0.344,-7.6],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-table-loom-33aabdbd","position":[30.5,0.184,6.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[30.5,0.184,7.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cutting-table-cbd841c5","position":[32.5,0.184,-2.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cutting-mat-c026849b","position":[32.1,1.089,-2.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-tailor-shears-df91e35e","position":[33.1,1.089,-2.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-selvedge-clamp-dfcdbe17","position":[33.25,1.089,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[32.85,1.089,-2.25],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-task-lamp-d9fff738","position":[33.4,1.089,-2.15],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[32.5,0.184,-3.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-steam-press-d9416e12","position":[35.6,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-steam-generator-511c90bd","position":[36.8,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-ironing-board-3f61a52d","position":[35.6,0.184,-3.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-order-desk-42886a26","position":[32.2,0.184,-4.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[31.9,0.968,-4.85],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","position":[32.55,0.968,-4.82],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[31.5,0.184,-6.4],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[34.2,0.184,-5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[36,0.184,-5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[32.2,0.184,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","position":[35,0.184,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-wringer-3128c3eb","position":[36.6,0.184,-7.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-wash-sink-4487a28a","position":[31.5,0.184,-8.6],"rotation":90},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[35,0.184,-8.3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[32.8,0.184,-9.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[34.6,0.184,-9.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[36.4,0.184,-9.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[33.6,0.184,-4.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[34.6,0.184,-3.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-5.4,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-3.5,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-1.6,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[2.4,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[4.3,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[6.2,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[8.1,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[10,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[11.9,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[13.8,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[23.5,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[29.5,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[31.4,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[33.3,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[35.2,0.184,2.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-5.4,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-3.5,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-1.6,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[2.4,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[4.3,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[6.2,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[8.1,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[10,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[11.9,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[13.8,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[23.5,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[29.5,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[31.4,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[33.3,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[35.2,0.184,5.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-5.4,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-3.5,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[-1.6,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[2.4,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[4.3,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[6.2,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[8.1,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[10,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[11.9,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[13.8,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[23.5,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[29.5,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[31.4,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[33.3,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[35.2,0.184,8.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[16.2,0.184,2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[18,0.184,2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[16.2,0.184,5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[18,0.184,5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[17,0.184,8.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[19.5,0.184,8.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[19.6,0.184,4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[24,0.184,0.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-order-desk-42886a26","position":[19.6,0.184,6.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[19.3,0.968,6.55],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-task-lamp-d9fff738","position":[20,0.968,6.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[19.6,0.184,7.3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[-6.8,0.184,0.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[-6.8,0.184,3.8],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[-6.8,0.184,7.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[-6.8,0.184,10.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[15.6,0.184,0.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[21.5,0.184,2.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[21.5,0.184,6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[26.9,0.184,9.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[1,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[8,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[-4.4,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[5,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[12,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[27.9,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[3,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[9.6,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[25,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[32,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-table-loom-33aabdbd","position":[22,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","position":[20.6,0.184,10.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","position":[24,0.184,7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[24,0.184,7.7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-carding-drum-d5efcca0","position":[22.6,0.184,7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[24.9,0.184,7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[12.2,0.184,-7.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[12.2,0.184,-6.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","position":[13.5,0.184,-7.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drain-grate-186c04df","position":[13.5,0.184,-6.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","position":[12.9,0.184,-5.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-wringer-3128c3eb","position":[14.8,0.184,-5.3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","position":[11.3,0.184,-7.6],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","position":[12.9,0.184,-8.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","position":[14.6,0.184,-7.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-wash-sink-4487a28a","position":[11.3,0.184,-5.6],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[15.4,0.184,-7.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[17,0.184,-7.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[18.6,0.184,-7.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","position":[20.2,0.184,-7.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[17.5,0.184,-5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","position":[19.4,0.184,-5.6],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","position":[21.6,0.184,-6.6],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-cutting-table-cbd841c5","position":[20,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-cutting-mat-c026849b","position":[19.4,1.089,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-tailor-shears-df91e35e","position":[20.5,1.089,-3.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-rotary-cutter-5f1617d2","position":[20.5,1.089,-2.9],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-pattern-weight-set-96367467","position":[20.9,1.089,-3.3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-selvedge-clamp-dfcdbe17","position":[20.9,1.089,-2.7],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[19.4,1.089,-2.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-task-lamp-d9fff738","position":[20.9,1.089,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-seam-roller-51b9b6fe","position":[20.1,1.089,-3.45],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-measuring-tape-reel-a531b413","position":[20.1,1.089,-2.5],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[20,0.184,-2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[18.6,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-order-desk-42886a26","position":[17,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","position":[16.7,0.968,-3.05],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","position":[17.4,0.968,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-table-loom-33aabdbd","position":[12.6,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[12.6,0.184,-2.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[13.7,0.184,-3.1],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","position":[15,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","position":[15,0.184,-2.3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-carding-drum-d5efcca0","position":[11.3,0.184,-3],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[11.5,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[13.4,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[15.3,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[17.2,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[19.1,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","position":[21,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[22.2,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","position":[10.2,0.184,-9.4],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-warping-mill-110132e6","position":[22,0.184,-4.2],"rotation":0},{"asset":"textile-weaving-and-dye-workshop-warping-board-11db9201","position":[22.4,0.184,-1.9],"rotation":-90},{"asset":"textile-weaving-and-dye-workshop-swift-4aa20c48","position":[17,0.968,-3],"rotation":0}],"points":[{"position":[0,0.184,-0.6],"title":"The weaving floor","text":"Four shaft floor looms in two columns either side of a 2.6 m aisle on the entrance centre line, each with its stool, a shuttle on the cloth beam and a thread guide stand. The aisle ends on a shelf of dyed cloth.","asset":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa"},{"position":[8,0.184,-1.4],"title":"The dye house","text":"Five open enamel vats over recessed drains along the front of the covered wet bay, with paddles and lifting baskets between them, the rinse troughs and wringer behind, and the pigment jars on the wall.","asset":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba"},{"position":[7,0.184,3.8],"title":"The tenter yard","text":"Three rows of drying frames hung with indigo cloth fill the yard, with lanes between them wide enough to walk. Cloth comes out of the dye house, is wrung, and finishes here.","asset":"textile-weaving-and-dye-workshop-drying-frame-402a0d83"},{"position":[17,0.184,4],"title":"Bolts and finished cloth","text":"Cradles of rolled cloth, the finished cloth shelves and an inspection frame stand at the end of the tenter rows, with the checking desk beside them.","asset":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63"},{"position":[20,0.184,-1.6],"title":"The cutting bench","text":"An outdoor bench laid out in use: mat, shears, rotary cutter, pattern weights, selvedge clamp and a swatch book under the task lamp, with the order desk and the cloth store behind it.","asset":"textile-weaving-and-dye-workshop-cutting-table-cbd841c5"},{"position":[13,0.184,-4.2],"title":"The open dye yard","text":"Two more vats, a rinse trough, the wringer and the pigment cabinet work in the open beside the covered bay, where there is room to swing a skein and the drying rack is a few steps away.","asset":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b"},{"position":[28.6,0.184,-1],"title":"The yarn store","text":"The second range holds the store: a double sided island of cone racks, more against the back wall, and the finished cloth shelves at the end of the aisle.","asset":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f"},{"position":[33,0.184,-1.4],"title":"Finishing and despatch","text":"The far bay presses, irons and packs: the steam press and its generator, the ironing board, the cutting bench, the despatch desk with its scale and swatch book, and cradles of finished cloth.","asset":"textile-weaving-and-dye-workshop-steam-press-d9416e12"}],"poster":{"position":[2.4,3,0.9],"lookAt":[6.2,1.1,2.2]}},"bounds":{"min":[-7.5,0,-12],"max":[37.5,8,12]},"assets":[{"id":"29581","slug":"textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","title":"Courtyard Service Base (Textile Weaving and Dye Workshop)","summary":"Thick paved service base with shallow stone joints supporting the studio and attached wet bay.","description":"Thick paved service base with shallow stone joints supporting the studio and attached wet bay. Dimensions 15.00 × 0.18 × 12.00 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","cdnUrl":"https://cdn.3dassets.dev/assets/29581/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-courtyard-service-bas-1878f4b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29581/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29581/v1/poster.webp","blurhash":"U5AK8X%M00bF%MxuWCRQ00M{~qV[DjIUjYxu","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":147428,"triangles":8400,"vertices":5938,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-7.5,0.0002755857168469378,-6.000320444349498],"max":[7.5,0.18380669953935544,6.000320444349498]},"sizeMeters":[15,0.184,12.001],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:48.061Z","updatedAt":"2026-09-08T04:18:48.158Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29581/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CourtyardServiceBaseTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29581/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29581/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29581/v1/model.glb\" alt=\"Courtyard Service Base (Textile Weaving and Dye Workshop)\" 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/29581/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/29581/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29580","slug":"textile-weaving-and-dye-workshop-roofed-textile-worksh-efe6d9a0","title":"Roofed Textile Workshop (Textile Weaving and Dye Workshop)","summary":"Enclosed eight-metre dry studio with complete roof, broad entrance with four folded door leaves and attached six-metre covered wet bay on four posts. Static rooflights and fixtures; broad entrance reveals the main loom.","description":"Enclosed eight-metre dry studio with complete roof, broad entrance with four folded door leaves and attached six-metre covered wet bay on four posts. Static rooflights and fixtures; broad entrance reveals the main loom. Dimensions 14.40 × 4.83 × 9.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-roofed-textile-worksh-efe6d9a0","cdnUrl":"https://cdn.3dassets.dev/assets/29580/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-roofed-textile-worksh-efe6d9a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/29580/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29580/v1/poster.webp","blurhash":"UA9tDZ~VMwM{o#oft6t6004:S5t7sRV@D*IV","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":241320,"triangles":13992,"vertices":9906,"meshes":7,"materials":7,"textures":0,"animations":[],"boundingBox":{"min":[-7.199999809265137,0.0003695028558090563,-4.824981577632796],"max":[7.199999809265137,4.8303664792215955,4.8250586527633095]},"sizeMeters":[14.4,4.83,9.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:47.420Z","updatedAt":"2026-09-08T04:18:47.525Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29580/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofedTextileWorkshopTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29580/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29580/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29580/v1/model.glb\" alt=\"Roofed Textile Workshop (Textile Weaving and Dye Workshop)\" 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/29580/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/29580/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29532","slug":"textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","title":"Four Shaft Floor Loom (Textile Weaving and Dye Workshop)","summary":"Four-shaft ash floor loom with separated shaft frames, individual eyed heddles, suspended cords, slatted reed beater, visible warp path, cloth roller, brake wheels and four linked treadles. All mechanisms fixed.","description":"Four-shaft ash floor loom with separated shaft frames, individual eyed heddles, suspended cords, slatted reed beater, visible warp path, cloth roller, brake wheels and four linked treadles. All mechanisms fixed. Dimensions 1.80 × 1.65 × 1.51 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","cdnUrl":"https://cdn.3dassets.dev/assets/29532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-four-shaft-floor-loom-1a5daeaa","thumbnailUrl":"https://cdn.3dassets.dev/assets/29532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29532/v1/poster.webp","blurhash":"UAGR-d.A00%3~VofIoWF00i]4:D*IBa{ogWU","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":1175888,"triangles":71604,"vertices":46404,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000006802677726236439,-0.755056964672419],"max":[0.8999999761581421,1.6499931734804159,0.755056964672419]},"sizeMeters":[1.8,1.65,1.51],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:14.945Z","updatedAt":"2026-09-08T04:18:15.053Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FourShaftFloorLoomTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29532/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29532/v1/model.glb\" alt=\"Four Shaft Floor Loom (Textile Weaving and Dye Workshop)\" 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/29532/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/29532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29576","slug":"textile-weaving-and-dye-workshop-work-stool-1c9642c6","title":"Work Stool (Textile Weaving and Dye Workshop)","summary":"Ash stool with bevelled circular seat, four splayed legs and ring footrest.","description":"Ash stool with bevelled circular seat, four splayed legs and ring footrest. Dimensions 0.46 × 0.50 × 0.46 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-work-stool-1c9642c6","cdnUrl":"https://cdn.3dassets.dev/assets/29576/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-work-stool-1c9642c6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29576/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29576/v1/poster.webp","blurhash":"UEECL9%L00Rj~Woe9ZWCE2V[j=fiogbHxaof","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":17000,"triangles":896,"vertices":651,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.22999689223714156,0,-0.22999689223714156],"max":[0.22999689223714156,0.5033769607543945,0.22999689223714156]},"sizeMeters":[0.46,0.503,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:44.713Z","updatedAt":"2026-09-08T04:18:44.809Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29576/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WorkStoolTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29576/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29576/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29576/v1/model.glb\" alt=\"Work Stool (Textile Weaving and Dye Workshop)\" 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/29576/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/29576/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29539","slug":"textile-weaving-and-dye-workshop-boat-shuttle-aa54a8dc","title":"Boat Shuttle (Textile Weaving and Dye Workshop)","summary":"Pointed hollow boat shuttle with thick ash bottom and raised walls around an exposed white bobbin on its steel spindle.","description":"Pointed hollow boat shuttle with thick ash bottom and raised walls around an exposed white bobbin on its steel spindle. Dimensions 0.43 × 0.04 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-boat-shuttle-aa54a8dc","cdnUrl":"https://cdn.3dassets.dev/assets/29539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-boat-shuttle-aa54a8dc","thumbnailUrl":"https://cdn.3dassets.dev/assets/29539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29539/v1/poster.webp","blurhash":"UABMufxu01afxu?GaeIV00R*~oaxIU0Loz?G","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":31572,"triangles":1588,"vertices":1353,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.21348527073860168,-0.00001001540465378134,-0.04300066490294415],"max":[0.21348527073860168,0.04101001281185174,0.04300066490294415]},"sizeMeters":[0.427,0.041,0.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:19.810Z","updatedAt":"2026-09-08T04:18:19.912Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29539/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BoatShuttleTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29539/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29539/v1/model.glb\" alt=\"Boat Shuttle (Textile Weaving and Dye Workshop)\" 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/29539/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/29539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29549","slug":"textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","title":"Thread Guide Stand (Textile Weaving and Dye Workshop)","summary":"Weighted thread-guide stand with two projecting steel eyelets at independent heights.","description":"Weighted thread-guide stand with two projecting steel eyelets at independent heights. Dimensions 0.30 × 0.73 × 0.24 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","cdnUrl":"https://cdn.3dassets.dev/assets/29549/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-thread-guide-stand-afd6931f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29549/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29549/v1/poster.webp","blurhash":"U36t{^%N004m_2oM9FWA00M{~q-;D%WB%Mt7","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":28136,"triangles":1504,"vertices":1064,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.14800000190734863,-4.577776319073662e-7,-0.11999999731779099],"max":[0.14798226241095908,0.7299999594688416,0.11999999731779099]},"sizeMeters":[0.296,0.73,0.24],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:25.955Z","updatedAt":"2026-09-08T04:18:26.054Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29549/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThreadGuideStandTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29549/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29549/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29549/v1/model.glb\" alt=\"Thread Guide Stand (Textile Weaving and Dye Workshop)\" 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/29549/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/29549/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29540","slug":"textile-weaving-and-dye-workshop-end-feed-shuttle-0de140f6","title":"End Feed Shuttle (Textile Weaving and Dye Workshop)","summary":"End-feed shuttle with an open bobbin cavity and separate metal tension block and exit eye at one end.","description":"End-feed shuttle with an open bobbin cavity and separate metal tension block and exit eye at one end. Dimensions 0.43 × 0.08 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-end-feed-shuttle-0de140f6","cdnUrl":"https://cdn.3dassets.dev/assets/29540/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-end-feed-shuttle-0de140f6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29540/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29540/v1/poster.webp","blurhash":"U9A,g=xt00IqIW-:s:IV00E2~p-n-l4:NH?G","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":47096,"triangles":2400,"vertices":1862,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.21348527073860168,-0.00001001540465378134,-0.04300066490294415],"max":[0.21348527073860168,0.07999963354514085,0.04300066490294415]},"sizeMeters":[0.427,0.08,0.086],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:20.304Z","updatedAt":"2026-09-08T04:18:20.399Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29540/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function EndFeedShuttleTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29540/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29540/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29540/v1/model.glb\" alt=\"End Feed Shuttle (Textile Weaving and Dye Workshop)\" 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/29540/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/29540/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29548","slug":"textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","title":"Yarn Cone Rack (Textile Weaving and Dye Workshop)","summary":"Three-tier yarn rack with fifteen hollow-profile indigo yarn cones over visible ash cores.","description":"Three-tier yarn rack with fifteen hollow-profile indigo yarn cones over visible ash cores. Dimensions 0.90 × 1.40 × 0.37 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","cdnUrl":"https://cdn.3dassets.dev/assets/29548/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-yarn-cone-rack-4af47f6f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29548/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29548/v1/poster.webp","blurhash":"U5DlyP?a00jC~V-o9G9HDhRRIwNb?a-oD*9H","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":362384,"triangles":18492,"vertices":15534,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4500320367709498,0,-0.1865267016687788],"max":[0.4500320367709498,1.399999976158142,0.1864847414994553]},"sizeMeters":[0.9,1.4,0.373],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:25.687Z","updatedAt":"2026-09-08T04:18:25.847Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29548/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YarnConeRackTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29548/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29548/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29548/v1/model.glb\" alt=\"Yarn Cone Rack (Textile Weaving and Dye Workshop)\" 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/29548/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/29548/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29537","slug":"textile-weaving-and-dye-workshop-reed-rack-c903d866","title":"Reed Rack (Textile Weaving and Dye Workshop)","summary":"Braced upright reed storage rack with three separately divided metal reeds resting in the lower cradle.","description":"Braced upright reed storage rack with three separately divided metal reeds resting in the lower cradle. Dimensions 0.90 × 1.45 × 0.42 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-reed-rack-c903d866","cdnUrl":"https://cdn.3dassets.dev/assets/29537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-reed-rack-c903d866","thumbnailUrl":"https://cdn.3dassets.dev/assets/29537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29537/v1/poster.webp","blurhash":"U6ECUZRh00?H~V-o9GE302xvWCD*^*%LD*9a","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":524304,"triangles":30492,"vertices":21156,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4499969629473466,0,-0.21154044455712404],"max":[0.4499969629473466,1.4500000476837158,0.2114953958363257]},"sizeMeters":[0.9,1.45,0.423],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:17.831Z","updatedAt":"2026-09-08T04:18:17.940Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29537/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReedRackTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29537/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29537/v1/model.glb\" alt=\"Reed Rack (Textile Weaving and Dye Workshop)\" 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/29537/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/29537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29561","slug":"textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","title":"Finished Cloth Shelf (Textile Weaving and Dye Workshop)","summary":"Four-shelf ash storage unit with nine folded cloth stacks, full back, side uprights and visible shelf thickness.","description":"Four-shelf ash storage unit with nine folded cloth stacks, full back, side uprights and visible shelf thickness. Dimensions 1.50 × 1.75 × 0.47 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","cdnUrl":"https://cdn.3dassets.dev/assets/29561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-finished-cloth-shelf-76f309c6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29561/v1/poster.webp","blurhash":"U5EyJC9S00Vq~V?G4:9a00?9%iIq^+?GIo4:","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":206028,"triangles":12192,"vertices":8072,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7500267036957915,0,-0.23647863054646054],"max":[0.7500267036957915,1.75,0.23652297868007238]},"sizeMeters":[1.5,1.75,0.473],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:34.016Z","updatedAt":"2026-09-08T04:18:34.120Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29561/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FinishedClothShelfTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29561/v1/model.glb\" alt=\"Finished Cloth Shelf (Textile Weaving and Dye Workshop)\" 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/29561/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/29561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29575","slug":"textile-weaving-and-dye-workshop-apron-locker-bdee3117","title":"Apron Locker (Textile Weaving and Dye Workshop)","summary":"Open ash locker with upper shelf, hooks and two hanging indigo aprons with bibs and pockets.","description":"Open ash locker with upper shelf, hooks and two hanging indigo aprons with bibs and pockets. Dimensions 0.70 × 1.80 × 0.50 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-apron-locker-bdee3117","cdnUrl":"https://cdn.3dassets.dev/assets/29575/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-apron-locker-bdee3117","thumbnailUrl":"https://cdn.3dassets.dev/assets/29575/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29575/v1/poster.webp","blurhash":"U5C$.a4n00~o?IobE1WGD$-;S69F^%t59aM~","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":176104,"triangles":10488,"vertices":6894,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3499526870397317,0,-0.2514761901590849],"max":[0.3499526870397317,1.7999999523162842,0.2515299419595371]},"sizeMeters":[0.7,1.8,0.503],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:43.804Z","updatedAt":"2026-09-08T04:18:43.898Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29575/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ApronLockerTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29575/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29575/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29575/v1/model.glb\" alt=\"Apron Locker (Textile Weaving and Dye Workshop)\" 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/29575/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/29575/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29550","slug":"textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","title":"Tension Weight Rack (Textile Weaving and Dye Workshop)","summary":"Rack holding five separate hanging cylindrical warp-tension weights on taut cords and upper attachment beam.","description":"Rack holding five separate hanging cylindrical warp-tension weights on taut cords and upper attachment beam. Dimensions 0.70 × 0.85 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","cdnUrl":"https://cdn.3dassets.dev/assets/29550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-tension-weight-rack-7a63773c","thumbnailUrl":"https://cdn.3dassets.dev/assets/29550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29550/v1/poster.webp","blurhash":"UBFO+1.300-m~V?GD*9a03N2WGM}kCxaWDIV","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":198792,"triangles":11752,"vertices":7782,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.35003129129032595,0,-0.16150229404933591],"max":[0.35003129129032595,0.8500000238418579,0.16149176878463936]},"sizeMeters":[0.7,0.85,0.323],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:26.064Z","updatedAt":"2026-09-08T04:18:26.178Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29550/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TensionWeightRackTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29550/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29550/v1/model.glb\" alt=\"Tension Weight Rack (Textile Weaving and Dye Workshop)\" 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/29550/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/29550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29551","slug":"textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","title":"Cloth Inspection Frame (Textile Weaving and Dye Workshop)","summary":"Braced cloth inspection frame with upper and lower tension rollers and a woven striped indigo panel held flat between them.","description":"Braced cloth inspection frame with upper and lower tension rollers and a woven striped indigo panel held flat between them. Dimensions 1.60 × 1.70 × 0.52 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","cdnUrl":"https://cdn.3dassets.dev/assets/29551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-cloth-inspection-fram-cdc8282f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29551/v1/poster.webp","blurhash":"U4D+;=E400-2~W~V9Z9Z8w%M0WIv~9^%E803","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":228832,"triangles":13412,"vertices":9036,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.7999862891097462,0,-0.2614908524128859],"max":[0.7999862891097462,1.7000000476837158,0.2615039104361408]},"sizeMeters":[1.6,1.7,0.523],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:27.811Z","updatedAt":"2026-09-08T04:18:27.914Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29551/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ClothInspectionFrameTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29551/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29551/v1/model.glb\" alt=\"Cloth Inspection Frame (Textile Weaving and Dye Workshop)\" 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/29551/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/29551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29560","slug":"textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","title":"Fabric Bolt Cradle (Textile Weaving and Dye Workshop)","summary":"Trestle bolt cradle with inclined supports holding an indigo fabric roll around a visible wooden core.","description":"Trestle bolt cradle with inclined supports holding an indigo fabric roll around a visible wooden core. Dimensions 1.30 × 0.79 × 0.62 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","cdnUrl":"https://cdn.3dassets.dev/assets/29560/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-fabric-bolt-cradle-14d3ff63","thumbnailUrl":"https://cdn.3dassets.dev/assets/29560/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29560/v1/poster.webp","blurhash":"U6C?ilx]vw?D0t~q==9F009h9$$d]^9uEUob","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":143476,"triangles":8504,"vertices":5596,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6499999761581421,-0.00002124954063786877,-0.31145573811262284],"max":[0.6499999761581421,0.7900091743014114,0.3114701141100922]},"sizeMeters":[1.3,0.79,0.623],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:33.794Z","updatedAt":"2026-09-08T04:18:33.895Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29560/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FabricBoltCradleTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29560/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29560/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29560/v1/model.glb\" alt=\"Fabric Bolt Cradle (Textile Weaving and Dye Workshop)\" 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/29560/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/29560/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29547","slug":"textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","title":"Fiber Basket (Textile Weaving and Dye Workshop)","summary":"Thick open wicker-style basket with vertical stakes, woven horizontal bands and three soft raw-wool bundles.","description":"Thick open wicker-style basket with vertical stakes, woven horizontal bands and three soft raw-wool bundles. Dimensions 0.65 × 0.43 × 0.64 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","cdnUrl":"https://cdn.3dassets.dev/assets/29547/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-fiber-basket-daaeafa8","thumbnailUrl":"https://cdn.3dassets.dev/assets/29547/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29547/v1/poster.webp","blurhash":"UDD]SO%M00IU-:a#Rioc00NG~pt64noJx^R-","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":95620,"triangles":5552,"vertices":3718,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32280632853507996,0.000014349287068560201,-0.3199999928474426],"max":[0.32280632853507996,0.43001983673240857,0.3199999928474426]},"sizeMeters":[0.646,0.43,0.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:25.178Z","updatedAt":"2026-09-08T04:18:25.272Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29547/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FiberBasketTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29547/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29547/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29547/v1/model.glb\" alt=\"Fiber Basket (Textile Weaving and Dye Workshop)\" 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/29547/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/29547/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29538","slug":"textile-weaving-and-dye-workshop-heddle-frame-a98d7283","title":"Heddle Frame (Textile Weaving and Dye Workshop)","summary":"Standalone ash shaft frame carrying twenty-four eyed metal heddles and continuous top and bottom bars.","description":"Standalone ash shaft frame carrying twenty-four eyed metal heddles and continuous top and bottom bars. Dimensions 0.80 × 0.48 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-heddle-frame-a98d7283","cdnUrl":"https://cdn.3dassets.dev/assets/29538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-heddle-frame-a98d7283","thumbnailUrl":"https://cdn.3dassets.dev/assets/29538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29538/v1/poster.webp","blurhash":"UEFi0%xwM]%4%N~Vt8ad01s+NMW9oHxFk79H","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":254340,"triangles":15792,"vertices":9848,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.39750000834465027,-0.000026103728847204355,-0.022515336023672318],"max":[0.39750000834465027,0.48002609300001114,0.022515336023672318]},"sizeMeters":[0.795,0.48,0.045],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:18.020Z","updatedAt":"2026-09-08T04:18:18.117Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29538/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeddleFrameTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29538/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29538/v1/model.glb\" alt=\"Heddle Frame (Textile Weaving and Dye Workshop)\" 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/29538/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/29538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29562","slug":"textile-weaving-and-dye-workshop-dye-vat-09bb67ba","title":"Dye Vat (Textile Weaving and Dye Workshop)","summary":"Thick enamel dye vat with open steel rim, recessed static indigo bath, tubular handles and drain valve.","description":"Thick enamel dye vat with open steel rim, recessed static indigo bath, tubular handles and drain valve. Dimensions 1.09 × 0.90 × 1.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-dye-vat-09bb67ba","cdnUrl":"https://cdn.3dassets.dev/assets/29562/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-dye-vat-09bb67ba","thumbnailUrl":"https://cdn.3dassets.dev/assets/29562/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29562/v1/poster.webp","blurhash":"UAF$U_RP00R*_NR*9Zxt00Rj_3%MV?sCV@R*","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":51192,"triangles":2716,"vertices":1954,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5426679849624634,0.00002379365776750131,-0.5454999953508377],"max":[0.5426679849624634,0.8999761825003746,0.5455032679877254]},"sizeMeters":[1.085,0.9,1.091],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:34.047Z","updatedAt":"2026-09-08T04:18:34.151Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29562/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DyeVatTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29562/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29562/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29562/v1/model.glb\" alt=\"Dye Vat (Textile Weaving and Dye Workshop)\" 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/29562/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/29562/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29574","slug":"textile-weaving-and-dye-workshop-drain-grate-186c04df","title":"Drain Grate (Textile Weaving and Dye Workshop)","summary":"Recessed drain frame with fifteen steel bars and dark trough beneath the openings.","description":"Recessed drain frame with fifteen steel bars and dark trough beneath the openings. Dimensions 0.80 × 0.06 × 0.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-drain-grate-186c04df","cdnUrl":"https://cdn.3dassets.dev/assets/29574/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-drain-grate-186c04df","thumbnailUrl":"https://cdn.3dassets.dev/assets/29574/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29574/v1/poster.webp","blurhash":"U37UPD%M00xu~q?bRjIU00x]~qD%0000xv-=","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":85592,"triangles":4800,"vertices":3422,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4000000059604645,0.000018997586167381758,-0.1500167874156361],"max":[0.4000000059604645,0.054995483141066746,0.1500167874156361]},"sizeMeters":[0.8,0.055,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:42.285Z","updatedAt":"2026-09-08T04:18:42.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29574/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrainGrateTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29574/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29574/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29574/v1/model.glb\" alt=\"Drain Grate (Textile Weaving and Dye Workshop)\" 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/29574/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/29574/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29564","slug":"textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","title":"Dye Stirring Paddle (Textile Weaving and Dye Workshop)","summary":"Ash dye paddle with broad rounded blade, narrow shaft and hanging loop; upright stored pose.","description":"Ash dye paddle with broad rounded blade, narrow shaft and hanging loop; upright stored pose. Dimensions 0.16 × 1.33 × 0.05 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","cdnUrl":"https://cdn.3dassets.dev/assets/29564/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-dye-stirring-paddle-3755d2cc","thumbnailUrl":"https://cdn.3dassets.dev/assets/29564/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29564/v1/poster.webp","blurhash":"U18D,^?a000001NF~V=#aSj]orWU-WjZInX8","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":22620,"triangles":1148,"vertices":906,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.07996386458949639,0,-0.02500894145562185],"max":[0.07996386458949639,1.3259999752044678,0.02500894145562185]},"sizeMeters":[0.16,1.326,0.05],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:36.473Z","updatedAt":"2026-09-08T04:18:36.565Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29564/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DyeStirringPaddleTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29564/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29564/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29564/v1/model.glb\" alt=\"Dye Stirring Paddle (Textile Weaving and Dye Workshop)\" 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/29564/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/29564/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29563","slug":"textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","title":"Vat Lifting Basket (Textile Weaving and Dye Workshop)","summary":"Open steel lifting basket with circular base, twenty-four drainable cage bars, four rings and raised handles.","description":"Open steel lifting basket with circular base, twenty-four drainable cage bars, four rings and raised handles. Dimensions 0.76 × 0.89 × 0.74 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","cdnUrl":"https://cdn.3dassets.dev/assets/29563/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-vat-lifting-basket-9a52840b","thumbnailUrl":"https://cdn.3dassets.dev/assets/29563/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29563/v1/poster.webp","blurhash":"U4AmxY%M00V@DiRj%gt800V[_NofR*ozWAM{","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":65024,"triangles":3792,"vertices":2564,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.3810283461268502,0,-0.37198962575858074],"max":[0.3810283461268502,0.8920835852622986,0.37198962575858074]},"sizeMeters":[0.762,0.892,0.744],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:35.733Z","updatedAt":"2026-09-08T04:18:35.826Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29563/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VatLiftingBasketTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29563/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29563/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29563/v1/model.glb\" alt=\"Vat Lifting Basket (Textile Weaving and Dye Workshop)\" 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/29563/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/29563/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29567","slug":"textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","title":"Rinse Trough (Textile Weaving and Dye Workshop)","summary":"Open enamel rinse trough with thick inner walls and bottom, rounded steel edge rails, drain and four braced legs.","description":"Open enamel rinse trough with thick inner walls and bottom, rounded steel edge rails, drain and four braced legs. Dimensions 1.54 × 1.06 × 0.66 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","cdnUrl":"https://cdn.3dassets.dev/assets/29567/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-rinse-trough-f71ead0b","thumbnailUrl":"https://cdn.3dassets.dev/assets/29567/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29567/v1/poster.webp","blurhash":"URF6C3t79Fs;~q%MM{Rj9Fxut7Rj4oofofRj","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":170980,"triangles":10292,"vertices":6703,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7680000066757202,-5.391485418115849e-7,-0.3279709492298152],"max":[0.7680000066757202,1.0580005076772894,0.3279709492298152]},"sizeMeters":[1.536,1.058,0.656],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:38.399Z","updatedAt":"2026-09-08T04:18:38.533Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29567/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RinseTroughTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29567/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29567/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29567/v1/model.glb\" alt=\"Rinse Trough (Textile Weaving and Dye Workshop)\" 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/29567/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/29567/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29568","slug":"textile-weaving-and-dye-workshop-wringer-3128c3eb","title":"Wringer (Textile Weaving and Dye Workshop)","summary":"Paired wringer rollers with compression screws, crank and cloth feeding through the nip; fixed pose.","description":"Paired wringer rollers with compression screws, crank and cloth feeding through the nip; fixed pose. Dimensions 1.19 × 1.12 × 0.81 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-wringer-3128c3eb","cdnUrl":"https://cdn.3dassets.dev/assets/29568/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-wringer-3128c3eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/29568/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29568/v1/poster.webp","blurhash":"UBAAj$tS00n#_NtR9FM_D$odt8IVMxoJxuRk","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":182240,"triangles":10716,"vertices":7140,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.5969696793377001,0,-0.40248202688171864],"max":[0.597000002861023,1.11899995803833,0.4025235001140349]},"sizeMeters":[1.194,1.119,0.805],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:39.117Z","updatedAt":"2026-09-08T04:18:39.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29568/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WringerTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29568/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29568/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29568/v1/model.glb\" alt=\"Wringer (Textile Weaving and Dye Workshop)\" 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/29568/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/29568/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29566","slug":"textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","title":"Pigment Jar Cabinet (Textile Weaving and Dye Workshop)","summary":"Ash cabinet with closed back, four shelves and twelve pigment jars with steel closures.","description":"Ash cabinet with closed back, four shelves and twelve pigment jars with steel closures. Dimensions 0.90 × 1.60 × 0.42 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","cdnUrl":"https://cdn.3dassets.dev/assets/29566/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-pigment-jar-cabinet-1deebdd1","thumbnailUrl":"https://cdn.3dassets.dev/assets/29566/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29566/v1/poster.webp","blurhash":"U6E2,v~l00IB~o%K9ZE202IFaQSe-:s;D*Io","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":394088,"triangles":26004,"vertices":20272,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.4499649104191022,0,-0.21153052244383733],"max":[0.4499649104191022,1.600000023841858,0.211478308128571]},"sizeMeters":[0.9,1.6,0.423],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:36.777Z","updatedAt":"2026-09-08T04:18:36.889Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29566/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PigmentJarCabinetTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29566/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29566/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29566/v1/model.glb\" alt=\"Pigment Jar Cabinet (Textile Weaving and Dye Workshop)\" 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/29566/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/29566/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29573","slug":"textile-weaving-and-dye-workshop-wash-sink-4487a28a","title":"Wash Sink (Textile Weaving and Dye Workshop)","summary":"Deep enamel sink with inner basin, trap outlet, arched faucet and two crossbar taps.","description":"Deep enamel sink with inner basin, trap outlet, arched faucet and two crossbar taps. Dimensions 0.90 × 1.40 × 0.66 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-wash-sink-4487a28a","cdnUrl":"https://cdn.3dassets.dev/assets/29573/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-wash-sink-4487a28a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29573/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29573/v1/poster.webp","blurhash":"U8B|Nf%M00Rj~pt69ZkC00M{~qxu00IV?axu","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":188624,"triangles":11252,"vertices":7444,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.4479706033227077,0,-0.32801881347856726],"max":[0.4479706033227077,1.3965039253234863,0.32801881347856726]},"sizeMeters":[0.896,1.397,0.656],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:42.098Z","updatedAt":"2026-09-08T04:18:42.250Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29573/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WashSinkTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29573/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29573/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29573/v1/model.glb\" alt=\"Wash Sink (Textile Weaving and Dye Workshop)\" 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/29573/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/29573/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29578","slug":"textile-weaving-and-dye-workshop-order-desk-42886a26","title":"Order Desk (Textile Weaving and Dye Workshop)","summary":"Ash order desk with plank top, suspended drawer, separate front and steel pull; drawer closed.","description":"Ash order desk with plank top, suspended drawer, separate front and steel pull; drawer closed. Dimensions 1.40 × 0.79 × 0.70 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-order-desk-42886a26","cdnUrl":"https://cdn.3dassets.dev/assets/29578/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-order-desk-42886a26","thumbnailUrl":"https://cdn.3dassets.dev/assets/29578/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29578/v1/poster.webp","blurhash":"UGFYV;%24p%1~V-.M{Io01t6oxM|IVbcofRj","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":190812,"triangles":11340,"vertices":7493,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.00004484006929766915,-0.3525533990460232],"max":[0.699999988079071,0.7849984352247837,0.3525038008049831]},"sizeMeters":[1.4,0.785,0.705],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:45.011Z","updatedAt":"2026-09-08T04:18:45.125Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29578/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OrderDeskTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29578/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29578/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29578/v1/model.glb\" alt=\"Order Desk (Textile Weaving and Dye Workshop)\" 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/29578/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/29578/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29565","slug":"textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","title":"Dye Measuring Scale (Textile Weaving and Dye Workshop)","summary":"Dye scale with raised steel plate, inset display and two control buttons; blank static face.","description":"Dye scale with raised steel plate, inset display and two control buttons; blank static face. Dimensions 0.32 × 0.09 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","cdnUrl":"https://cdn.3dassets.dev/assets/29565/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-dye-measuring-scale-b58503bf","thumbnailUrl":"https://cdn.3dassets.dev/assets/29565/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29565/v1/poster.webp","blurhash":"U4Dvi-~p00%gIv%L-.NH009Fx^9F?8D*4pn~","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":22508,"triangles":1176,"vertices":1014,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.1599999964237213,-9.92317197086312e-7,-0.13999938650058028],"max":[0.1599999964237213,0.09000159933581908,0.13999938650058028]},"sizeMeters":[0.32,0.09,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:36.650Z","updatedAt":"2026-09-08T04:18:36.762Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29565/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DyeMeasuringScaleTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29565/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29565/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29565/v1/model.glb\" alt=\"Dye Measuring Scale (Textile Weaving and Dye Workshop)\" 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/29565/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/29565/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29579","slug":"textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","title":"Sample Swatch Book (Textile Weaving and Dye Workshop)","summary":"Six layered cloth swatches with ash backing, binder rings and staggered fabric edges.","description":"Six layered cloth swatches with ash backing, binder rings and staggered fabric edges. Dimensions 0.24 × 0.08 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","cdnUrl":"https://cdn.3dassets.dev/assets/29579/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-sample-swatch-book-5192a82f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29579/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29579/v1/poster.webp","blurhash":"UD9@bax]I8WB9hNGxVs:00RjOHR+~3%2NLW.","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":39944,"triangles":3124,"vertices":2098,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.12050283919627292,0.000002991186470411092,-0.14000000059604645],"max":[0.12049679229100833,0.08299530257845544,0.14000000059604645]},"sizeMeters":[0.241,0.083,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:46.451Z","updatedAt":"2026-09-08T04:18:46.558Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29579/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SampleSwatchBookTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29579/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29579/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29579/v1/model.glb\" alt=\"Sample Swatch Book (Textile Weaving and Dye Workshop)\" 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/29579/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/29579/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29577","slug":"textile-weaving-and-dye-workshop-task-lamp-d9fff738","title":"Task Lamp (Textile Weaving and Dye Workshop)","summary":"Task lamp with weighted foot, hinge, angled arms, hollow enamel shade and recessed bulb; unlit and fixed.","description":"Task lamp with weighted foot, hinge, angled arms, hollow enamel shade and recessed bulb; unlit and fixed. Dimensions 0.42 × 0.62 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-task-lamp-d9fff738","cdnUrl":"https://cdn.3dassets.dev/assets/29577/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-task-lamp-d9fff738","thumbnailUrl":"https://cdn.3dassets.dev/assets/29577/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29577/v1/poster.webp","blurhash":"UC8|^kM|00%M~qRj4o%MIUj@xuj]01t7?bM|","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":43952,"triangles":2320,"vertices":1647,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.20999999530613422,0.0000032046582980355814,-0.14000000059604645],"max":[0.20999999716877937,0.620010678796153,0.14000000059604645]},"sizeMeters":[0.42,0.62,0.28],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:44.857Z","updatedAt":"2026-09-08T04:18:44.976Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29577/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TaskLampTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29577/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29577/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29577/v1/model.glb\" alt=\"Task Lamp (Textile Weaving and Dye Workshop)\" 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/29577/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/29577/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29570","slug":"textile-weaving-and-dye-workshop-steam-press-d9416e12","title":"Steam Press (Textile Weaving and Dye Workshop)","summary":"Textile press with padded lower platen, raised rounded upper platen, hinge arms, insulated handle and treadle; fixed open.","description":"Textile press with padded lower platen, raised rounded upper platen, hinge arms, insulated handle and treadle; fixed open. Dimensions 1.15 × 1.22 × 0.82 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-steam-press-d9416e12","cdnUrl":"https://cdn.3dassets.dev/assets/29570/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-steam-press-d9416e12","thumbnailUrl":"https://cdn.3dassets.dev/assets/29570/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29570/v1/poster.webp","blurhash":"UID]rE%M00xu~pof9ZRj00M{xaIV4nj[-:a#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":160956,"triangles":9568,"vertices":6245,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.574999988079071,0.000013913019614397726,-0.4106355365958638],"max":[0.574999988079071,1.218029854370727,0.41064388583728806]},"sizeMeters":[1.15,1.218,0.821],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:39.446Z","updatedAt":"2026-09-08T04:18:39.540Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29570/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteamPressTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29570/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29570/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29570/v1/model.glb\" alt=\"Steam Press (Textile Weaving and Dye Workshop)\" 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/29570/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/29570/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29572","slug":"textile-weaving-and-dye-workshop-steam-generator-511c90bd","title":"Steam Generator (Textile Weaving and Dye Workshop)","summary":"Rounded enamel steam reservoir with gauge rim, cap, controls and resting flexible hose; no steam simulation.","description":"Rounded enamel steam reservoir with gauge rim, cap, controls and resting flexible hose; no steam simulation. Dimensions 0.64 × 0.73 × 0.52 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-steam-generator-511c90bd","cdnUrl":"https://cdn.3dassets.dev/assets/29572/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-steam-generator-511c90bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/29572/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29572/v1/poster.webp","blurhash":"UFC6+5-;009F~qxt9FM{00M|_2%L9FM|%Lxu","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":41756,"triangles":2232,"vertices":1589,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.3224533960251848,0,-0.2597758115808164],"max":[0.3224533960251848,0.7300000190734863,0.2598045824717663]},"sizeMeters":[0.645,0.73,0.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:41.924Z","updatedAt":"2026-09-08T04:18:42.083Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29572/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteamGeneratorTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29572/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29572/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29572/v1/model.glb\" alt=\"Steam Generator (Textile Weaving and Dye Workshop)\" 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/29572/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/29572/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29571","slug":"textile-weaving-and-dye-workshop-ironing-board-3f61a52d","title":"Ironing Board (Textile Weaving and Dye Workshop)","summary":"Contoured padded ironing board with rounded nose, thick top and crossed legs with broad feet.","description":"Contoured padded ironing board with rounded nose, thick top and crossed legs with broad feet. Dimensions 1.35 × 0.90 × 0.56 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-ironing-board-3f61a52d","cdnUrl":"https://cdn.3dassets.dev/assets/29571/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-ironing-board-3f61a52d","thumbnailUrl":"https://cdn.3dassets.dev/assets/29571/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29571/v1/poster.webp","blurhash":"UVDJS4xu9Ft7~q%MM{Rjt6%Mt7M{IUxuxtM{","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":12592,"triangles":464,"vertices":435,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6760431528091431,0.00003280614331879761,-0.2800332625311652],"max":[0.6760431528091431,0.8949673890141611,0.2800332625311652]},"sizeMeters":[1.352,0.895,0.56],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:41.124Z","updatedAt":"2026-09-08T04:18:41.221Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29571/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IroningBoardTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29571/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29571/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29571/v1/model.glb\" alt=\"Ironing Board (Textile Weaving and Dye Workshop)\" 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/29571/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/29571/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29569","slug":"textile-weaving-and-dye-workshop-drying-frame-402a0d83","title":"Drying Frame (Textile Weaving and Dye Workshop)","summary":"Braced drying frame with three crossrails and two striped indigo lengths draped over the upper rail.","description":"Braced drying frame with three crossrails and two striped indigo lengths draped over the upper rail. Dimensions 1.80 × 1.95 × 0.72 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-drying-frame-402a0d83","cdnUrl":"https://cdn.3dassets.dev/assets/29569/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-drying-frame-402a0d83","thumbnailUrl":"https://cdn.3dassets.dev/assets/29569/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29569/v1/poster.webp","blurhash":"U6D+rMB:00os?b?GIUD*9W=J5tRR}?-nE458","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":264548,"triangles":15528,"vertices":10479,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.9000160442257354,0,-0.36145499470971215],"max":[0.9000160442257354,1.9500000476837158,0.36154224321136547]},"sizeMeters":[1.8,1.95,0.723],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:39.373Z","updatedAt":"2026-09-08T04:18:39.478Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29569/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryingFrameTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29569/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29569/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29569/v1/model.glb\" alt=\"Drying Frame (Textile Weaving and Dye Workshop)\" 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/29569/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/29569/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29536","slug":"textile-weaving-and-dye-workshop-warping-mill-110132e6","title":"Warping Mill (Textile Weaving and Dye Workshop)","summary":"Vertical rotating-style warping mill with central steel spindle, crossed arms, four yarn posts and eight rectangular yarn circuits; fixed pose.","description":"Vertical rotating-style warping mill with central steel spindle, crossed arms, four yarn posts and eight rectangular yarn circuits; fixed pose. Dimensions 1.26 × 1.78 × 1.26 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-warping-mill-110132e6","cdnUrl":"https://cdn.3dassets.dev/assets/29536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-warping-mill-110132e6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29536/v1/poster.webp","blurhash":"U9DJ9Vt700Rjbcjat6of00WB~qj]IAkAtSRQ","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":47648,"triangles":2524,"vertices":1856,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.6288042068481445,0,-0.6288042068481445],"max":[0.6288042068481445,1.78000009059906,0.6288042068481445]},"sizeMeters":[1.258,1.78,1.258],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:17.615Z","updatedAt":"2026-09-08T04:18:17.722Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarpingMillTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29536/v1/model.glb\" alt=\"Warping Mill (Textile Weaving and Dye Workshop)\" 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/29536/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/29536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29534","slug":"textile-weaving-and-dye-workshop-warp-beam-stand-515559b5","title":"Warp Beam Stand (Textile Weaving and Dye Workshop)","summary":"Separate warp beam on braced ash trestles, wound warp cylinder, end cheeks, exposed axle and crank handle.","description":"Separate warp beam on braced ash trestles, wound warp cylinder, end cheeks, exposed axle and crank handle. Dimensions 1.74 × 0.85 × 0.67 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-warp-beam-stand-515559b5","cdnUrl":"https://cdn.3dassets.dev/assets/29534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-warp-beam-stand-515559b5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29534/v1/poster.webp","blurhash":"UEFYV:%N0J$+~W^*M{In00xst8IU9FIW%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":145124,"triangles":8568,"vertices":5674,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.8675000071525574,-6.787948009234768e-8,-0.3365311939083421],"max":[0.8675000071525574,0.850000091721338,0.33646078669434043]},"sizeMeters":[1.735,0.85,0.673],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:15.275Z","updatedAt":"2026-09-08T04:18:15.405Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarpBeamStandTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29534/v1/model.glb\" alt=\"Warp Beam Stand (Textile Weaving and Dye Workshop)\" 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/29534/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/29534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29541","slug":"textile-weaving-and-dye-workshop-bobbin-winder-fd860663","title":"Bobbin Winder (Textile Weaving and Dye Workshop)","summary":"Bench bobbin winder with steel mandrel, loaded tapered bobbin, hand wheel and projecting rounded crank grip.","description":"Bench bobbin winder with steel mandrel, loaded tapered bobbin, hand wheel and projecting rounded crank grip. Dimensions 0.52 × 0.40 × 0.28 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-bobbin-winder-fd860663","cdnUrl":"https://cdn.3dassets.dev/assets/29541/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-bobbin-winder-fd860663","thumbnailUrl":"https://cdn.3dassets.dev/assets/29541/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29541/v1/poster.webp","blurhash":"U7EL~R^*00Si0h-o$y9G00NK~WR4?D%f.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":30092,"triangles":1528,"vertices":1127,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.26100000739097595,-0.000005332460593948651,-0.1375118222796026],"max":[0.26100000739097595,0.40000533842105845,0.1375118222796026]},"sizeMeters":[0.522,0.4,0.275],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:20.534Z","updatedAt":"2026-09-08T04:18:20.636Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29541/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BobbinWinderTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29541/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29541/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29541/v1/model.glb\" alt=\"Bobbin Winder (Textile Weaving and Dye Workshop)\" 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/29541/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/29541/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29542","slug":"textile-weaving-and-dye-workshop-swift-4aa20c48","title":"Swift (Textile Weaving and Dye Workshop)","summary":"Umbrella yarn swift with six folding-style ash ribs, central spindle, outer yarn pegs and four wound yarn circuits; rigidly posed.","description":"Umbrella yarn swift with six folding-style ash ribs, central spindle, outer yarn pegs and four wound yarn circuits; rigidly posed. Dimensions 0.82 × 0.84 × 0.79 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-swift-4aa20c48","cdnUrl":"https://cdn.3dassets.dev/assets/29542/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-swift-4aa20c48","thumbnailUrl":"https://cdn.3dassets.dev/assets/29542/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29542/v1/poster.webp","blurhash":"U6C?ZHx?00M{.8WAxBt700M}~Wxu00ogt8Ip","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":59976,"triangles":3404,"vertices":2300,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.41200000047683716,0.000002561299827841257,-0.3959999978542328],"max":[0.41200000047683716,0.8399999737739563,0.3959999978542328]},"sizeMeters":[0.824,0.84,0.792],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:20.668Z","updatedAt":"2026-09-08T04:18:20.771Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29542/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SwiftTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29542/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29542/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29542/v1/model.glb\" alt=\"Swift (Textile Weaving and Dye Workshop)\" 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/29542/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/29542/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29544","slug":"textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","title":"Spinning Wheel (Textile Weaving and Dye Workshop)","summary":"Treadle spinning wheel with twelve-spoke rim, drive band, supported flyer bobbin, axle and pedal connecting rod; fixed working pose.","description":"Treadle spinning wheel with twelve-spoke rim, drive band, supported flyer bobbin, axle and pedal connecting rod; fixed working pose. Dimensions 0.81 × 1.09 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","cdnUrl":"https://cdn.3dassets.dev/assets/29544/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-spinning-wheel-5aff8fcd","thumbnailUrl":"https://cdn.3dassets.dev/assets/29544/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29544/v1/poster.webp","blurhash":"U9D+uMR+00x[EmIUad-;00Ri~Vt8w[x[%LM|","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":150804,"triangles":10456,"vertices":5322,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4050054189763529,0,-0.3015248749287931],"max":[0.4050054189763529,1.094714641571045,0.30152239124260943]},"sizeMeters":[0.81,1.095,0.603],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:22.994Z","updatedAt":"2026-09-08T04:18:23.100Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29544/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpinningWheelTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29544/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29544/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29544/v1/model.glb\" alt=\"Spinning Wheel (Textile Weaving and Dye Workshop)\" 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/29544/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/29544/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29535","slug":"textile-weaving-and-dye-workshop-warping-board-11db9201","title":"Warping Board (Textile Weaving and Dye Workshop)","summary":"Pegged upright warping board with six alternating yarn traverses, proud pegs and broad stable foot.","description":"Pegged upright warping board with six alternating yarn traverses, proud pegs and broad stable foot. Dimensions 1.50 × 1.55 × 0.60 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-warping-board-11db9201","cdnUrl":"https://cdn.3dassets.dev/assets/29535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-warping-board-11db9201","thumbnailUrl":"https://cdn.3dassets.dev/assets/29535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29535/v1/poster.webp","blurhash":"U6Ef7z~q000002-:xt4o009F_N-;$g?G-;9b","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":46524,"triangles":2532,"vertices":1830,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.7500236287713505,0,-0.30002364261500997],"max":[0.7500236287713505,1.5499999523162842,0.30002364261500997]},"sizeMeters":[1.5,1.55,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:17.147Z","updatedAt":"2026-09-08T04:18:17.253Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WarpingBoardTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29535/v1/model.glb\" alt=\"Warping Board (Textile Weaving and Dye Workshop)\" 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/29535/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/29535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29533","slug":"textile-weaving-and-dye-workshop-table-loom-33aabdbd","title":"Table Loom (Textile Weaving and Dye Workshop)","summary":"Compact four-shaft tabletop loom with eyed heddles, reed, taut warp and wound cloth roller; tabletop origin rests on its feet and shafts remain fixed.","description":"Compact four-shaft tabletop loom with eyed heddles, reed, taut warp and wound cloth roller; tabletop origin rests on its feet and shafts remain fixed. Dimensions 0.92 × 0.62 × 0.69 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-table-loom-33aabdbd","cdnUrl":"https://cdn.3dassets.dev/assets/29533/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-table-loom-33aabdbd","thumbnailUrl":"https://cdn.3dassets.dev/assets/29533/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29533/v1/poster.webp","blurhash":"UBF5y:%N00$d~pxuIUNH00jEIqE4D+Rke.jE","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":1151720,"triangles":70212,"vertices":45424,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.46000000834465027,6.154583855333406e-7,-0.34498458514354136],"max":[0.46000000834465027,0.619999389309986,0.34498458514354136]},"sizeMeters":[0.92,0.62,0.69],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:15.124Z","updatedAt":"2026-09-08T04:18:15.219Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29533/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TableLoomTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29533/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29533/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29533/v1/model.glb\" alt=\"Table Loom (Textile Weaving and Dye Workshop)\" 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/29533/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/29533/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29552","slug":"textile-weaving-and-dye-workshop-cutting-table-cbd841c5","title":"Cutting Table (Textile Weaving and Dye Workshop)","summary":"Large ash cutting table with thick plank top, lower stretchers, four pegged legs and subtly separated plank seams.","description":"Large ash cutting table with thick plank top, lower stretchers, four pegged legs and subtly separated plank seams. Dimensions 2.40 × 0.91 × 1.30 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-cutting-table-cbd841c5","cdnUrl":"https://cdn.3dassets.dev/assets/29552/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-cutting-table-cbd841c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29552/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29552/v1/poster.webp","blurhash":"UAECXi%M4oxa~o?aM|M}00xZafIU0LE2xtM{","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":216192,"triangles":12792,"vertices":8536,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.2000000476837158,-0.000050385344958714384,-0.650044277669178],"max":[1.2000000476837158,0.9050590511282163,0.650044277669178]},"sizeMeters":[2.4,0.905,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:28.442Z","updatedAt":"2026-09-08T04:18:28.534Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29552/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CuttingTableTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29552/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29552/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29552/v1/model.glb\" alt=\"Cutting Table (Textile Weaving and Dye Workshop)\" 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/29552/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/29552/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29555","slug":"textile-weaving-and-dye-workshop-cutting-mat-c026849b","title":"Cutting Mat (Textile Weaving and Dye Workshop)","summary":"Indigo cutting mat with low bevelled perimeter and modeled fine square measurement grid without printed numbers.","description":"Indigo cutting mat with low bevelled perimeter and modeled fine square measurement grid without printed numbers. Dimensions 0.90 × 0.01 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-cutting-mat-c026849b","cdnUrl":"https://cdn.3dassets.dev/assets/29555/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-cutting-mat-c026849b","thumbnailUrl":"https://cdn.3dassets.dev/assets/29555/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29555/v1/poster.webp","blurhash":"U45romtA8wofx]tSV[RP00WR%%W9McMvoetl","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":169672,"triangles":9600,"vertices":6879,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.44999998807907104,0.000012268651584131443,-0.3250129617566239],"max":[0.44999998807907104,0.014024918721895855,0.3250129617566239]},"sizeMeters":[0.9,0.014,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:30.467Z","updatedAt":"2026-09-08T04:18:30.571Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29555/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CuttingMatTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29555/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29555/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29555/v1/model.glb\" alt=\"Cutting Mat (Textile Weaving and Dye Workshop)\" 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/29555/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/29555/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29553","slug":"textile-weaving-and-dye-workshop-tailor-shears-df91e35e","title":"Tailor Shears (Textile Weaving and Dye Workshop)","summary":"Heavy tailor shears with ergonomic oval finger loops, pivot screw and opposing tapered bevel-edged steel blades; fixed open on worktop.","description":"Heavy tailor shears with ergonomic oval finger loops, pivot screw and opposing tapered bevel-edged steel blades; fixed open on worktop. Dimensions 0.14 × 0.02 × 0.32 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-tailor-shears-df91e35e","cdnUrl":"https://cdn.3dassets.dev/assets/29553/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-tailor-shears-df91e35e","thumbnailUrl":"https://cdn.3dassets.dev/assets/29553/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29553/v1/poster.webp","blurhash":"U36H.X9E00x]?cD%RPx]00-q_Nf*00_3x^D$","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":26528,"triangles":1320,"vertices":1034,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.0689999982714653,-0.000005634038601067676,-0.15998826920986176],"max":[0.0689999982714653,0.01800563512638584,0.1599860386592401]},"sizeMeters":[0.138,0.018,0.32],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:28.639Z","updatedAt":"2026-09-08T04:18:28.744Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29553/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TailorShearsTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29553/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29553/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29553/v1/model.glb\" alt=\"Tailor Shears (Textile Weaving and Dye Workshop)\" 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/29553/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/29553/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29558","slug":"textile-weaving-and-dye-workshop-selvedge-clamp-dfcdbe17","title":"Selvedge Clamp (Textile Weaving and Dye Workshop)","summary":"C-shaped selvedge clamp with fixed jaws, vertical screw, rubber pressure pad and transverse tommy bar.","description":"C-shaped selvedge clamp with fixed jaws, vertical screw, rubber pressure pad and transverse tommy bar. Dimensions 0.15 × 0.12 × 0.04 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-selvedge-clamp-dfcdbe17","cdnUrl":"https://cdn.3dassets.dev/assets/29558/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-selvedge-clamp-dfcdbe17","thumbnailUrl":"https://cdn.3dassets.dev/assets/29558/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29558/v1/poster.webp","blurhash":"U3ATvK-p00t7s:?bg3D$00IU_4tR00x]-;9F","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":27152,"triangles":1332,"vertices":1069,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.07500000298023224,0.000001857655509023004,-0.022497483116937857],"max":[0.07500000298023224,0.11599813900663086,0.022497483116937857]},"sizeMeters":[0.15,0.116,0.045],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:31.420Z","updatedAt":"2026-09-08T04:18:31.536Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29558/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SelvedgeClampTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29558/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29558/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29558/v1/model.glb\" alt=\"Selvedge Clamp (Textile Weaving and Dye Workshop)\" 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/29558/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/29558/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29545","slug":"textile-weaving-and-dye-workshop-carding-drum-d5efcca0","title":"Carding Drum (Textile Weaving and Dye Workshop)","summary":"Two-drum wool carder with two different drum diameters, individually modeled steel carding teeth, support frame and crank.","description":"Two-drum wool carder with two different drum diameters, individually modeled steel carding teeth, support frame and crank. Dimensions 0.81 × 0.61 × 0.65 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-carding-drum-d5efcca0","cdnUrl":"https://cdn.3dassets.dev/assets/29545/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-carding-drum-d5efcca0","thumbnailUrl":"https://cdn.3dassets.dev/assets/29545/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29545/v1/poster.webp","blurhash":"UCBy${^+Rkxu9bWU%0s:00D%D*IU~UofIVRj","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":375000,"triangles":20696,"vertices":15494,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.4025000035762787,0.0000090804598491534,-0.3231814100705814],"max":[0.4025000035762787,0.6133905786552631,0.3231814100705814]},"sizeMeters":[0.805,0.613,0.646],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:23.189Z","updatedAt":"2026-09-08T04:18:23.319Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29545/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CardingDrumTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29545/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29545/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29545/v1/model.glb\" alt=\"Carding Drum (Textile Weaving and Dye Workshop)\" 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/29545/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/29545/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29554","slug":"textile-weaving-and-dye-workshop-rotary-cutter-5f1617d2","title":"Rotary Cutter (Textile Weaving and Dye Workshop)","summary":"Rotary fabric cutter with contoured polymer grip, exposed thin circular steel blade, finger guard and central axle pin.","description":"Rotary fabric cutter with contoured polymer grip, exposed thin circular steel blade, finger guard and central axle pin. Dimensions 0.07 × 0.05 × 0.21 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-rotary-cutter-5f1617d2","cdnUrl":"https://cdn.3dassets.dev/assets/29554/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-rotary-cutter-5f1617d2","thumbnailUrl":"https://cdn.3dassets.dev/assets/29554/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29554/v1/poster.webp","blurhash":"U35E:A9Ej[x]?v9FRjx]00%Mofax00~qogIA","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":26756,"triangles":1296,"vertices":1057,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.03400000184774399,0.0000045485616618871905,-0.10700000077486038],"max":[0.03400000184774399,0.05399545283904726,0.10700000077486038]},"sizeMeters":[0.068,0.054,0.214],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:28.729Z","updatedAt":"2026-09-08T04:18:28.835Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29554/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RotaryCutterTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29554/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29554/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29554/v1/model.glb\" alt=\"Rotary Cutter (Textile Weaving and Dye Workshop)\" 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/29554/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/29554/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29557","slug":"textile-weaving-and-dye-workshop-pattern-weight-set-96367467","title":"Pattern Weight Set (Textile Weaving and Dye Workshop)","summary":"Four independent low rounded pattern weights with broad flat bases and domed steel shoulders.","description":"Four independent low rounded pattern weights with broad flat bases and domed steel shoulders. Dimensions 0.15 × 0.04 × 0.15 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-pattern-weight-set-96367467","cdnUrl":"https://cdn.3dassets.dev/assets/29557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-pattern-weight-set-96367467","thumbnailUrl":"https://cdn.3dassets.dev/assets/29557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29557/v1/poster.webp","blurhash":"U49@YN_300M{?cxtRORk00D%_4Rj00IUtRad","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":34720,"triangles":1344,"vertices":1588,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.07750000059604645,0.000002837464327970496,-0.07750000059604645],"max":[0.07750000059604645,0.03799716131377681,0.07750000059604645]},"sizeMeters":[0.155,0.038,0.155],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:31.300Z","updatedAt":"2026-09-08T04:18:31.401Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29557/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatternWeightSetTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29557/v1/model.glb\" alt=\"Pattern Weight Set (Textile Weaving and Dye Workshop)\" 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/29557/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/29557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29559","slug":"textile-weaving-and-dye-workshop-seam-roller-51b9b6fe","title":"Seam Roller (Textile Weaving and Dye Workshop)","summary":"Hand seam roller with a waisted ash grip, steel stem and broad cylindrical wooden roller on visible axle.","description":"Hand seam roller with a waisted ash grip, steel stem and broad cylindrical wooden roller on visible axle. Dimensions 0.09 × 0.23 × 0.07 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-seam-roller-51b9b6fe","cdnUrl":"https://cdn.3dassets.dev/assets/29559/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-seam-roller-51b9b6fe","thumbnailUrl":"https://cdn.3dassets.dev/assets/29559/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29559/v1/poster.webp","blurhash":"UBB3f=-o004:~Vxt9aIpbFs:s:RkR%oeWDM}","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":14872,"triangles":544,"vertices":600,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.04249435295003099,0,-0.034995955370418184],"max":[0.04249435295003099,0.22499999403953552,0.034995955370418184]},"sizeMeters":[0.085,0.225,0.07],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:33.109Z","updatedAt":"2026-09-08T04:18:33.211Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29559/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SeamRollerTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29559/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29559/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29559/v1/model.glb\" alt=\"Seam Roller (Textile Weaving and Dye Workshop)\" 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/29559/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/29559/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29556","slug":"textile-weaving-and-dye-workshop-measuring-tape-reel-a531b413","title":"Measuring Tape Reel (Textile Weaving and Dye Workshop)","summary":"Round tape reel with inset face ring, exposed flat measuring strip and steel end tab.","description":"Round tape reel with inset face ring, exposed flat measuring strip and steel end tab. Dimensions 0.23 × 0.03 × 0.09 m (X × Y × Z). Metre units, +Y up, +Z front; origin on the ground at the footprint centre unless stated. Ash timber, indigo textiles, cream enamel and steel fittings. Static artisan equipment; no simulated machinery or fluids. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/textile-weaving-and-dye-workshop-measuring-tape-reel-a531b413","cdnUrl":"https://cdn.3dassets.dev/assets/29556/v1/model.glb","downloadUrl":"https://3dassets.dev/download/textile-weaving-and-dye-workshop-measuring-tape-reel-a531b413","thumbnailUrl":"https://cdn.3dassets.dev/assets/29556/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29556/v1/poster.webp","blurhash":"U9A^OI~q01M{-:?bofD%004o_2t7D%00M{_2","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":26292,"triangles":1304,"vertices":919,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.11550000309944153,-5.796400126805573e-7,-0.04500000271946192],"max":[0.115500368305565,0.03399936048007637,0.04500000271946192]},"sizeMeters":[0.231,0.034,0.09],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"GPT-6","downloads":0,"publishedAt":"2026-09-08T04:18:31.038Z","updatedAt":"2026-09-08T04:18:31.148Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29556/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MeasuringTapeReelTextileWeavingAndDyeWorkshop(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29556/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29556/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29556/v1/model.glb\" alt=\"Measuring Tape Reel (Textile Weaving and Dye Workshop)\" 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/29556/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/29556/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}