sand3D: 3D-resurser som du kan läsa och redigera som kod
sand3D gör det möjligt för språkmodeller att skapa redigerbara 3D-tillgångar med hjälp av ett kompakt Python-språk, genom att utnyttja Blenders bpy för parametrisk modellering.

Höjdpunkter och resultat
sand3D ger språkmodeller ett kompakt ordförråd för att bygga 3D-objekt i Python. Det utvecklades av Thibault Neveu och Andréa Loy på Sandflow och omvandlar program till namngivna delar, material och ledade sammansättningar genom Blenders bpy. När en dimension ändras och programmet körs igen byggs tillgången om. Den offentliga utgåvan kombinerar ett modelleringsbibliotek med dataset; den tillhandahåller inte en fristående tränad text-till-3D-modell. Officiellt arkiv.
De fem datasetkorten listar 66,887 Objaverse-objekt, 24,495 CAD-objekt, 9,209 Articraft-objekt, 2,334 SimReady-objekt och 3,169 AutoMate-poster: totalt 106,094, inklusive 10,456 ledade objekt. AutoMates antal omfattar 2,297 individuella delar och 872 sammansättningar. Varje post kombinerar körbar kod med en rendering och en exporterad OpenUSD-tillgång. Detta är en samling rekonstruerade källtillgångar, inte 100,000 nydesignade mekanismer. Officiella dataset.
Arkivets tokenjämförelse använder o200k_base och utesluter kommentarer och docstrings. Medianförhållandena mellan baslinje och sand3D är 4.0× för LLM-skriven Blender-Python på 30 CAD-delar, 2.3× för 17 CadQuery-program, 6.0× för 13 FeatureScript-program och 2.0× för 12 Articraft-program. Detta är små jämförelser från olika källor mot kurerade sand3D-program; endast 9/30 Blender-baslinjer bygger rätt del, och Articraft representerar även dynamik. De stöder ett kompakthetsanspråk, inte en universell förbättring av genereringskvaliteten. Utvärderingsdetaljer.
Så fungerar det
För skapande är arbetsflödet följande: tillhandahåll API:et till en LLM eller skriv Python direkt; beskriv sammansättningen och dess parametrar; bygg och placera individuella delar; deklarera leder och material; kör programmet i bpy; inspektera, revidera och exportera. API:et på ungefär 3,600 tokens ryms i en prompt. Den rekommenderade programlayouten anger först sammansättningsplanen och implementerar sedan varje del separat, så att dimensioner och placeringsrelationer förblir läsbara. Den redigerbara representationen är körbar geometrikod och en scenhierarki; biblioteket implementerar inte latent kodning eller diffusionsavbrusning. Riktlinjer för skrivande; API.
Geometriordförrådet går från 2D-profiler till solider: rect och circle definierar sektioner; extrude, revolve, sweep och loft bygger volymer; cut, pocket, shell och fillet redigerar dem. Frame-objekt beskriver position och orientering, så att en komponent kan placeras på en namngiven yta eller lokal förankring i stället för en lång lista med världskoordinater. group bevarar separata nät och material under en överordnad nod; join utför en fusion; assembly lägger till namngivna förankringar till en grupperad rot. Dessa skillnader bevarar vilka delar som hör ihop och vilka som förblir separat redigerbara. Implementering av assembly.
Tvättmaskinsexemplet konkretiserar mekaniken: ett skåp stöder en trumma, en lucka som innehåller dess ring, glas och handtag, en låda och en ratt. Efter att dessa delar placerats i viloläge anger joint föräldern, vridpunkten, axeln, typen och det tillåtna intervallet. Luckan roterar genom 0–143°, lådan glider 0–200 mm och trumman och ratten roterar kontinuerligt. pose validerar det begärda värdet och fortplantar transformationer genom framåtriktad kinematik; den genererar inte geometrin på nytt. seat tar bort volymen som upptas av en insatt del i viloläge, i stället för att beräkna hela dess rörelseomfång. Exempel; Implementering av joint.
Datasetproduktionen lägger till en agentisk rekonstruktionsloop: skriv kod, kör den, jämför den resulterande ytan med en befintlig källtillgång och revidera. Författarna har ännu inte publicerat den fullständiga metoden för denna pipeline. Datasetets F-poäng använder en tolerans på 1 % av diagonalens längd i begränsningsboxen. Acceptansgränserna är 0.70 för Objaverse och statisk SimReady, 0.90 för CAD och stel Articraft samt 0.90 per rörlig del plus korrekta leder för ledade tillgångar. Detta är pipeline-rapporterade kvalitetsfilter, inte oberoende uppmätta testresultat. Misslyckad körning eller statiska kontroller utesluter ett program. Datasetmetodik.
Tillämpningar, tillgänglighet och framtida riktningar
Representationen lämpar sig för redigerbara tillgångsvarianter, interaktiva mekanismer och forskning om LLM-baserat 3D-skapande. GLB exporterar den aktuella posen, materialen och ledmetadata i node extras; generiska visningsprogram behöver ytterligare logik för att använda dessa leder. URDF och USDA bevarar mekanismen i viloläge, där USDA använder UsdGeom och UsdPhysics. OBJ/STL innehåller endast nät. Export skalar längder till meter. Parametrar för massa, friktion och aktivering ligger utanför bibliotekets dynamikbeskrivning, så integrationsarbete för simulering återstår. Exportimplementering.
Biblioteket använder Apache-2.0; datasetutgåvor använder CC BY 4.0 samtidigt som källans licensiering och attribution behålls. Den nuvarande täckningen fokuserar på hårda ytor, och rekonstruktionen kan utelämna små detaljer. Författarna identifierar organiska former som framtida arbete, med möjliga tillägg som implicit blandning, indelning med kontrollnät, svep och loft med varierande sektioner, skelett med skinning samt proceduriell förskjutning. De utlovar också fler domäner och ett kommande förtryck; detta är fortfarande planer. Denna granskning undersökte officiell dokumentation och källkod vid commit 0d589a5, version 1.6.2, den 6 november 2026; den körde inte benchmarkerna självständigt. Officiell utgåva och begränsningar.
Vanliga frågor
Ger installation av sand3D mig en text-till-3D-modell?
Den installerar ett Python-modelleringsbibliotek. En LLM eller en person måste skriva program med dess API; bpy kör dem för att bygga tillgångarna. Dataseten tillhandahåller kodexempel, inte en fristående tränad generator. Källa.
Hur skapar jag en tillgång i en annan storlek?
Redigera de dimensioner som exponeras av programmet och kör det igen. Placeringsrelationer och namngivna delar gör sådana ändringar möjliga att inspektera. Endast relationer som faktiskt kodats i programmet uppdateras automatiskt, så kontrollera det ombyggda resultatet. Källa.
Är exporterade mekanismer omedelbart redo för fysiksimulering?
URDF och USDA innehåller ledstrukturen, men simulering kräver fortfarande dynamikparametrar som massa, friktion och aktivering. GLB lagrar ledmetadata i extras; ett program måste tolka dem för att animera mekanismen. Källa.




