Información

sand3D: Recursos 3D que puedes leer y editar como código

sand3D permite a los modelos de lenguaje crear recursos 3D editables mediante un vocabulario compacto de Python, aprovechando bpy de Blender para el modelado paramétrico.

sand3D: Recursos 3D que puedes leer y editar como código

Aspectos destacados y resultados

sand3D proporciona a los modelos de lenguaje un vocabulario compacto para crear objetos 3D en Python. Desarrollado por Thibault Neveu y Andréa Loy en Sandflow, convierte los programas en piezas con nombre, materiales y ensamblajes articulados mediante bpy de Blender. Cambiar una dimensión y volver a ejecutar el programa reconstruye el recurso. La versión pública combina una biblioteca de modelado con conjuntos de datos; no proporciona un modelo de texto a 3D independiente ya entrenado. Repositorio oficial.

Las cinco tarjetas de conjuntos de datos enumeran 66,887 objetos de Objaverse, 24,495 objetos CAD, 9,209 objetos de Articraft, 2,334 objetos de SimReady y 3,169 registros de AutoMate: 106,094 en total, incluidos 10,456 objetos articulados. El recuento de AutoMate incluye 2,297 piezas individuales y 872 ensamblajes. Cada registro combina código ejecutable con un render y un recurso OpenUSD exportado. Se trata de una colección de recursos de origen reconstruidos, no de 100,000 mecanismos recién diseñados. Conjuntos de datos oficiales.

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

La comparación de tokens del repositorio utiliza o200k_base y excluye comentarios y cadenas de documentación. Las medianas de las proporciones base/sand3D son de 4.0× para Python de Blender escrito por LLM en 30 piezas CAD, 2.3× para 17 programas de CadQuery, 6.0× para 13 programas de FeatureScript y 2.0× para 12 programas de Articraft. Son comparaciones pequeñas y de fuentes diferentes frente a programas sand3D seleccionados; solo 9/30 líneas base de Blender construyen la pieza correcta, y Articraft también representa dinámicas. Respaldan una afirmación de compacidad, no una mejora universal de la calidad de generación. Detalles de la evaluación.

Cómo funciona

Para la autoría, el flujo de trabajo es: proporcionar la API a un LLM o escribir Python directamente; describir el ensamblaje y sus parámetros; construir y colocar piezas individuales; declarar juntas y materiales; ejecutar el programa en bpy; inspeccionar, revisar y exportar. La API, de aproximadamente 3,600 tokens, cabe en un prompt. La estructura de programa recomendada establece primero el plan del ensamblaje y luego implementa cada pieza por separado, manteniendo legibles las dimensiones y las relaciones de colocación. La representación editable es código de geometría ejecutable y una jerarquía de escena; la biblioteca no implementa codificación latente ni eliminación de ruido por difusión. Directrices de escritura; API.

El vocabulario de geometría avanza de perfiles 2D a sólidos: rect y circle definen secciones; extrude, revolve, sweep y loft construyen volúmenes; cut, pocket, shell y fillet los editan. Los objetos Frame describen la posición y la orientación, de modo que un componente puede colocarse sobre una cara con nombre o un anclaje local en lugar de una larga lista de coordenadas del mundo. group conserva mallas y materiales separados bajo un mismo padre; join realiza una fusión; assembly añade anclajes con nombre a una raíz agrupada. Estas distinciones conservan qué piezas pertenecen juntas y cuáles siguen siendo editables por separado. Implementación del ensamblaje.

El ejemplo de la lavadora concreta la mecánica: un gabinete sostiene un tambor, una puerta que contiene su aro, vidrio y asa, un cajón y un dial. Después de colocar estas piezas en reposo, joint registra el padre, el pivote, el eje, el tipo y el intervalo permitido. La puerta gira entre 0 y 143°, el cajón se desliza 0–200 mm, y el tambor y el dial giran continuamente. pose valida el valor solicitado y propaga las transformaciones mediante cinemática directa; no regenera la geometría. seat elimina el volumen ocupado por una pieza insertada en reposo, en lugar de calcular toda su envolvente de movimiento. Ejemplo; Implementación de Joint.

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

La producción del conjunto de datos añade un ciclo de reconstrucción agéntico: escribir código, ejecutarlo, comparar la superficie resultante con un recurso de origen existente y revisarlo. Los autores aún no han publicado el método completo de ese flujo. Las puntuaciones F del conjunto de datos utilizan una tolerancia del 1% de la diagonal de la caja delimitadora. Los umbrales de aceptación son 0.70 para Objaverse y SimReady estático, 0.90 para CAD y Articraft rígido, y 0.90 por pieza móvil más juntas correctas para recursos articulados. Son filtros de calidad informados por el flujo, no resultados de pruebas medidos de forma independiente. Una ejecución fallida o los controles estáticos excluyen un programa. Metodología del conjunto de datos.

Aplicaciones, disponibilidad y futuras direcciones

La representación es adecuada para variantes de recursos editables, mecanismos interactivos e investigación sobre autoría 3D basada en LLM. GLB exporta la pose actual, los materiales y los metadatos de las juntas en los extras de los nodos; los visores genéricos necesitan lógica adicional para operar esas juntas. URDF y USDA conservan el mecanismo en reposo, y USDA utiliza UsdGeom y UsdPhysics. OBJ/STL solo contienen mallas. La exportación escala las longitudes a metros. Los parámetros de masa, fricción y accionamiento quedan fuera de la descripción de dinámicas de la biblioteca, por lo que la integración con simulación aún requiere trabajo. Implementación de la exportación.

La biblioteca utiliza Apache-2.0; las versiones de los conjuntos de datos utilizan CC BY 4.0, conservando las licencias y atribuciones de origen. La cobertura actual se centra en objetos de superficies duras, y la reconstrucción puede omitir detalles pequeños. Los autores identifican las formas orgánicas como trabajo futuro, con posibles incorporaciones como mezcla implícita, subdivisión de jaula de control, barridos y lofts de sección variable, esqueletos con skinning y desplazamiento procedural. También prometen más dominios y un preprint próximo; por ahora siguen siendo planes. Esta reseña examinó la documentación oficial y el código fuente en el commit 0d589a5, versión 1.6.2, el 6 de noviembre de 2026; no ejecutó los benchmarks de forma independiente. Versión oficial y limitaciones.

Preguntas frecuentes

¿Instalar sand3D me proporciona un modelo de texto a 3D?

Instala una biblioteca de modelado de Python. Un LLM o una persona debe escribir programas utilizando su API; bpy los ejecuta para construir los recursos. Los conjuntos de datos proporcionan ejemplos de código, no un generador independiente ya entrenado. Fuente.

¿Cómo crearía un recurso de otro tamaño?

Edita las dimensiones expuestas por su programa y vuelve a ejecutarlo. Las relaciones de colocación y las piezas con nombre hacen que esos cambios se puedan inspeccionar. Solo las relaciones codificadas realmente en el programa se actualizan automáticamente, así que comprueba el resultado reconstruido. Fuente.

¿Los mecanismos exportados están listos de inmediato para la simulación física?

URDF y USDA contienen la estructura de las juntas, pero la simulación aún necesita parámetros dinámicos como masa, fricción y accionamiento. GLB almacena los metadatos de las juntas en extras; una aplicación debe interpretarlos para animar el mecanismo. Fuente.

Artículos relacionados