Analizy

sand3D: Zasoby 3D, które możesz czytać i edytować jak kod

sand3D umożliwia modelom językowym tworzenie edytowalnych zasobów 3D za pomocą zwięzłego słownika języka Python, wykorzystując bpy w Blenderze do modelowania parametrycznego.

sand3D: Zasoby 3D, które możesz czytać i edytować jak kod

Najważniejsze informacje i wyniki

sand3D zapewnia modelom językowym kompaktowy słownik do budowania obiektów 3D w Pythonie. Opracowany przez Thibault Neveu i Andréę Loy w Sandflow, przekształca programy w nazwane części, materiały i artykułowane zespoły za pośrednictwem bpy Blendera. Zmiana wymiaru i ponowne uruchomienie programu przebudowuje zasób. Publiczne wydanie łączy bibliotekę modelowania ze zbiorami danych; nie udostępnia samodzielnego wytrenowanego modelu tekst-do-3D. Oficjalne repozytorium.

Pięć kart zbiorów danych zawiera 66 887 obiektów Objaverse, 24 495 obiektów CAD, 9 209 obiektów Articraft, 2 334 obiekty SimReady i 3 169 rekordów AutoMate: łącznie 106 094, w tym 10 456 obiektów artykułowanych. Liczba dla AutoMate obejmuje 2 297 pojedynczych części i 872 zespoły. Każdy rekord łączy wykonywalny kod z renderem i wyeksportowanym zasobem OpenUSD. Jest to zbiór zrekonstruowanych zasobów źródłowych, a nie 100 000 nowo zaprojektowanych mechanizmów. Oficjalne zbiory danych.

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

Porównanie tokenów w repozytorium korzysta z o200k_base i wyklucza komentarze oraz docstringi. Mediany współczynników baseline/sand3D wynoszą 4,0× dla napisanych przez LLM skryptów Python Blendera dotyczących 30 części CAD, 2,3× dla 17 programów CadQuery, 6,0× dla 13 programów FeatureScript i 2,0× dla 12 programów Articraft. Są to niewielkie porównania o różnym pochodzeniu z kuratorowanymi programami sand3D; tylko 9/30 bazowych programów Blendera buduje właściwą część, a Articraft obejmuje również dynamikę. Wyniki potwierdzają tezę o kompaktowości, a nie uniwersalną poprawę jakości generowania. Szczegóły ewaluacji.

Jak to działa

W przypadku tworzenia autorskiego przepływ pracy wygląda następująco: udostępnij API LLM-owi lub napisz kod bezpośrednio w Pythonie; opisz zespół i jego parametry; zbuduj i umieść poszczególne części; zadeklaruj przeguby i materiały; wykonaj program w bpy; sprawdź, popraw i wyeksportuj. API liczące około 3 600 tokenów mieści się w promptcie. Zalecany układ programu najpierw określa plan zespołu, a następnie implementuje każdą część osobno, zachowując czytelność wymiarów i relacji rozmieszczenia. Edytowalna reprezentacja to wykonywalny kod geometrii i hierarchia sceny; biblioteka nie implementuje kodowania latentnego ani odszumiania dyfuzyjnego. Wytyczne dotyczące pisania; API.

Słownik geometrii przechodzi od profili 2D do brył: rect i circle definiują przekroje; extrude, revolve, sweep i loft budują objętości; cut, pocket, shell i fillet modyfikują je. Obiekty Frame opisują położenie i orientację, dzięki czemu komponent można umieścić na nazwanej ścianie lub lokalnym punkcie zakotwiczenia zamiast za pomocą długiej listy współrzędnych świata. group zachowuje oddzielne siatki i materiały pod jednym elementem nadrzędnym; join wykonuje scalenie; assembly dodaje nazwane punkty zakotwiczenia do zgrupowanego elementu głównego. Rozróżnienia te zachowują informację o tym, które elementy należą do siebie, a które pozostają osobno edytowalne. Implementacja zespołu.

Przykład pralki konkretyzuje mechanikę: obudowa podtrzymuje bęben, drzwiczki zawierające pierścień, szybę i uchwyt, szufladę oraz pokrętło. Po umieszczeniu tych części w położeniu spoczynkowym joint rejestruje element nadrzędny, punkt obrotu, oś, typ i dozwolony zakres. Drzwiczki obracają się w zakresie 0–143°, szuflada przesuwa się w zakresie 0–200 mm, a bęben i pokrętło obracają się bez ograniczeń. pose sprawdza żądaną wartość i propaguje transformacje za pomocą kinematyki prostej; nie generuje ponownie geometrii. seat usuwa objętość zajmowaną przez wstawioną część w spoczynku, zamiast obliczać cały zakres jej ruchu. Przykład; Implementacja przegubów.

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

Tworzenie zbioru danych dodaje agentową pętlę rekonstrukcji: napisz kod, wykonaj go, porównaj powstałą powierzchnię z istniejącym zasobem źródłowym i wprowadź poprawki. Autorzy nie opublikowali jeszcze pełnej metody tego potoku. Wyniki F dla zbioru danych wykorzystują tolerancję wynoszącą 1% przekątnej pudełka ograniczającego. Progi akceptacji wynoszą 0,70 dla Objaverse i statycznego SimReady, 0,90 dla CAD i sztywnego Articraft oraz 0,90 dla każdej ruchomej części plus poprawne przeguby dla zasobów artykułowanych. Są to zgłaszane przez potok filtry jakości, a nie niezależnie zmierzone wyniki testów. Nieudane wykonanie lub kontrole statyczne wykluczają program. Metodyka zbioru danych.

Zastosowania, dostępność i przyszłe kierunki

Reprezentacja nadaje się do edytowalnych wariantów zasobów, interaktywnych mechanizmów i badań nad tworzeniem 3D z użyciem LLM. GLB eksportuje bieżącą pozę, materiały i metadane przegubów w dodatkowych właściwościach węzłów; ogólne przeglądarki potrzebują dodatkowej logiki, aby obsługiwać te przeguby. URDF i USDA zachowują mechanizm w spoczynku, przy czym USDA używa UsdGeom i UsdPhysics. OBJ/STL zawierają wyłącznie siatki. Eksport skaluje długości do metrów. Parametry masy, tarcia i sterowania pozostają poza opisem dynamiki biblioteki, dlatego integracja z symulacją nadal wymaga pracy. Implementacja eksportu.

Biblioteka jest objęta licencją Apache-2.0; wydania zbiorów danych korzystają z CC BY 4.0, zachowując licencjonowanie źródeł i przypisanie autorstwa. Obecny zakres koncentruje się na obiektach o twardych powierzchniach, a rekonstrukcja może pomijać drobne szczegóły. Autorzy wskazują kształty organiczne jako kierunek przyszłych prac, z potencjalnymi rozszerzeniami obejmującymi niejawne mieszanie, podział siatki kontrolnej, przeciągnięcia i wyciągnięcia o zmiennym przekroju, szkielety ze skinningiem oraz proceduralne przesunięcia. Obiecują również więcej domen i nadchodzący preprint; pozostają to plany. Niniejszy przegląd obejmował oficjalną dokumentację i kod źródłowy z commita 0d589a5, w wersji 1.6.2, w dniu 6 listopada 2026 r.; nie uruchamiał niezależnie benchmarków. Oficjalne wydanie i ograniczenia.

FAQ

Czy instalacja sand3D daje mi model tekst-do-3D?

Instaluje bibliotekę modelowania w Pythonie. LLM lub człowiek musi napisać programy korzystające z jej API; bpy wykonuje je w celu zbudowania zasobów. Zbiory danych udostępniają przykłady kodu, a nie samodzielny wytrenowany generator. Źródło.

Jak utworzyć zasób o innym rozmiarze?

Edytuj wymiary udostępnione przez jego program i uruchom go ponownie. Relacje rozmieszczenia i nazwane części ułatwiają kontrolę takich zmian. Automatycznie aktualizują się tylko relacje faktycznie zakodowane w programie, dlatego należy sprawdzić przebudowany wynik. Źródło.

Czy wyeksportowane mechanizmy są od razu gotowe do symulacji fizycznej?

URDF i USDA przenoszą strukturę przegubów, ale symulacja nadal wymaga parametrów dynamiki, takich jak masa, tarcie i sterowanie. GLB przechowuje metadane przegubów w dodatkowych właściwościach; aplikacja musi je zinterpretować, aby animować mechanizm. Źródło.

Powiązane artykuły