← Tous les articles

USDKit : OpenUSD natif en Swift sur les plateformes Apple

À la WWDC 2026, un ingénieur d’Apple a ouvert une scène 3D en Swift, remarqué l’absence d’un oscilloscope sur l’établi, intégré l’asset sous forme de référence légère, mis ce dernier en place, étiqueté l’ensemble pour les technologies d’assistance, puis exporté le tout sept fois plus léger, le tout en une poignée de lignes de code.1 Cette démonstration résume la thèse de USDKit : Apple livre désormais un framework système qui fait d’OpenUSD une API Swift de premier ordre, et non plus une bibliothèque C++ à laquelle vous vous liez à la main. Vous chargez une scène, composez des assets ensemble, créez des données sur les prims et exportez un package compressé, en suivant des schémas que les développeurs Swift connaissent déjà.

Cet article retrace l’histoire d’USDKit à partir de la session 285 de la WWDC 2026, « Discover USDKit and what’s new in OpenUSD ». Tout ce qui suit provient directement de cette session.

TL;DR

  • USDKit apporte une prise en charge d’USD de premier ordre aux applications Swift, « avec une intégration profonde de RealityKit et de Spatial Preview directement incluse », et s’adresse aussi bien aux développeurs USD chevronnés qu’aux nouveaux venus en Swift, là où ils se trouvent.1
  • La boucle centrale consiste à ouvrir, modifier, exporter : créez une scène avec un initialiseur USDStage ou ouvrez-en une avec USDStage.open (qui lève une erreur, d’où le try), référencez des assets via la composition, positionnez-les avec addTransformOperation, puis écrivez un exportPackage compressé.1
  • Une limite assumée en toute honnêteté : USDKit « ne fournit pas toutes les API propres aux schémas », si bien que créer des données d’accessibilité revient à appliquer le schéma AccessibilityAPI, puis à créer les attributs de libellé et de description par leur nom, en utilisant les noms définis dans la spécification.1
  • Un nouveau type de primitive USD, Particle Fields, « est capable de décrire des Gaussian Splats ainsi que d’autres représentations », faisant entrer pour la première fois les splats dans la même scène que les maillages et les matériaux.1
  • La compression de maillage associée à la compression de textures AVIF rend l’asset moyen sept fois plus léger ; vous y accédez via l’API exportPackage, dans Preview, ou grâce à l’outil en ligne de commande usdcrush.1

Ce qui a changé dans OpenUSD cette année

Watch on Apple Developer ↗

Lee, de l’équipe Spatial Standards d’Apple, présente USDKit à 7:00, après les mises à jour des fondations d’OpenUSD.

USD est l’ossature des expériences spatiales conçues par Apple, et le projet open source qui le sous-tend, OpenUSD, a été initialement développé par Pixar.1 USD ne fonctionne pas seul. Il s’intègre à MaterialX, issu à l’origine de Lucasfilm pour la description des matériaux, et, nouveauté cette année, à OpenVDB, issu de DreamWorks, qui apporte les données volumétriques dans l’équation.1 Apple a mis à jour ces trois technologies sur l’ensemble de ses plateformes cette année et, en tant que membre de l’Academy Software Foundation, elle contribue directement à des projets comme MaterialX et OpenVDB.1

Le travail de normalisation va bien au-delà du code. En tant que membre fondateur de l’Alliance for OpenUSD, Apple « a contribué à publier la première spécification formelle du cœur d’USD, des spécifications de domaine pour la géométrie, les matériaux et la physique étant déjà en cours ».1 Ces groupes de travail sont ouverts, et l’appel lancé aux développeurs lors de la session est clair : participez si vous voulez avoir votre mot à dire sur la façon dont l’industrie échange du contenu 3D.

La nouveauté la plus marquante au niveau des primitives est Particle Fields. Les Gaussian Splats capturent une scène « sous forme de millions de particules floues qui se chevauchent, chacune encodant position, couleur et opacité afin de reconstituer fidèlement des environnements réels complexes ».1 En collaboration avec des partenaires de l’Alliance for OpenUSD, dont NVIDIA, Adobe et Pixar, Apple a introduit Particle Fields comme nouveau type de primitive USD « capable de décrire des Gaussian Splats ainsi que d’autres représentations issues de ce domaine de recherche en évolution rapide ».1 Le bénéfice concret : les splats vivent désormais « dans la même scène que vos maillages, vos matériaux et vos autres données 3D traditionnelles, et ce pour la toute première fois ».1 La formulation reste volontairement modeste. Particle Fields décrit les splats et les représentations similaires ; c’est un conteneur pour un domaine de recherche en évolution, et non la spécification d’un moteur de rendu de splats abouti.

Le modèle mental d’USDKit

USDKit apporte une prise en charge d’USD de premier ordre aux applications Swift, avec une intégration profonde de RealityKit et de Spatial Preview incluse, et l’objectif de conception fonctionne dans les deux sens : les développeurs qui connaissent déjà USD retrouvent des concepts familiers, et les développeurs Swift novices en USD obtiennent des schémas et des paradigmes qu’ils reconnaissent déjà.1

Quelques concepts USD structurent l’API. Un Layer est un fichier de données unique. Les couches se combinent grâce à une fonctionnalité appelée composition, et un Stage est « le résultat composé d’une ou plusieurs couches », votre fenêtre sur l’ensemble de la scène.1 Tout ce qui se trouve dans une scène est un USD Prim. Chaque prim possède un Schema qui définit son type, ainsi que des Attributes qui « contiennent les données réelles » et des Metadata qui « décrivent des informations sur le prim lui-même ».1 Ces quatre mots, layer, stage, prim, schema, portent tout le reste du workflow.

Ouvrir, modifier, exporter

La session déroule une boucle concrète : charger une scène, y apporter des modifications et en exporter le résultat.1

Vous pouvez créer une scène vierge en mémoire avec « un simple initialiseur USDStage ».1 Pour travailler sur une scène existante, vous l’ouvrez en passant une URL de fichier à USDStage.open. Comme cela implique un accès au fichier, « cela peut lever une erreur, j’utilise donc try ».1 La scène chargée, l’ingénieur parcourt la hiérarchie de la scène à la recherche de l’oscilloscope manquant, ne trouve rien, et définit « un nouveau prim de transformation au chemin où je veux qu’il se trouve ».1

C’est avec la composition que la conception révèle toute sa valeur. Plutôt que de copier les données d’un asset dans la scène, vous « y ajoutez une référence légère ».1 L’asset vit dans son propre fichier, ou couche, créé par quelqu’un d’autre, et vous l’intégrez : « Chacun travaille sur sa propre partie de la scène, et USD rassemble le tout », et toute mise à jour effectuée par l’auteur d’origine « apparaît automatiquement dans ma scène elle aussi, puisque je ne fais que référencer son fichier ».1

Le positionnement de l’asset référencé passe par addTransformOperation, qui « se charge de créer les bons attributs sur le prim et de mettre à jour l’ordre des transformations automatiquement ».1 Ensuite, l’ingénieur définit la valeur de translation et l’asset se déplace sur l’établi. Ce schéma compte parce qu’il sépare l’intention (déplacer ce prim) de la gestion comptable de savoir quels attributs de transformation existent et dans quel ordre.

Créer des données d’accessibilité, et une limite assumée

Apple a « piloté la normalisation des métadonnées d’accessibilité directement dans USD », établissant la manière dont les libellés et descriptions d’assistance sont définis sur les objets 3D à l’échelle de l’industrie, et l’a conçue avec assez de souplesse pour qu’elle puisse évoluer.1 Parce que ces métadonnées sont natives à USD, « vous pouvez les créer via n’importe quelle API USD », et Apple a ajouté une prise en charge directe dans Blender et Maya pour faciliter l’adoption.1

Voici la réserve qu’il vaut la peine d’énoncer clairement. Pour ajouter des données d’accessibilité, vous appliquez d’abord le schéma AccessibilityAPI au prim, ce qui ajoute les métadonnées signalant la présence du schéma. Ensuite, selon les termes de la session, « comme USDKit ne fournit pas toutes les API propres aux schémas, je crée directement les attributs de libellé et de description, en veillant à utiliser les noms d’attributs exacts définis dans la spécification ».1 Ainsi, USDKit vous offre un moyen natif en Swift d’accéder à USD, mais n’enveloppe pas chaque schéma dans une API typée. Pour les schémas qu’il ne couvre pas, vous créez les attributs par leur nom, et il vous revient de bien orthographier ces noms conformément à la spécification. Considérez USDKit comme une porte d’entrée de premier ordre vers USD, et non comme une garantie de couverture typée complète pour chaque schéma.

Une compression intégrée à l’appel d’export

Les scènes USD de production de haute qualité « peuvent atteindre plusieurs gigaoctets », et la scène ALab de la démonstration en est un exemple concret.1 En collaboration avec l’Alliance for Open Media, Apple a ajouté « un codec de compression de maillage de pointe, capable de réduire la taille des maillages jusqu’à 90 % ».1 Combiné à la compression de textures AVIF existante, « l’asset moyen est désormais sept fois plus léger, sans compromettre la qualité visuelle ».1

Le codec se loge à l’intérieur du workflow plutôt qu’à côté. La prise en charge de la compression est « directement intégrée à l’API exportPackage » : vous passez l’URL de sortie à la méthode exportPackage de la scène, puis activez la compression des textures et des maillages via les options d’export.1 Si vous n’écrivez pas de code, « vous obtenez les mêmes résultats directement dans Preview ou grâce à l’outil en ligne de commande usdcrush ».1 Apple travaille avec Pixar pour apporter cette compression au projet OpenUSD afin que tout l’écosystème en profite.1

Là où USDKit rencontre le reste de la plateforme

Le framework alimente des expériences qui dépassent largement le cadre d’une seule application. Preview sur Mac assure désormais l’essentiel de l’édition 3D, et Preview comme Quick Look « vous laissent le choix du moteur de rendu » : RealityKit « apporte une cohérence entre Mac, iPhone, iPad et Vision Pro », Storm « reste disponible pour ceux qui ont des besoins liés à des pipelines de production existants », et un tout nouveau Raytracer cible les scènes les plus complexes avec des reflets précis, des ombres nettes et un éclairage physiquement correct.1 Les trois moteurs de rendu prennent en charge OpenPBR, « une avancée majeure par rapport à USDPreviewSurface qui apporte des matériaux plus riches et plus fidèles à la réalité physique dans votre workflow ».1

Preview s’intègre au nouveau framework Spatial Preview sur macOS 27, créant une connexion directe entre votre Mac et Quick Look sur Vision Pro afin que les modifications apparaissent en direct dans votre espace, tandis que SharePlay réunit toute une équipe dans la même scène.1 Côté web, Safari introduit la balise Model, qui intègre un modèle USD restitué de façon interactive sur macOS et iOS et qui, sur visionOS, « sort de la page et se présente, spatialement, directement dans l’espace de l’utilisateur ».1

USDKit est la voie recommandée pour les développeurs d’applications sur les plateformes Apple, car il est fourni par le système et profondément intégré, et le reste des expériences présentées dans la session repose sur lui.1 Pour les besoins avancés ou multiplateformes qui dépassent ce que couvre USDKit, SwiftUSD fournit des liaisons Swift open source via le Swift Package Manager, et les bases de code C++ peuvent intégrer OpenUSD directement sous forme de framework. Les trois reposent sur la même fondation, si bien que « vos fichiers USD circulent librement entre eux ».1

Une distinction à garder en tête : c’est ici la voie programmatique. Créer des scènes à la main dans un outil visuel relève de Reality Composer Pro (voir le modèle mental RealityKit et Reality Composer Pro) ; USDKit est l’API vers laquelle vous vous tournez lorsque c’est le code, et non une toile, qui fait le travail.

Comment se lancer

La session se condense en un court parcours que vous pouvez suivre dès aujourd’hui :

  1. Ouvrez une scène. Créez-en une en mémoire avec l’initialiseur USDStage, ou ouvrez une scène existante en passant une URL de fichier à USDStage.open à l’intérieur d’un try, car l’accès au fichier peut lever une erreur.1
  2. Composez, ne copiez pas. Définissez un prim de transformation au chemin souhaité, puis ajoutez une référence légère à une couche externe pour que les mises à jour de l’auteur d’origine se répercutent automatiquement dans votre scène.1
  3. Positionnez avec intention. Appelez addTransformOperation pour créer les bons attributs et le bon ordre de transformation, puis définissez la valeur de translation.1
  4. Créez l’accessibilité en toute honnêteté. Appliquez le schéma AccessibilityAPI, puis créez les attributs de libellé et de description en utilisant les noms définis par la spécification, car USDKit ne fournit pas toutes les API propres aux schémas.1
  5. Exportez léger. Appelez exportPackage sur la scène en activant la compression des textures et des maillages, ou lancez usdcrush si vous n’écrivez pas de code.1

FAQ

Qu’est-ce qu’USDKit ?

USDKit est un nouveau framework système d’Apple qui apporte une prise en charge d’OpenUSD de premier ordre aux applications Swift, avec une intégration profonde de RealityKit et de Spatial Preview incluse. Il expose les concepts USD (couches, scènes, prims, schémas) à travers des schémas Swift, ce qui vous permet d’ouvrir une scène, de composer des assets, de créer des données et d’exporter, sans vous lier à la main à une bibliothèque C++. Apple le recommande comme point de départ pour les développeurs d’applications sur ses plateformes.1

Comment charger et modifier une scène USD avec USDKit ?

Ouvrez une scène en passant une URL de fichier à USDStage.open à l’intérieur d’un try (l’accès au fichier peut lever une erreur), ou créez une scène vierge avec un initialiseur USDStage. Pour ajouter un asset externe, définissez un prim de transformation et ajoutez une référence légère à sa couche plutôt que de copier ses données. Positionnez-le en appelant addTransformOperation, qui met en place les bons attributs et le bon ordre de transformation, puis définissez la valeur de translation.1

USDKit couvre-t-il tous les schémas USD ?

Non. La session le dit clairement : USDKit « ne fournit pas toutes les API propres aux schémas ». Pour l’accessibilité, par exemple, vous appliquez le schéma AccessibilityAPI, puis créez directement les attributs de libellé et de description en utilisant les noms d’attributs exacts définis dans la spécification. USDKit est une porte d’entrée Swift de premier ordre vers USD, et non un wrapper typé autour de chaque schéma.1

Que sont les Particle Fields et les Gaussian Splats dans OpenUSD ?

Particle Fields est un nouveau type de primitive USD introduit par Apple avec des partenaires de l’Alliance for OpenUSD, dont NVIDIA, Adobe et Pixar. Il « est capable de décrire des Gaussian Splats ainsi que d’autres représentations » de ce domaine de recherche. Les Gaussian Splats capturent une scène sous forme de millions de particules qui se chevauchent, encodant position, couleur et opacité. Particle Fields permet aux splats de vivre dans la même scène que les maillages et les matériaux, pour la première fois.1

Jusqu’à quel point USDKit peut-il alléger un asset USD ?

Un codec de compression de maillage conçu avec l’Alliance for Open Media peut réduire la taille des maillages jusqu’à 90 pour cent et, combiné à la compression de textures AVIF, l’asset moyen est environ sept fois plus léger sans compromettre la qualité visuelle. Activez la compression des textures et des maillages via l’API exportPackage, dans Preview, ou avec l’outil en ligne de commande usdcrush.1


USDKit est le pendant programmatique de l’histoire de création visuelle présentée dans le modèle mental RealityKit et Reality Composer Pro, et il alimente les scènes mêmes qui font tourner les nouveautés de visionOS 27 et le modèle mental spatial de RealityKit, plus large. Côté web, ces mêmes assets USD sont restitués via l’élément HTML natif <model> que Safari a introduit cette année. Le point d’accès de toute la série est l’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. 

Articles connexes

Ce que l'équipe Swift d'Apple a dit lors du lab de la WWDC26

Le Swift Group Lab d'Apple à la WWDC26 s'est déroulé sans sous-titres. Nous l'avons transcrit en local. Réponses franche…

14 min de lecture

RealityKit et Reality Composer Pro 3 en 2026

La WWDC26 a fait mûrir le pipeline spatial d'Apple : éclairage et tissu dans RealityKit, plus un Reality Composer Pro 3 …

15 min de lecture

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 lecture