USDKit: Swift-natives OpenUSD auf Apple-Plattformen
Auf der WWDC 2026 öffnete ein Apple-Ingenieur eine 3D-Szene in Swift, bemerkte ein fehlendes Oszilloskop auf der Werkbank, zog das Asset als leichtgewichtige Referenz herein, verschob es an seinen Platz, kennzeichnete es für assistive Technologien und exportierte das Ganze siebenmal kleiner, alles in wenigen Zeilen Code.1 Diese Demo ist die zentrale These von USDKit: Apple liefert nun ein System-Framework, das OpenUSD zu einer erstklassigen Swift-API macht, statt zu einer C++-Bibliothek, die man von Hand anbindet. Sie laden eine Stage, setzen Assets zusammen, verfassen Daten an Prims und exportieren ein komprimiertes Package, und das mit Mustern, die Swift-Entwickler bereits kennen.
Dieser Beitrag erzählt die Geschichte von USDKit anhand der WWDC-2026-Session 285, „Discover USDKit and what’s new in OpenUSD”. Alles Folgende stammt direkt aus dieser Session.
TL;DR
USDKitbringt erstklassige USD-Unterstützung in Swift-Apps, „mit tiefer Integration für RealityKit und Spatial Preview von Haus aus”, und holt sowohl bestehende USD-Entwickler als auch Swift-Neulinge dort ab, wo sie stehen.1- Die Kernschleife lautet Öffnen, Ändern, Exportieren: Erstellen Sie eine Stage mit einem
USDStage-Initializer oder öffnen Sie eine mitUSDStage.open(das wirft Fehler, also nutzen Sietry), referenzieren Sie Assets über Composition, positionieren Sie sie mitaddTransformOperationund schreiben Sie schließlich ein komprimiertesexportPackage.1 - Eine ehrliche Einschränkung:
USDKit„stellt nicht alle schema-spezifischen APIs bereit”, weshalb das Verfassen von Barrierefreiheit bedeutet, dasAccessibilityAPI-Schema anzuwenden und anschließend die Label- und Beschreibungsattribute namentlich zu erstellen, und zwar mit den in der Spezifikation definierten Namen.1 - Ein neuer USD-Primitivtyp,
Particle Fields, „ist in der Lage, Gaussian Splats sowie weitere Repräsentationen zu beschreiben” und bringt Splats erstmals in dieselbe Szene wie Meshes und Materialien.1 - Mesh-Komprimierung plus AVIF-Texturkomprimierung macht das durchschnittliche Asset siebenmal kleiner; Sie erhalten dies über die
exportPackage-API, in der Vorschau oder über das Kommandozeilenwerkzeugusdcrush.1
Was sich dieses Jahr an OpenUSD geändert hat
Lee aus Apples Spatial-Standards-Team stellt USDKit bei 7:00 vor, im Anschluss an die Updates zur OpenUSD-Grundlage.
USD ist das Rückgrat der räumlichen Erlebnisse, die Apple baut, und das dahinterstehende Open-Source-Projekt, OpenUSD, wurde ursprünglich von Pixar vorangetrieben.1 USD arbeitet nicht allein. Es integriert sich mit MaterialX, ursprünglich von Lucasfilm für Materialbeschreibungen, und dieses Jahr neu hinzugekommen OpenVDB, ursprünglich von DreamWorks, das volumetrische Daten ins Spiel bringt.1 Apple hat alle drei dieses Jahr auf seinen Plattformen aktualisiert, und als Mitglied der Academy Software Foundation trägt das Unternehmen direkt zu Projekten wie MaterialX und OpenVDB bei.1
Die Standardisierungsarbeit reicht tiefer als nur der Code. Als Gründungsmitglied der Alliance for OpenUSD hat Apple „dazu beigetragen, die erste formale Spezifikation für den Kern von USD zu veröffentlichen, während Domänenspezifikationen für Geometrie, Materialien und Physik bereits in Arbeit sind”.1 Diese Arbeitsgruppen sind offen, und die Botschaft der Session an Entwickler lautet, sich zu beteiligen, wenn sie ein Mitspracherecht darüber haben wollen, wie die Branche 3D-Inhalte austauscht.
Die auffälligste Neuigkeit auf Primitivebene ist Particle Fields. Gaussian Splats erfassen eine Szene „als Millionen unscharfer, sich überlappender Partikel, von denen jeder Position, Farbe und Deckkraft kodiert, um komplexe reale Umgebungen originalgetreu zu rekonstruieren”.1 In Zusammenarbeit mit Partnern der Alliance for OpenUSD, darunter NVIDIA, Adobe und Pixar, führte Apple Particle Fields als neuen USD-Primitivtyp ein, der „in der Lage ist, Gaussian Splats sowie weitere Repräsentationen aus diesem sich rasch entwickelnden Forschungsbereich zu beschreiben”.1 Der praktische Nutzen: Splats leben nun „erstmals in derselben Szene wie Ihre Meshes, Materialien und andere traditionelle 3D-Daten”.1 Die Formulierung ist bewusst zurückhaltend. Particle Fields beschreibt Splats und ähnliche Repräsentationen; es ist ein Container für einen sich entwickelnden Forschungsbereich, keine fertige Spezifikation für einen Splat-Renderer.
Das mentale Modell von USDKit
USDKit bringt erstklassige USD-Unterstützung in Swift-Apps mit tiefer Integration für RealityKit und Spatial Preview von Haus aus, und das Designziel wirkt in beide Richtungen: Entwickler, die USD bereits kennen, finden die Konzepte vertraut, und Swift-Entwickler, die neu bei USD sind, erhalten Muster und Paradigmen, die sie bereits wiedererkennen.1
Einige USD-Konzepte verankern die API. Ein Layer ist eine einzelne Datendatei. Layer werden über eine Funktion namens Composition kombiniert, und eine Stage ist „das zusammengesetzte Ergebnis aus einem oder mehreren Layern”, Ihr Fenster in die gesamte Szene.1 Alles in einer Szene ist ein USD-Prim. Jedes Prim besitzt ein Schema, das seinen Typ definiert, dazu Attribute, die „die eigentlichen Daten enthalten”, und Metadaten, die „Informationen über das Prim selbst beschreiben”.1 Diese vier Begriffe, Layer, Stage, Prim und Schema, tragen den restlichen Workflow.
Öffnen, Ändern, Exportieren
Die Session durchläuft eine konkrete Schleife: eine Stage laden, Änderungen vornehmen und das Ergebnis exportieren.1
Sie können eine frische Stage im Speicher mit „einem einfachen USDStage-Initializer” erstellen.1 Um mit einer bestehenden Szene zu arbeiten, öffnen Sie diese, indem Sie eine Datei-URL an USDStage.open übergeben. Da dabei auf Dateien zugegriffen wird, „kann es einen Fehler werfen, daher verwende ich try”.1 Mit der geladenen Szene durchläuft der Ingenieur die Hierarchie der Stage auf der Suche nach dem fehlenden Oszilloskop, findet nichts und definiert „ein neues Transform-Prim an dem Pfad, an dem es liegen soll”.1
Bei der Composition zahlt sich das Design aus. Statt die Daten eines Assets in die Stage zu kopieren, „fügen Sie eine leichtgewichtige Referenz darauf hinzu”.1 Das Asset lebt in seiner eigenen Datei, also einem Layer, der von jemand anderem verfasst wurde, und Sie ziehen es herein: „Jeder arbeitet an seinem eigenen Teil der Szene, und USD fügt alles zusammen”, und alle Änderungen, die der ursprüngliche Autor vornimmt, „erscheinen automatisch auch in meiner Stage, weil ich seine Datei nur referenziere”.1
Das Positionieren des referenzierten Assets erfolgt über addTransformOperation, das „sich automatisch darum kümmert, die richtigen Attribute am Prim zu erstellen und die Transform-Reihenfolge zu aktualisieren”.1 Danach setzt der Ingenieur den Translationswert, und das Asset rückt auf die Werkbank. Das Muster ist wichtig, weil es die Absicht (dieses Prim verschieben) von der Buchführung darüber trennt, welche Transform-Attribute existieren und in welcher Reihenfolge.
Barrierefreiheit verfassen, und eine ehrliche Einschränkung
Apple hat „die Standardisierung von Metadaten zur Barrierefreiheit direkt in USD vorangetrieben” und festgelegt, wie assistive Labels und Beschreibungen branchenweit an 3D-Objekten definiert werden, und das Ganze flexibel gestaltet, damit es sich weiterentwickeln kann.1 Weil die Metadaten nativ in USD enthalten sind, „können Sie sie über jede beliebige USD-API verfassen”, und Apple hat direkte Unterstützung in Blender und Maya hinzugefügt, um die Einführung zu erleichtern.1
Hier ist der Vorbehalt, der klar benannt werden sollte. Um Daten zur Barrierefreiheit hinzuzufügen, wenden Sie zunächst das AccessibilityAPI-Schema auf das Prim an, wodurch die Metadaten ergänzt werden, die signalisieren, dass das Schema vorhanden ist. Dann, in den Worten der Session: „Da USDKit nicht alle schema-spezifischen APIs bereitstellt, erstelle ich die Label- und Beschreibungsattribute direkt und achte darauf, die korrekten Attributnamen zu verwenden, wie sie in der Spezifikation definiert sind.”1 USDKit gibt Ihnen also einen Swift-nativen Weg, in USD hineinzugreifen, aber es umhüllt nicht jedes Schema mit einer typisierten API. Für Schemata, die es nicht abdeckt, verfassen Sie Attribute namentlich und sind dafür verantwortlich, diese Namen gemäß der Spezifikation korrekt zu treffen. Betrachten Sie USDKit als erstklassige Tür in USD, nicht als Garantie für vollständige typisierte Abdeckung jedes Schemas.
Komprimierung, die im Export-Aufruf mitgeliefert wird
Hochwertige Produktions-USD-Szenen „können auf viele Gigabyte anwachsen”, und die ALab-Szene in der Demo ist ein anschauliches Beispiel.1 In Zusammenarbeit mit der Alliance for Open Media hat Apple „einen hochmodernen Codec zur Mesh-Komprimierung hinzugefügt, der Mesh-Größen um bis zu 90 % reduzieren kann”.1 Kombiniert mit der bestehenden AVIF-Texturkomprimierung ist „das durchschnittliche Asset nun siebenmal kleiner, ohne Einbußen bei der visuellen Qualität”.1
Der Codec lebt innerhalb des Workflows statt daneben. Die Unterstützung für Komprimierung ist „direkt in die exportPackage-API eingebaut”: Sie übergeben die Ausgabe-URL an die exportPackage-Methode der Stage und aktivieren dann Textur- und Mesh-Komprimierung über die Exportoptionen.1 Wenn Sie keinen Code schreiben, „erzielen Sie dieselben Ergebnisse direkt in der Vorschau oder über das Kommandozeilenwerkzeug usdcrush”.1 Apple arbeitet mit Pixar daran, diese Komprimierung in das OpenUSD-Projekt zu bringen, damit das gesamte Ökosystem profitiert.1
Wo USDKit auf den Rest der Plattform trifft
Das Framework treibt Erlebnisse an, die weit über eine einzelne App hinausreichen. Die Vorschau auf dem Mac beherrscht nun grundlegende 3D-Bearbeitung, und Vorschau und Quick Look „geben Ihnen die Wahl des Renderers”: RealityKit „sorgt für Konsistenz über Mac, iPhone, iPad und Vision Pro hinweg”, Storm „bleibt für jene verfügbar, die bestehende Anforderungen an Produktionspipelines haben”, und ein brandneuer Raytracer zielt mit präzisen Reflexionen, exakten Schatten und physikalisch korrekter Beleuchtung auf die komplexesten Szenen.1 Alle drei Renderer unterstützen OpenPBR, „ein bedeutendes Upgrade gegenüber USDPreviewSurface, das reichhaltigere, physikalisch genauere Materialien in Ihren Workflow bringt”.1
Die Vorschau integriert sich mit dem neuen Spatial Preview-Framework unter macOS 27 und schafft eine direkte Verbindung zwischen Ihrem Mac und Quick Look auf der Vision Pro, sodass Bearbeitungen live in Ihrem Raum erscheinen, während SharePlay ein ganzes Team in dieselbe Szene holt.1 Im Web führt Safari den Model-Tag ein, der ein USD-Modell einbettet, das unter macOS und iOS interaktiv rendert und unter visionOS „aus der Seite ausbricht und räumlich, direkt im Raum des Nutzers, präsentiert wird”.1
USDKit ist der empfohlene Weg für App-Entwickler auf Apple-Plattformen, weil es vom System bereitgestellt und tief integriert ist, und die übrigen Erlebnisse der Session bauen darauf auf.1 Für fortgeschrittene oder plattformübergreifende Anforderungen, die über das hinausgehen, was USDKit abdeckt, bietet SwiftUSD quelloffene Swift-Bindings über den Swift Package Manager, und C++-Codebasen können OpenUSD direkt als Framework einbetten. Alle drei sitzen auf derselben Grundlage, sodass „Ihre USD-Dateien sich frei zwischen ihnen bewegen”.1
Eine Unterscheidung, die man im Hinterkopf behalten sollte: Dies ist der programmatische Weg. Szenen von Hand in einem visuellen Werkzeug zu verfassen, ist die Aufgabe von Reality Composer Pro (siehe das mentale Modell von RealityKit und Reality Composer Pro); USDKit ist die API, zu der Sie greifen, wenn Code und nicht eine Leinwand die Arbeit erledigt.
So fangen Sie an
Die Session lässt sich zu einem kurzen Pfad verdichten, dem Sie schon heute folgen können:
- Öffnen Sie eine Stage. Erstellen Sie eine im Speicher mit dem
USDStage-Initializer oder öffnen Sie eine bestehende Szene, indem Sie eine Datei-URL anUSDStage.openinnerhalb einestryübergeben, da der Dateizugriff einen Fehler werfen kann.1 - Komponieren, nicht kopieren. Definieren Sie ein Transform-Prim an dem gewünschten Pfad und fügen Sie dann eine leichtgewichtige Referenz auf einen externen Layer hinzu, sodass die Änderungen des ursprünglichen Autors automatisch in Ihre Stage einfließen.1
- Positionieren Sie mit Absicht. Rufen Sie
addTransformOperationauf, um die richtigen Attribute und die Transform-Reihenfolge zu erstellen, und setzen Sie dann den Translationswert.1 - Verfassen Sie Barrierefreiheit ehrlich. Wenden Sie das
AccessibilityAPI-Schema an und erstellen Sie dann die Label- und Beschreibungsattribute mit den in der Spezifikation definierten Namen, denn USDKit stellt nicht jede schema-spezifische API bereit.1 - Exportieren Sie klein. Rufen Sie
exportPackagean der Stage mit aktivierter Textur- und Mesh-Komprimierung auf oder führen Sieusdcrushaus, wenn Sie keinen Code schreiben.1
FAQ
Was ist USDKit?
USDKit ist ein neues System-Framework von Apple, das erstklassige OpenUSD-Unterstützung in Swift-Apps bringt, mit tiefer Integration für RealityKit und Spatial Preview von Haus aus. Es macht USD-Konzepte (Layer, Stages, Prims, Schemata) über Swift-Muster zugänglich, sodass Sie eine Stage öffnen, Assets zusammensetzen, Daten verfassen und exportieren können, ohne eine C++-Bibliothek von Hand anzubinden. Apple empfiehlt es als Ausgangspunkt für App-Entwickler auf seinen Plattformen.1
Wie lade und ändere ich eine USD-Szene mit USDKit?
Öffnen Sie eine Szene, indem Sie eine Datei-URL an USDStage.open innerhalb eines try übergeben (der Dateizugriff kann einen Fehler werfen), oder erstellen Sie eine frische Stage mit einem USDStage-Initializer. Um ein externes Asset hinzuzufügen, definieren Sie ein Transform-Prim und fügen eine leichtgewichtige Referenz auf dessen Layer hinzu, statt seine Daten zu kopieren. Positionieren Sie es durch den Aufruf von addTransformOperation, das die richtigen Attribute und die Transform-Reihenfolge einrichtet, und setzen Sie dann den Translationswert.1
Deckt USDKit jedes USD-Schema ab?
Nein. Die Session stellt unmissverständlich fest, dass USDKit „nicht alle schema-spezifischen APIs bereitstellt”. Für Barrierefreiheit etwa wenden Sie das AccessibilityAPI-Schema an und verfassen anschließend die Label- und Beschreibungsattribute direkt, mit den exakten Attributnamen, die in der Spezifikation definiert sind. USDKit ist eine erstklassige Swift-Tür in USD, kein typisierter Wrapper um jedes Schema.1
Was sind Particle Fields und Gaussian Splats in OpenUSD?
Particle Fields ist ein neuer USD-Primitivtyp, den Apple mit Partnern der Alliance for OpenUSD, darunter NVIDIA, Adobe und Pixar, eingeführt hat. Er „ist in der Lage, Gaussian Splats sowie weitere Repräsentationen” aus diesem Forschungsbereich zu beschreiben. Gaussian Splats erfassen eine Szene als Millionen sich überlappender Partikel, die Position, Farbe und Deckkraft kodieren. Particle Fields lässt Splats erstmals in derselben Szene wie Meshes und Materialien leben.1
Wie klein kann USDKit ein USD-Asset machen?
Ein mit der Alliance for Open Media entwickelter Codec zur Mesh-Komprimierung kann Mesh-Größen um bis zu 90 Prozent reduzieren, und kombiniert mit der AVIF-Texturkomprimierung ist das durchschnittliche Asset etwa siebenmal kleiner, ohne Einbußen bei der visuellen Qualität. Aktivieren Sie Textur- und Mesh-Komprimierung über die exportPackage-API, in der Vorschau oder mit dem Kommandozeilenwerkzeug usdcrush.1
USDKit ist das programmatische Gegenstück zur visuellen Authoring-Geschichte im mentalen Modell von RealityKit und Reality Composer Pro, und es speist dieselben Szenen, die die Neuerungen in visionOS 27 und das umfassendere räumliche mentale Modell von RealityKit antreiben. Auf der Webseite rendern dieselben USD-Assets über das native HTML-<model>-Element, das Safari dieses Jahr eingeführt hat. Der zentrale Anlaufpunkt der vollständigen Reihe ist die Apple Ecosystem Series.
Quellen
-
Apple, WWDC 2026 Session 285, Discover USDKit and what’s new in OpenUSD. Quelle für die Updates zur OpenUSD-Grundlage (
MaterialX,OpenVDB, die erste formale Kern-USD-Spezifikation und die Mitgliedschaft in der Alliance for OpenUSD), denParticle Fields-Primitivtyp, der Gaussian Splats und ähnliche Repräsentationen beschreibt, dasUSDKit-Framework und seine Integration mit RealityKit und Spatial Preview, die Konzepte Layer/Stage/Prim/Schema, die Öffnen-Ändern-Exportieren-Schleife (USDStage-Initializer,USDStage.openmittry, Composition-Referenzen,addTransformOperation,exportPackage), den Workflow für Barrierefreiheit (AccessibilityAPI-Schema, das namentliche Verfassen von Label- und Beschreibungsattributen sowie die Aussage, dass USDKit „nicht alle schema-spezifischen APIs bereitstellt”), die Mesh- und AVIF-Texturkomprimierung (bis zu 90 Prozent Mesh-Reduktion, durchschnittliches Asset siebenmal kleiner, überexportPackage, die Vorschau oderusdcrush), die Renderer-Auswahl der Vorschau (RealityKit, Storm, Raytracer) undOpenPBRgegenüberUSDPreviewSurface, dasSpatial Preview-Framework unter macOS 27, den Safari-Model-Tag sowie die AlternativenSwiftUSDund C++-Framework. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩