sand3D: Aset 3D yang Dapat Anda Baca dan Edit sebagai Kode
sand3D memungkinkan model bahasa membuat aset 3D yang dapat diedit menggunakan kosakata Python yang ringkas, dengan memanfaatkan bpy milik Blender untuk pemodelan parametrik.

Sorotan dan Hasil
sand3D memberi model bahasa kosakata ringkas untuk membangun objek 3D dalam Python. Dikembangkan oleh Thibault Neveu dan Andréa Loy di Sandflow, sand3D mengubah program menjadi bagian-bagian bernama, material, dan rakitan berartikulasi melalui bpy milik Blender. Mengubah suatu dimensi lalu menjalankan ulang program akan membangun kembali aset tersebut. Rilis publik ini menggabungkan pustaka pemodelan dengan dataset; rilis ini tidak menyediakan model teks-ke-3D terlatih yang berdiri sendiri. Repositori resmi.
Lima kartu dataset mencantumkan 66.887 objek Objaverse, 24.495 objek CAD, 9.209 objek Articraft, 2.334 objek SimReady, dan 3.169 rekaman AutoMate: total 106.094, termasuk 10.456 objek berartikulasi. Jumlah AutoMate mencakup 2.297 bagian individual dan 872 rakitan. Setiap rekaman memasangkan kode yang dapat dieksekusi dengan render dan aset OpenUSD yang diekspor. Ini adalah kumpulan aset sumber yang direkonstruksi, bukan 100.000 mekanisme yang baru dirancang. Dataset resmi.
Perbandingan token dalam repositori menggunakan o200k_base dan mengecualikan komentar serta docstring. Rasio median baseline/sand3D adalah 4,0× untuk Python Blender yang ditulis LLM pada 30 bagian CAD, 2,3× untuk 17 program CadQuery, 6,0× untuk 13 program FeatureScript, dan 2,0× untuk 12 program Articraft. Ini adalah perbandingan kecil dengan sumber yang berbeda terhadap program sand3D yang dikurasi; hanya 9/30 baseline Blender yang membangun bagian yang benar, dan Articraft juga merepresentasikan dinamika. Hasil ini mendukung klaim keringkasan, bukan peningkatan kualitas generasi yang universal. Detail evaluasi.
Cara Kerjanya
Untuk penyusunan, alurnya adalah: menyediakan API kepada LLM atau menulis Python secara langsung; mendeskripsikan rakitan dan parameternya; membangun dan menempatkan bagian-bagian individual; mendeklarasikan sambungan dan material; mengeksekusi program dalam bpy; memeriksa, merevisi, dan mengekspor. API yang berukuran kira-kira 3.600 token ini dapat dimuat dalam sebuah prompt. Tata letak program yang direkomendasikan menyatakan rencana rakitan terlebih dahulu, lalu mengimplementasikan setiap bagian secara terpisah, sehingga dimensi dan hubungan penempatan tetap mudah dibaca. Representasi yang dapat diedit adalah kode geometri yang dapat dieksekusi dan hierarki scene; pustaka ini tidak mengimplementasikan pengodean laten atau denoising difusi. Panduan penulisan; API.
Kosakata geometri bergerak dari profil 2D ke solid: rect dan circle mendefinisikan bagian; extrude, revolve, sweep, dan loft membangun volume; cut, pocket, shell, dan fillet mengeditnya. Objek frame mendeskripsikan posisi dan orientasi, sehingga sebuah komponen dapat ditempatkan pada bidang bernama atau anchor lokal, bukan melalui daftar panjang koordinat dunia. group mempertahankan mesh dan material terpisah di bawah satu parent; join melakukan fusi; assembly menambahkan anchor bernama ke root yang dikelompokkan. Perbedaan ini mempertahankan bagian mana yang tergabung dan mana yang tetap dapat diedit secara terpisah. Implementasi assembly.
Contoh mesin cuci membuat mekanismenya konkret: sebuah kabinet menopang drum, pintu yang berisi ring, kaca, dan pegangan, laci, serta kenop. Setelah menempatkan bagian-bagian ini pada posisi diam, joint mencatat parent, pivot, sumbu, tipe, dan rentang yang diizinkan. Pintu berputar melalui 0–143°, laci bergeser 0–200 mm, sedangkan drum dan kenop berputar terus-menerus. pose memvalidasi nilai yang diminta dan meneruskan transformasi melalui kinematika maju; pose tidak membuat ulang geometri. seat menghapus volume yang ditempati oleh bagian yang dimasukkan pada posisi diam, bukan menghitung seluruh selubung geraknya. Contoh; Implementasi joint.
Produksi dataset menambahkan loop rekonstruksi agentik: menulis kode, mengeksekusinya, membandingkan permukaan yang dihasilkan dengan aset sumber yang ada, lalu merevisi. Para penulis belum memublikasikan metode lengkap pipeline tersebut. F-score dataset menggunakan toleransi 1% dari diagonal bounding box. Ambang penerimaan adalah 0,70 untuk Objaverse dan SimReady statis, 0,90 untuk CAD dan Articraft kaku, serta 0,90 per bagian bergerak ditambah joint yang benar untuk aset berartikulasi. Ini adalah filter kualitas yang dilaporkan pipeline, bukan hasil pengujian yang diukur secara independen. Eksekusi atau pemeriksaan statis yang gagal mengecualikan suatu program. Metodologi dataset.
Aplikasi, Ketersediaan, dan Arah Masa Depan
Representasi ini cocok untuk varian aset yang dapat diedit, mekanisme interaktif, dan penelitian tentang penyusunan 3D berbasis LLM. GLB mengekspor pose, material, dan metadata joint saat ini dalam extras node; viewer generik memerlukan logika tambahan untuk mengoperasikan joint tersebut. URDF dan USDA mempertahankan mekanisme pada posisi diam, dengan USDA menggunakan UsdGeom dan UsdPhysics. OBJ/STL hanya membawa mesh. Ekspor menskalakan panjang ke meter. Parameter massa, gesekan, dan aktuasi tetap berada di luar deskripsi dinamika pustaka, sehingga integrasi simulasi masih memerlukan pengembangan. Implementasi ekspor.
Pustaka ini berlisensi Apache-2.0; rilis dataset menggunakan CC BY 4.0 dengan tetap mempertahankan lisensi dan atribusi sumber. Cakupan saat ini berpusat pada objek hard-surface, dan rekonstruksi dapat menghilangkan detail kecil. Para penulis mengidentifikasi bentuk organik sebagai pekerjaan mendatang, dengan tambahan kandidat yang mencakup blending implisit, subdivisi control-cage, sweep dan loft dengan bagian yang bervariasi, skeleton dengan skinning, serta displacement prosedural. Mereka juga menjanjikan lebih banyak domain dan preprint yang akan datang; semua ini masih berupa rencana. Tinjauan ini memeriksa dokumentasi resmi dan sumber pada commit 0d589a5, versi 1.6.2, pada 6 November 2026; tinjauan ini tidak menjalankan benchmark secara independen. Rilis resmi dan keterbatasan.
FAQ
Apakah menginstal sand3D memberi saya model teks-ke-3D?
Yang diinstal adalah pustaka pemodelan Python. LLM atau seseorang harus menulis program menggunakan API-nya; bpy mengeksekusinya untuk membangun aset. Dataset menyediakan contoh kode, bukan generator terlatih yang berdiri sendiri. Sumber.
Bagaimana cara membuat aset dengan ukuran berbeda?
Edit dimensi yang diekspos oleh programnya lalu jalankan ulang. Hubungan penempatan dan bagian bernama membuat perubahan tersebut dapat diperiksa. Hanya hubungan yang benar-benar dikodekan dalam program yang diperbarui secara otomatis, jadi periksa hasil pembangunan ulangnya. Sumber.
Apakah mekanisme yang diekspor langsung siap untuk simulasi fisika?
URDF dan USDA membawa struktur joint, tetapi simulasi tetap memerlukan parameter dinamika seperti massa, gesekan, dan aktuasi. GLB menyimpan metadata joint dalam extras; aplikasi harus menafsirkannya untuk menganimasikan mekanisme. Sumber.




