ข้อมูลเชิงลึก

sand3D: แอสเซ็ต 3D ที่คุณสามารถอ่านและแก้ไขได้ในรูปแบบโค้ด

sand3D ช่วยให้โมเดลภาษาสร้างแอสเซ็ต 3D ที่แก้ไขได้โดยใช้ชุดคำสั่ง Python ขนาดกะทัดรัด พร้อมอาศัย bpy ของ Blender สำหรับการสร้างแบบจำลองเชิงพารามิเตอร์

sand3D: แอสเซ็ต 3D ที่คุณสามารถอ่านและแก้ไขได้ในรูปแบบโค้ด

ไฮไลต์และผลลัพธ์

sand3D มอบคลังคำศัพท์ขนาดกะทัดรัดให้โมเดลภาษาใช้สร้างวัตถุ 3D ใน Python พัฒนาโดย Thibault Neveu และ Andréa Loy แห่ง Sandflow โดยแปลงโปรแกรมให้เป็นชิ้นส่วน วัสดุ และชุดประกอบแบบขยับได้ผ่าน bpy ของ Blender การเปลี่ยนมิติแล้วเรียกใช้โปรแกรมอีกครั้งจะสร้างแอสเซ็ตขึ้นใหม่ รีลีสสาธารณะนี้ประกอบด้วยไลบรารีสำหรับสร้างแบบจำลองและชุดข้อมูล แต่ไม่ได้จัดหาโมเดลข้อความสู่ 3D ที่ฝึกสำเร็จแบบสแตนด์อโลน คลังอย่างเป็นทางการ

การ์ดชุดข้อมูลทั้งห้าแสดงวัตถุ Objaverse 66,887 รายการ วัตถุ CAD 24,495 รายการ วัตถุ Articraft 9,209 รายการ วัตถุ SimReady 2,334 รายการ และระเบียน AutoMate 3,169 รายการ รวมทั้งหมด 106,094 รายการ ซึ่งรวมวัตถุแบบขยับได้ 10,456 รายการ จำนวนของ AutoMate ประกอบด้วยชิ้นส่วนเดี่ยว 2,297 ชิ้น และชุดประกอบ 872 ชุด แต่ละระเบียนจับคู่โค้ดที่เรียกใช้ได้กับภาพเรนเดอร์และแอสเซ็ต OpenUSD ที่ส่งออก นี่คือคอลเลกชันของแอสเซ็ตต้นฉบับที่สร้างขึ้นใหม่ ไม่ใช่กลไกที่ออกแบบขึ้นใหม่ 100,000 ชิ้น ชุดข้อมูลอย่างเป็นทางการ

https://external-v2fun-data-hk-1.oss-accelerate.aliyuncs.com/temp/2026/11/10/1_1794295500887.PNG

การเปรียบเทียบโทเค็นของรีโพซิทอรีใช้ o200k_base และไม่รวมคอมเมนต์กับ docstring อัตราส่วนมัธยฐาน baseline/sand3D คือ 4.0× สำหรับ Blender Python ที่เขียนโดย LLM จากชิ้นส่วน CAD 30 ชิ้น, 2.3× สำหรับโปรแกรม CadQuery 17 โปรแกรม, 6.0× สำหรับโปรแกรม FeatureScript 13 โปรแกรม และ 2.0× สำหรับโปรแกรม Articraft 12 โปรแกรม การเปรียบเทียบเหล่านี้มีขนาดเล็ก มาจากแหล่งที่แตกต่างกัน และเปรียบเทียบกับโปรแกรม sand3D ที่คัดสรรแล้ว โดยมี baseline ของ Blender เพียง 9/30 รายการที่สร้างชิ้นส่วนได้ถูกต้อง และ Articraft ยังครอบคลุมไดนามิกด้วย ผลลัพธ์เหล่านี้สนับสนุนข้ออ้างเรื่องความกะทัดรัด ไม่ใช่การปรับปรุงคุณภาพการสร้างแบบสากล รายละเอียดการประเมิน

วิธีการทำงาน

สำหรับการสร้างงาน เวิร์กโฟลว์คือ ให้ LLM เข้าถึง API หรือเขียน Python โดยตรง อธิบายชุดประกอบและพารามิเตอร์ สร้างและจัดวางชิ้นส่วนแต่ละชิ้น ประกาศข้อต่อและวัสดุ เรียกใช้โปรแกรมใน bpy ตรวจสอบ แก้ไข และส่งออก API ที่มีประมาณ 3,600 โทเค็นสามารถใส่ไว้ในพรอมป์ได้ โครงสร้างโปรแกรมที่แนะนำให้ระบุแผนชุดประกอบก่อน จากนั้นจึงนำชิ้นส่วนแต่ละชิ้นไปใช้งานแยกกัน ทำให้ความสัมพันธ์ของมิติและตำแหน่งอ่านได้ง่าย ตัวแทนที่แก้ไขได้คือโค้ดเรขาคณิตที่เรียกใช้ได้และลำดับชั้นของฉาก ไลบรารีนี้ไม่ได้ใช้การเข้ารหัสแฝงหรือการลดสัญญาณรบกวนแบบ diffusion แนวทางการเขียน; API

คลังคำศัพท์ด้านเรขาคณิตเริ่มจากโปรไฟล์ 2D ไปสู่ของแข็ง: rect และ circle ใช้กำหนดหน้าตัด; extrude, revolve, sweep และ loft ใช้สร้างปริมาตร; cut, pocket, shell และ fillet ใช้แก้ไขปริมาตรเหล่านั้น ออบเจ็กต์ Frame อธิบายตำแหน่งและทิศทาง ทำให้สามารถวางองค์ประกอบบน面ที่มีชื่อหรือจุดยึดเฉพาะที่ แทนการใช้รายการพิกัดโลกยาว ๆ group รักษาเมชและวัสดุที่แยกจากกันไว้ภายใต้พาเรนต์เดียว; join ทำการหลอมรวม; assembly เพิ่มจุดยึดที่มีชื่อให้กับรูทที่จัดกลุ่มไว้ ความแตกต่างเหล่านี้รักษาข้อมูลว่าชิ้นส่วนใดอยู่ด้วยกัน และชิ้นส่วนใดยังคงแก้ไขแยกกันได้ การใช้งานชุดประกอบ

ตัวอย่างเครื่องซักผ้าทำให้กลไกเป็นรูปธรรม: ตู้รองรับถัง ประตูที่มีวงแหวน กระจก และมือจับ ลิ้นชัก และปุ่มหมุน หลังจากวางชิ้นส่วนเหล่านี้ในตำแหน่งพักแล้ว joint จะบันทึกพาเรนต์ จุดหมุน แกน ประเภท และช่วงที่อนุญาต ประตูหมุนผ่าน 0–143° ลิ้นชักเลื่อน 0–200 มม. และถังกับปุ่มหมุนได้ต่อเนื่อง pose ตรวจสอบค่าที่ร้องขอและส่งต่อการแปลงผ่านจลนศาสตร์ไปข้างหน้า โดยไม่สร้างเรขาคณิตขึ้นใหม่ seat ลบปริมาตรที่ชิ้นส่วนที่ใส่เข้าไปครอบครองในตำแหน่งพัก แทนที่จะคำนวณขอบเขตการเคลื่อนที่ทั้งหมด ตัวอย่าง; การใช้งานข้อต่อ

https://external-v2fun-data-hk-1.oss-accelerate.aliyuncs.com/temp/2026/11/10/2_1794295546294.PNG

การผลิตชุดข้อมูลเพิ่มลูปการสร้างใหม่แบบใช้อะเจนต์: เขียนโค้ด เรียกใช้ เปรียบเทียบพื้นผิวที่ได้กับแอสเซ็ตต้นฉบับที่มีอยู่ แล้วแก้ไข ผู้เขียนยังไม่ได้เผยแพร่วิธีการอย่างเต็มรูปแบบของไปป์ไลน์นี้ F-score ของชุดข้อมูลใช้ค่าความคลาดเคลื่อน 1% ของเส้นทแยงมุมกล่องขอบเขต เกณฑ์ขั้นต่ำในการยอมรับคือ 0.70 สำหรับ Objaverse และ SimReady แบบคงที่, 0.90 สำหรับ CAD และ Articraft แบบแข็ง และ 0.90 ต่อชิ้นส่วนที่เคลื่อนที่หนึ่งชิ้นบวกกับข้อต่อที่ถูกต้องสำหรับแอสเซ็ตแบบขยับได้ สิ่งเหล่านี้เป็นตัวกรองคุณภาพที่รายงานโดยไปป์ไลน์ ไม่ใช่ผลการทดสอบที่วัดโดยอิสระ การเรียกใช้ที่ล้มเหลวหรือการตรวจสอบแบบคงที่จะทำให้โปรแกรมถูกตัดออก ระเบียบวิธีชุดข้อมูล

การใช้งาน ความพร้อมใช้งาน และทิศทางในอนาคต

ตัวแทนนี้เหมาะกับแอสเซ็ตหลายรูปแบบที่แก้ไขได้ กลไกแบบโต้ตอบ และการวิจัยเกี่ยวกับการสร้างงาน 3D ด้วย LLM GLB ส่งออกโพสปัจจุบัน วัสดุ และข้อมูลเมตาของข้อต่อใน node extras ตัวดูทั่วไปต้องใช้ตรรกะเพิ่มเติมเพื่อควบคุมข้อต่อเหล่านั้น URDF และ USDA รักษากลไกในตำแหน่งพัก โดย USDA ใช้ UsdGeom และ UsdPhysics OBJ/STL มีเพียงเมช การส่งออกจะปรับสเกลความยาวเป็นเมตร พารามิเตอร์มวล แรงเสียดทาน และการสั่งงานยังอยู่นอกคำอธิบายไดนามิกของไลบรารี ดังนั้นการผสานรวมกับการจำลองยังต้องพัฒนาต่อ การใช้งานการส่งออก

ไลบรารีนี้ใช้ Apache-2.0; รีลีสชุดข้อมูลใช้ CC BY 4.0 โดยยังคงใบอนุญาตและการระบุแหล่งที่มาของต้นฉบับไว้ ขอบเขตปัจจุบันเน้นวัตถุพื้นผิวแข็ง และการสร้างใหม่อาจละรายละเอียดเล็ก ๆ ผู้เขียนระบุว่ารูปทรงอินทรีย์เป็นงานในอนาคต โดยส่วนเพิ่มเติมที่มีแนวโน้มได้แก่ การเบลนด์แบบอิมพลิซิต การแบ่งย่อยกรงควบคุม sweep และ loft ที่มีหน้าตัดแปรผัน โครงกระดูกพร้อมการทำสกิน และการเลื่อนตำแหน่งแบบโพรซีเยอรัล พวกเขายังรับปากว่าจะเพิ่มโดเมนและเผยแพร่พรีพรินต์ในอนาคต สิ่งเหล่านี้ยังคงเป็นแผน การรีวิวนี้ตรวจสอบเอกสารอย่างเป็นทางการและซอร์สที่คอมมิต 0d589a5 เวอร์ชัน 1.6.2 เมื่อวันที่ 6 พฤศจิกายน 2026 และไม่ได้เรียกใช้เบนช์มาร์กด้วยตนเอง รีลีสอย่างเป็นทางการและข้อจำกัด

คำถามที่พบบ่อย

การติดตั้ง sand3D ทำให้ฉันได้โมเดลข้อความสู่ 3D หรือไม่?

มันติดตั้งไลบรารีสร้างแบบจำลอง Python LLM หรือบุคคลต้องเขียนโปรแกรมโดยใช้ API ของมัน ส่วน bpy จะเรียกใช้โปรแกรมเหล่านั้นเพื่อสร้างแอสเซ็ต ชุดข้อมูลมีตัวอย่างโค้ด ไม่ใช่ตัวสร้างที่ฝึกสำเร็จแบบสแตนด์อโลน แหล่งที่มา

ฉันจะสร้างแอสเซ็ตที่มีขนาดต่างออกไปได้อย่างไร?

แก้ไขมิติที่โปรแกรมเปิดให้ใช้ แล้วเรียกใช้โปรแกรมอีกครั้ง ความสัมพันธ์ของตำแหน่งและชิ้นส่วนที่มีชื่อทำให้ตรวจสอบการเปลี่ยนแปลงดังกล่าวได้ ความสัมพันธ์ที่เข้ารหัสไว้จริงในโปรแกรมเท่านั้นที่จะอัปเดตโดยอัตโนมัติ ดังนั้นควรตรวจสอบผลลัพธ์ที่สร้างใหม่ แหล่งที่มา

กลไกที่ส่งออกพร้อมสำหรับการจำลองฟิสิกส์ทันทีหรือไม่?

URDF และ USDA มีโครงสร้างข้อต่อ แต่การจำลองยังต้องใช้พารามิเตอร์ไดนามิก เช่น มวล แรงเสียดทาน และการสั่งงาน GLB จัดเก็บข้อมูลเมตาของข้อต่อไว้ใน extras แอปพลิเคชันต้องตีความข้อมูลดังกล่าวเพื่อทำให้กลไกเคลื่อนไหว แหล่งที่มา

บทความที่เกี่ยวข้อง