← Todos los articulos

USDKit: OpenUSD nativo en Swift en las plataformas de Apple

En la WWDC 2026, un ingeniero de Apple abrió una escena 3D en Swift, notó que faltaba un osciloscopio en la mesa de trabajo, incorporó el asset como una referencia ligera, lo movió a su lugar, lo etiquetó para las tecnologías de asistencia y exportó todo el conjunto siete veces más pequeño, y todo ello en apenas un puñado de líneas de código.1 Esa demostración es la tesis de USDKit: ahora Apple incluye un framework de sistema que convierte a OpenUSD en una API Swift de primer nivel, y no en una biblioteca de C++ a la que te enlazas a mano. Cargas una escena, compones assets entre sí, creas datos en los prims y exportas un paquete comprimido, usando patrones que los desarrolladores de Swift ya conocen.

Esta publicación recorre la historia de USDKit a partir de la sesión 285 de la WWDC 2026, «Discover USDKit and what’s new in OpenUSD». Todo lo que sigue proviene directamente de esa sesión.

TL;DR

  • USDKit aporta compatibilidad de primer nivel con USD a las apps Swift, «con una integración profunda de RealityKit y Spatial Preview ya incorporada», y atiende tanto a los desarrolladores de USD veteranos como a quienes recién llegan a Swift, allí donde se encuentren.1
  • El ciclo central consiste en abrir, modificar y exportar: crea una escena con un inicializador USDStage o abre una con USDStage.open (que lanza errores, así que usas try), referencia assets mediante composición, posiciónalos con addTransformOperation y luego escribe un exportPackage comprimido.1
  • Una limitación reconocida con honestidad: USDKit «no proporciona todas las API específicas de cada esquema», por lo que crear datos de accesibilidad implica aplicar el esquema AccessibilityAPI y luego crear los atributos de etiqueta y descripción por su nombre, usando los nombres definidos en la especificación.1
  • Un nuevo tipo de primitiva de USD, Particle Fields, «es capaz de describir Gaussian Splats así como otras representaciones», e incorpora los splats a la misma escena que las mallas y los materiales por primera vez.1
  • La compresión de malla sumada a la compresión de texturas AVIF hace que el asset promedio sea siete veces más pequeño; lo consigues a través de la API exportPackage, en Preview o mediante la herramienta de línea de comandos usdcrush.1

Qué cambió en OpenUSD este año

Watch on Apple Developer ↗

Lee, del equipo de Spatial Standards de Apple, presenta USDKit a partir del minuto 7:00, después de las actualizaciones de los cimientos de OpenUSD.

USD es la columna vertebral de las experiencias espaciales que construye Apple, y el proyecto de código abierto que lo sustenta, OpenUSD, fue creado originalmente por Pixar.1 USD no funciona en solitario. Se integra con MaterialX, surgido originalmente en Lucasfilm para la descripción de materiales, y, como novedad este año, con OpenVDB, surgido en DreamWorks, que suma los datos volumétricos a la mezcla.1 Apple actualizó las tres tecnologías en todas sus plataformas este año y, como miembro de la Academy Software Foundation, contribuye directamente a proyectos como MaterialX y OpenVDB.1

El trabajo de estandarización va mucho más allá del código. Como miembro fundador de la Alliance for OpenUSD, Apple «ayudó a publicar la primera especificación formal del núcleo de USD, con especificaciones de dominio para geometría, materiales y física ya en marcha».1 Esos grupos de trabajo son abiertos, y el mensaje de la sesión a los desarrolladores es claro: participa si quieres tener voz en la forma en que la industria intercambia contenido 3D.

La novedad más llamativa a nivel de primitivas es Particle Fields. Los Gaussian Splats capturan una escena «como millones de partículas difusas y superpuestas, cada una de las cuales codifica posición, color y opacidad para reconstruir fielmente entornos complejos del mundo real».1 En colaboración con socios de la Alliance for OpenUSD, entre ellos NVIDIA, Adobe y Pixar, Apple presentó Particle Fields como un nuevo tipo de primitiva de USD que «es capaz de describir Gaussian Splats así como otras representaciones de esta área de investigación en rápida evolución».1 El beneficio práctico: ahora los splats conviven «en la misma escena que tus mallas, materiales y otros datos 3D tradicionales por primera vez».1 El planteamiento es deliberadamente modesto. Particle Fields describe los splats y representaciones similares; es un contenedor para un área de investigación en evolución, no la especificación de un motor de renderizado de splats acabado.

El modelo mental de USDKit

USDKit aporta compatibilidad de primer nivel con USD a las apps Swift, con una integración profunda de RealityKit y Spatial Preview incorporada, y el objetivo de diseño funciona en ambos sentidos: los desarrolladores que ya conocen USD encuentran familiares los conceptos, y los desarrolladores de Swift que se inician en USD obtienen patrones y paradigmas que ya reconocen.1

Unos cuantos conceptos de USD anclan la API. Un Layer es un único archivo de datos. Las capas se combinan mediante una función llamada composición, y un Stage es «el resultado compuesto de una o varias capas», tu ventana a la escena completa.1 Todo lo que hay en una escena es un USD Prim. Cada prim tiene un Schema que define su tipo, además de Attributes que «contienen los datos reales» y Metadata que «describe información sobre el propio prim».1 Esas cuatro palabras, layer, stage, prim y schema, sostienen el resto del flujo de trabajo.

Abrir, modificar, exportar

La sesión recorre un ciclo concreto: cargar una escena, hacer modificaciones y exportar el resultado.1

Puedes crear una escena nueva en memoria con «un sencillo inicializador USDStage».1 Para trabajar con una escena existente, la abres pasando una URL de archivo a USDStage.open. Como eso implica acceder a un archivo, «puede lanzar un error, así que uso try».1 Con la escena cargada, el ingeniero recorre la jerarquía de la escena en busca del osciloscopio que falta, no encuentra nada y define «un nuevo prim de transformación en la ruta donde quiero que viva».1

Es con la composición donde el diseño justifica su valor. En lugar de copiar los datos de un asset dentro de la escena, le «añades una referencia ligera».1 El asset vive en su propio archivo, o capa, creado por otra persona, y tú lo incorporas: «Cada uno trabaja en su propia parte de la escena, y USD lo une todo», y cualquier actualización que haga el autor original «aparece automáticamente en mi escena también, porque solo estoy referenciando su archivo».1

El posicionamiento del asset referenciado usa addTransformOperation, que «se encarga de crear los atributos correctos en el prim y de actualizar el orden de transformación automáticamente».1 Después, el ingeniero establece el valor de traslación y el asset se desplaza hasta la mesa de trabajo. El patrón importa porque separa la intención (mover este prim) de la contabilidad de qué atributos de transformación existen y en qué orden.

Crear datos de accesibilidad, y una limitación honesta

Apple «ha impulsado la estandarización de los metadatos de accesibilidad directamente en USD», estableciendo cómo se definen las etiquetas y descripciones de asistencia en los objetos 3D en toda la industria, y la construyó con flexibilidad para que pueda evolucionar.1 Como los metadatos son nativos de USD, «puedes crearlos a través de cualquier API de USD», y Apple añadió compatibilidad directa en Blender y Maya para facilitar la adopción.1

Aquí está la salvedad que conviene exponer con claridad. Para añadir datos de accesibilidad, primero aplicas el esquema AccessibilityAPI al prim, lo que agrega los metadatos que indican que el esquema está presente. Luego, en palabras de la sesión, «dado que USDKit no proporciona todas las API específicas de cada esquema, creo los atributos de etiqueta y descripción directamente, asegurándome de usar los nombres de atributo correctos tal como se definen en la especificación».1 Así que USDKit te da una manera nativa de Swift de acceder a USD, pero no envuelve cada esquema con una API tipada. Para los esquemas que no cubre, creas los atributos por su nombre, y es tu responsabilidad escribir esos nombres correctamente según la especificación. Trata a USDKit como una puerta de primer nivel hacia USD, no como una garantía de cobertura tipada completa para cada esquema.

Una compresión que viene en la propia llamada de exportación

Las escenas USD de producción de alta calidad «pueden crecer hasta muchos gigabytes», y la escena ALab de la demostración es un ejemplo real.1 En colaboración con la Alliance for Open Media, Apple añadió «un códec de compresión de malla de última generación capaz de reducir el tamaño de las mallas hasta en un 90 %».1 Combinado con la compresión de texturas AVIF existente, «el asset promedio es ahora siete veces más pequeño, sin comprometer la calidad visual».1

El códec vive dentro del flujo de trabajo en lugar de junto a él. La compatibilidad con la compresión está «integrada directamente en la API exportPackage»: pasas la URL de salida al método exportPackage de la escena y luego activas la compresión de texturas y mallas a través de las opciones de exportación.1 Si no escribes código, «puedes obtener los mismos resultados directamente en Preview o mediante la herramienta de línea de comandos usdcrush».1 Apple está trabajando con Pixar para llevar esta compresión al proyecto OpenUSD, de modo que todo el ecosistema se beneficie.1

Dónde se encuentra USDKit con el resto de la plataforma

El framework impulsa experiencias que van mucho más allá de una sola app. Preview en Mac ahora realiza la edición 3D esencial, y tanto Preview como Quick Look «te dan a elegir el motor de renderizado»: RealityKit «aporta coherencia entre Mac, iPhone, iPad y Vision Pro», Storm «sigue disponible para quienes tienen necesidades de pipelines de producción existentes», y un Raytracer completamente nuevo apunta a las escenas más complejas con reflejos precisos, sombras nítidas e iluminación físicamente correcta.1 Los tres motores de renderizado admiten OpenPBR, «una mejora significativa respecto a USDPreviewSurface que aporta materiales más ricos y físicamente más precisos a tu flujo de trabajo».1

Preview se integra con el nuevo framework Spatial Preview en macOS 27, lo que crea una conexión directa entre tu Mac y Quick Look en Vision Pro para que las ediciones aparezcan en vivo en tu espacio, mientras que SharePlay reúne a todo un equipo en la misma escena.1 En la web, Safari introduce la etiqueta Model, que incrusta un modelo USD que se renderiza de forma interactiva en macOS e iOS y que, en visionOS, «se sale de la página y se presenta, de forma espacial, justo en el espacio del usuario».1

USDKit es la vía recomendada para los desarrolladores de apps en las plataformas de Apple porque lo proporciona el sistema y está profundamente integrado, y el resto de las experiencias de la sesión se construyen sobre él.1 Para necesidades avanzadas o multiplataforma que van más allá de lo que cubre USDKit, SwiftUSD ofrece enlaces de Swift de código abierto a través del Swift Package Manager, y las bases de código en C++ pueden incrustar OpenUSD directamente como un framework. Las tres se asientan sobre los mismos cimientos, de modo que «tus archivos USD se mueven libremente entre todas ellas».1

Una distinción que conviene retener: esta es la vía programática. Crear escenas a mano en una herramienta visual es tarea de Reality Composer Pro (consulta el modelo mental de RealityKit y Reality Composer Pro); USDKit es la API a la que recurres cuando es el código, y no un lienzo, el que hace el trabajo.

Cómo empezar

La sesión se condensa en un recorrido breve que puedes seguir hoy mismo:

  1. Abre una escena. Crea una en memoria con el inicializador USDStage, o abre una escena existente pasando una URL de archivo a USDStage.open dentro de un try, ya que el acceso al archivo puede lanzar un error.1
  2. Compón, no copies. Define un prim de transformación en la ruta que quieras y luego añade una referencia ligera a una capa externa para que las actualizaciones del autor original fluyan automáticamente hacia tu escena.1
  3. Posiciona con intención. Llama a addTransformOperation para crear los atributos correctos y el orden de transformación, y luego establece el valor de traslación.1
  4. Crea la accesibilidad con honestidad. Aplica el esquema AccessibilityAPI y luego crea los atributos de etiqueta y descripción con los nombres que define la especificación, porque USDKit no proporciona todas las API específicas de cada esquema.1
  5. Exporta en pequeño. Llama a exportPackage sobre la escena con la compresión de texturas y mallas activada, o ejecuta usdcrush si no escribes código.1

FAQ

¿Qué es USDKit?

USDKit es un nuevo framework de sistema de Apple que aporta compatibilidad de primer nivel con OpenUSD a las apps Swift, con una integración profunda de RealityKit y Spatial Preview incorporada. Expone los conceptos de USD (capas, escenas, prims, esquemas) a través de patrones de Swift, de modo que puedes abrir una escena, componer assets, crear datos y exportar, sin enlazarte a mano con una biblioteca de C++. Apple lo recomienda como punto de partida para los desarrolladores de apps en sus plataformas.1

¿Cómo cargo y modifico una escena USD con USDKit?

Abre una escena pasando una URL de archivo a USDStage.open dentro de un try (el acceso al archivo puede lanzar un error), o crea una escena nueva con un inicializador USDStage. Para añadir un asset externo, define un prim de transformación y añade una referencia ligera a su capa en lugar de copiar sus datos. Posiciónalo llamando a addTransformOperation, que configura los atributos correctos y el orden de transformación, y luego establece el valor de traslación.1

¿USDKit cubre todos los esquemas de USD?

No. La sesión lo afirma con claridad: USDKit «no proporciona todas las API específicas de cada esquema». Para la accesibilidad, por ejemplo, aplicas el esquema AccessibilityAPI y luego creas directamente los atributos de etiqueta y descripción usando los nombres de atributo exactos definidos en la especificación. USDKit es una puerta de Swift de primer nivel hacia USD, no un envoltorio tipado en torno a cada esquema.1

¿Qué son Particle Fields y Gaussian Splats en OpenUSD?

Particle Fields es un nuevo tipo de primitiva de USD que Apple presentó junto con socios de la Alliance for OpenUSD, entre ellos NVIDIA, Adobe y Pixar. «Es capaz de describir Gaussian Splats así como otras representaciones» de esta área de investigación. Los Gaussian Splats capturan una escena como millones de partículas superpuestas que codifican posición, color y opacidad. Particle Fields permite que los splats convivan en la misma escena que las mallas y los materiales por primera vez.1

¿Cuánto puede reducir USDKit un asset USD?

Un códec de compresión de malla desarrollado con la Alliance for Open Media puede reducir el tamaño de las mallas hasta en un 90 por ciento y, combinado con la compresión de texturas AVIF, el asset promedio resulta unas siete veces más pequeño sin comprometer la calidad visual. Activa la compresión de texturas y mallas a través de la API exportPackage, en Preview o con la herramienta de línea de comandos usdcrush.1


USDKit es la contrapartida programática de la historia de creación visual del modelo mental de RealityKit y Reality Composer Pro, y alimenta las mismas escenas que dan vida a las novedades de visionOS 27 y al modelo mental espacial de RealityKit, más amplio. En el lado web, esos mismos assets USD se renderizan a través del elemento HTML nativo <model> que Safari introdujo este año. El centro de toda la serie es la Apple Ecosystem Series.

References


  1. Apple, WWDC 2026 session 285, Discover USDKit and what’s new in OpenUSD. Source for the OpenUSD foundation updates (MaterialX, OpenVDB, the first formal core USD specification and Alliance for OpenUSD membership), the Particle Fields primitive type describing Gaussian Splats and similar representations, the USDKit framework and its RealityKit and Spatial Preview integration, the layer/stage/prim/schema concepts, the open-modify-export loop (USDStage initializer, USDStage.open with try, Composition references, addTransformOperation, exportPackage), the accessibility workflow (AccessibilityAPI schema, authoring label and description attributes by name, and the statement that USDKit “does not provide all the schema-specific APIs”), mesh and AVIF texture compression (up to 90 percent mesh reduction, average asset seven times smaller, via exportPackage, Preview, or usdcrush), the Preview renderer choices (RealityKit, Storm, Raytracer) and OpenPBR over USDPreviewSurface, the Spatial Preview framework on macOS 27, the Safari Model tag, and the SwiftUSD and C++ framework alternatives. 

Artículos relacionados

Lo que dijo el equipo de Swift de Apple en el lab de la WWDC26

El Swift Group Lab de Apple en la WWDC26 se publicó sin subtítulos. Lo transcribimos en local. Respuestas francas de los…

14 min de lectura

RealityKit y Reality Composer Pro 3 en 2026

La WWDC26 maduró el pipeline espacial de Apple: iluminación y tela en RealityKit, además de un Reality Composer Pro 3 in…

15 min de lectura

The Robots Are Taking Exams in My Search Console

First-party GSC data: 91% of 3.8M impressions fail a human-query filter. Exam questions, pasted errors, and agent sweeps…

10 min de lectura