RealityKit et Reality Composer Pro 3 en 2026
Reality Composer Pro 3 a quitté le bundle Xcode et est livré comme une application à part entière, que vous lancez depuis le dossier Applications. Le détail se lit comme une note d’empaquetage, mais c’est le signal le plus clair de toute l’histoire spatiale de la WWDC26 : l’outil de création est désormais une destination, et non plus un accessoire, et le moteur qui le sous-tend a grandi pour être à la hauteur.1
La version 2026 fait avancer les deux moitiés du pipeline en même temps. RealityKit gagne les fonctionnalités de rendu et de simulation qui rendent une scène crédible : ombres douces, lightmaps précalculées, textures projectives qui débordent sur vos murs réels, tissu, maillages de navigation, gaussian splats et acoustique avec lancer de rayons. Reality Composer Pro 3 gagne le flux de travail qui relie ces fonctionnalités sans cycle de compilation : aperçu en direct sur un casque, prototypes et instances, graphes à nœuds et un assistant IA qui génère du contenu 3D. Un troisième fil les relie, le code : les plug-ins Xcode exécutent vos composants personnalisés à l’intérieur de l’outil de création, et une nouvelle boîte à outils de modèles structurés alimente des applications collaboratives de revue de conception. Les pièces ont cessé d’être des démos séparées pour devenir une manière de travailler cohérente.
Cet article parcourt les cinq sessions de la WWDC26 qui définissent cette année le pipeline de création spatiale, chacune avec l’extrait qui l’ancre et l’idée qui change votre façon de construire.
TL;DR / Points clés
- L’éclairage et la simulation de RealityKit ont mûri : ombres douces pilotées par
lightSize, lightmaps précalculées, textures projectives accompagnées de l’éclairage de l’espace physique sur votre pièce réelle, tissu, maillages de navigation, gaussian splats et réverbération avec lancer de rayons.2 - Reality Composer Pro 3 est livré comme une application autonome (ce n’est plus un outil de développement Xcode), conçue pour une itération rapide : un onglet de simulation ancrable, des prototypes et des instances avec surcharges, un aperçu en direct sur l’appareil, des lightmaps précalculées et un assistant d’IA générative.3
- Vous étendez l’éditeur avec des plug-ins Xcode : composants et systèmes s’y exécutent grâce au protocole
RealityComposerProPlugin, des actions d’animation personnalisées s’insèrent dans le séquenceur viaEntityAction, et la macro@Scriptableexpose des composants à Script Graph.4 - Les outils visuels à nœuds (Animation Graph, Behavior Tree, Script Graph, Compute Graph, Shader Graph) permettent aux designers de créer le comportement des personnages, des particules GPU et des matériaux sans cycle de compilation.5
- visionOS 27 ajoute une boîte à outils de modèles 3D structurés pour la revue de conception collaborative : placement de
ManipulationComponentpiloté par la hiérarchie, un nouveauClippingComponentpour les coupes transversales, et une variance pondérée par le volume pour déployer automatiquement les assemblages.6
RealityKit a obtenu les fonctionnalités qui vendent le réalisme
RealityKit est le moteur 3D multiplateforme d’Apple depuis 2019, la couche que vous construisez une fois et déployez sur visionOS, iOS, iPadOS, macOS et tvOS.2 Les ajouts de 2026 comblent l’écart entre « rend correctement » et « a l’air réel », démontrés à l’intérieur d’un seul jeu, Chaparral Village, qui donne à la session un fil conducteur plutôt qu’une liste de fonctionnalités.
Commençons par les ombres, car le choix de l’API révèle la façon de penser de l’équipe. Les ombres de RealityKit sont par défaut à bords nets, ce qui n’est correct que lorsque la source lumineuse est infinitésimale. Une vraie lumière a une surface, et une surface produit une pénombre, cet adoucissement où la lumière n’est que partiellement bloquée. RealityKit modélise cela avec un seul bouton intuitif : le lightSize d’une ombre, soit le diamètre de la lumière en mètres. Réglez-le sur 0,7 et les bords s’adoucissent ; plus la lumière est grande, plus la pénombre est large. Un réglage quality complémentaire échange des échantillons contre des performances (low force une ombre nette ; medium suffit à une distance de visionnage typique).2 Les contrôles correspondent à des grandeurs physiques, le schéma à intérioriser.
Deux fonctionnalités poussent la lumière au-delà de la frontière virtuelle. Les textures projectives imitent l’éclairage d’une lampe torche à travers un morceau de film, projetant un motif sur ce que vise le projecteur, caustiques animées ou étoiles et nébuleuses d’un planétarium. L’éclairage de l’espace physique permet ensuite à ces lumières virtuelles d’interagir avec la pièce réelle grâce au maillage de compréhension de scène de RealityKit, de sorte que les étoiles projetées épousent vos murs réels. L’activation est presque anticlimatique : vous ajoutez un composant SurroundingsLight au projecteur (actuellement les projecteurs et les lumières ponctuelles).2 Transformer une lumière virtuelle en lumière de pièce réelle est un composant que vous attachez, et non un chemin de rendu distinct.
Le reste de la session fait le tour de la simulation et de la capture. La simulation de tissu décrit l’étoffe comme un maillage de particules-sommets reliées par des arêtes-ressorts ; épingler un rideau marque certains sommets comme cinématiques. Les maillages de navigation définissent des régions praticables avec des coûts de traversée par zone et des connexions hors maillage, alimentés par un NavigationComponent et interrogés par un NavigationController. Les gaussian splats restituent des captures du monde réel sous forme d’ellipsoïdes définis par position, échelle, rotation, opacité et harmoniques sphériques, assemblés dans un GaussianSplatComponent. L’audio immersif gagne un maillage de réverbération personnalisé fondé sur une acoustique géométrique avec lancer de rayons, où un ReverbMeshResource définit la géométrie de la pièce et l’acoustique par matériau.2 Le fil conducteur : chaque capacité est un composant que vous composez sur une entité, exactement la forme entité-composant-système que RealityKit a toujours eue.
Reality Composer Pro 3 ferme la boucle d’itération
Le changement le plus lourd de conséquences dans l’éditeur n’a aucune API. Reality Composer Pro 3 n’est plus un outil de développement Xcode ; vous le lancez depuis Applications, et toute la version s’organise autour de la réduction du temps entre une modification et le moment où vous la voyez.3
L’éditeur conserve le modèle entité-et-composant. Vous importez un fichier USD sous forme de bundle optimisé, vous le glissez dans la fenêtre comme une entité, et vous le façonnez grâce aux composants dans l’inspecteur. Ce qui change, c’est le retour. Appuyez sur Lecture et la scène s’exécute ; ancrez l’onglet de simulation à côté de l’onglet de scène et vous continuez à créer pendant que le jeu tourne, en ajustant un graphe et en observant le résultat sans aucune étape de déploiement. La formule de JP est celle à retenir : l’onglet de simulation retire le processus de déploiement de la boucle interne, si bien que la friction entre vous et l’expérience finale disparaît presque.3
Trois systèmes prolongent cette boucle. Les prototypes transforment une entité en un asset réutilisable que l’on glisse dans le Project Browser ; vous l’instanciez de nombreuses fois, surchargez n’importe quelle instance, réinitialisez une surcharge ou la propagez vers la source, et rien ne change durablement à moins que vous ne le décidiez. L’aperçu en direct cible un Vision Pro connecté via une application compagnon (livrée plus tard cette année), de sorte que vous créez sur le Mac et voyez les mises à jour instantanément sur l’appareil, là où l’éclairage de l’espace physique doit réellement être jugé.3 Les lightmaps gèrent l’éclairage statique : un composant Lightmap précalcule l’éclairage indirect, l’occlusion ambiante ou le rendu final dans une texture, avec un onglet d’aperçu montrant l’impact avant un calcul complet. La session se conclut sur le Reality Composer Pro Assistant, un panneau d’IA qui génère des objets 3D et des matériaux à la demande.3 Le schéma se répète : voir la conséquence d’un changement avant d’en payer le prix.
Étendre l’éditeur avec Xcode
L’éditeur autonome serait une impasse pour les équipes sérieuses si les artistes ne pouvaient utiliser que des composants intégrés. Le système de plug-ins est la réponse, qui fait passer Reality Composer Pro d’un outil que l’on utilise à un outil que l’on programme. Il est livré plus tard cette année.4
La structure de l’équipe est le point de départ. Un projet de type Chaparral Village associe un projet Reality Composer Pro (artistes et designers) à un projet Xcode (ingénieurs) dans le même dépôt git. Les fichiers importés sont convertis en JSON interne sur le disque, de sorte que l’outillage git standard les fusionne, et l’éditeur ajoute un outil de fusion personnalisé avec moins de conflits qu’un simple git merge.4 Les ingénieurs construisent deux schémas à partir d’un code partagé : l’application, et un plug-in RCPCustomComponents.framework exposant leurs composants et systèmes à l’éditeur. Les scènes sont exportées vers un Reality File, le format de sérialisation de RealityKit, que l’application charge. Le code arrive dans l’éditeur sous forme de plug-in ; le contenu arrive dans l’application sous forme de Reality File.
Le mécanisme est une poignée de main d’enregistrement. Vous écrivez une classe conforme à RealityComposerProPlugin (issue du package Swift RealityComposerPro, ajouté automatiquement lorsque vous liez le projet), et dans sa méthode setup, vous enregistrez vos composants et systèmes avec le contexte que l’éditeur vous transmet. Une fonction createRealityComposerProPlugin(), exportée comme un symbole C pour que le chargeur la trouve, renvoie le plug-in. Construisez le schéma du plug-in, ouvrez le projet, acceptez l’invite de confiance, et votre composant personnalisé apparaît dans l’inspecteur ; un artiste fait glisser le curseur du niveau d’eau et la surface réagit parce que votre système Swift s’exécute à l’intérieur de l’éditeur.4 Vous pouvez même attacher le débogueur Xcode et atteindre des points d’arrêt dans le code du plug-in. La remarque honnête de la session mérite d’être gardée : Script Graph et le code font des choses similaires, et la vraie raison de recourir au code, c’est que les grands Script Graphs deviennent difficiles à maintenir et que le code peut appeler des API Apple (dont SwiftUI) que Script Graph ne peut pas.4
La surface d’extension des plug-ins atteint trois systèmes de l’éditeur. Les composants et systèmes personnalisés sont le cas de base. Les actions d’animation personnalisées implémentent EntityAction (et Codable), puis se glissent sur le séquenceur avec des paramètres modifiables. Et la macro @Scriptable déploie un composant en un schéma que vous enregistrez, afin que les designers le câblent directement dans les nœuds de Script Graph.4 Les mêmes données personnalisées, accessibles depuis le code, la timeline et la couche de scripting visuel à la fois.
Les graphes à nœuds qui construisent le comportement sans code
Si la session 281 est l’histoire du code, la session 393 en est le miroir : jusqu’où un designer va sans code, en utilisant les graphes visuels de l’éditeur. La réponse de 2026, c’est presque tout le chemin vers un personnage interactif.
La construction empile quatre types de graphes. L’Animation Graph est un éditeur d’exécution à nœuds avec un nœud Final Pose à sa racine ; Vincent y dépose une State Machine, définit les états Idle et Walk avec des transitions conditionnées, et pilote le mélange avec un seul booléen isWalking basculé à l’exécution. Le Behavior Tree crée la routine autonome : un composite Sequence exécute dans l’ordre les nœuds Rotate To Face, Move To et Wait, des nœuds Parameter Setter font basculer isWalking autour du déplacement, et une Precondition fait attendre l’alchimiste jusqu’à ce qu’un drapeau readyToBrew passe à vrai. Script Graph fournit la colle pilotée par les événements : un nœud On Tap définit readyToBrew, de sorte qu’un tap envoie le personnage vers le chaudron.5 L’idée qui compte pour la vélocité de l’équipe : parce que les graphes sont visuels et pilotés par les événements, n’importe qui dans l’équipe construit et teste des comportements directement dans l’éditeur sans cycle de compilation.5
La session complète deux éléments que la session 279 avait décrits côté code. Le composant Navigation Mesh est le pendant côté création de cette API : une boîte englobante Shapes sélectionne quelle géométrie échantillonner, les Off-Mesh Connections relient des régions disjointes, et des Generation Parameters comme la taille des cellules contrôlent la résolution d’échantillonnage. Une fois créé, le maillage alimente un Behavior Tree, un Animation Graph ou un système Swift personnalisé.5 Compute Graph construit des simulations de particules GPU adossées à Metal sur quatre phases (Emitter, Initialize, Simulate, Output), et la fumée du chaudron utilise une force de gravité négative pour que la vapeur dérive vers le haut. Shader Graph ajoute RealityKit PBR Surface 2 (lustre et diffusion sous la surface), une surface de cheveux dédiée, ainsi qu’une surface et une géométrie de portail modifiables.5
Collaborer sur des modèles 3D structurés
La dernière session est l’aboutissement, ce que vous construisez lorsque le moteur et l’éditeur sont aussi capables. visionOS 27 livre une boîte à outils pour la revue de conception collaborative, où des personnes réunies dans un appel SharePlay manipulent le même assemblage complexe, l’ouvrent, le coupent et en détachent des pièces, à la même fidélité dans le même espace.6
La fondation, c’est la structure, et le point le plus aigu de la session est qu’une géométrie sans hiérarchie est inutile au code. Un bloc-moteur aplati à la racine s’affiche très bien mais n’offre rien à saisir ou à animer, les pistons enfouis dans une liste plate de noms du genre InteriorPart_47. Une hiérarchie imbriquée rend chaque pièce trouvable, la condition préalable à tout le reste.6 Sur cette hiérarchie, la manipulation est une décision de placement : mettez un ManipulationComponent à la racine et tout l’assemblage bouge comme un seul objet ; descendez-le vers les enfants (avec InputTargetComponent et CollisionComponent à ses côtés, releaseBehavior réglé sur .stay) et chaque pièce devient saisissable individuellement tandis que le reste demeure en place. La formule de Bill est l’énoncé le plus net de la philosophie ECS des cinq sessions : le passage de « chose à regarder » à « chose à explorer » se produit entièrement à cause de l’endroit où vit le composant dans l’arbre.6
Le clipping est la capacité véritablement nouvelle de RealityKit. Le ClippingComponent écarte à chaque image la géométrie située en dehors d’un bounds aligné sur les axes (shouldClipChildren vaut false par défaut, le piège courant ; shouldClipSelf vaut true par défaut), exposant l’intérieur aussi facilement que l’extérieur.6 Le modèle d’interaction est délibérément réduit : les six faces de la boîte englobante deviennent six plans déplaçables, chacun contrôlant un scalaire. Rendre ces glissements naturels est la leçon de mathématiques de la session : un delta de glissement se transforme du repère monde au repère du modèle, puis se projette sur la normale du plan, de sorte que les bounds ne changent que le long de l’axe que vous avez saisi. Le déploiement automatique recourt à la même honnêteté statistique, en calculant une variance de position pondérée par le volume le long de chaque axe et en écartant en éventail les sous-assemblages le long de celui de plus grande variance.6 La leçon de clôture de Bill est inhabituelle pour une conférence sur le graphisme : familiarisez-vous avec la variance, la projection vectorielle et les transformations de repère, car les interactions qui semblent sans effort reposent sur ces mathématiques.
Par où commencer
Tout adopter d’un coup est le mauvais choix. Séquencez selon ce qui débloque le reste.
- Téléchargez d’abord l’éditeur autonome. Le départ de Reality Composer Pro 3 du bundle Xcode est le changement dont dépend tout autre flux de travail ; réimportez une scène pour avoir en main l’onglet de simulation, les prototypes et l’aperçu des lightmaps.3
- Obtenez la boucle d’itération avant les fonctionnalités. Ancrez l’onglet de simulation pour créer pendant que la scène tourne, puis reliez l’aperçu en direct sur l’appareil à un Vision Pro. Juger l’éclairage de l’espace physique ou les ombres douces sur un écran Mac plat vous induira en erreur.32
- Recourez aux fonctionnalités de RealityKit comme à des composants, non à des réécritures. Des ombres douces, une lightmap précalculée et un
SurroundingsLightsur un projecteur sont chacun un composant ou une propriété, et chacun achète une quantité disproportionnée de réalisme.2 - N’ajoutez le plug-in Xcode que lorsque les artistes ont besoin de vos données. L’enregistrement de
RealityComposerProPluginjustifie sa place dès qu’un designer veut régler un composant personnalisé en direct ; jusque-là, les composants intégrés et Script Graph couvrent beaucoup de terrain.45 - Construisez sur la hiérarchie pour la revue de conception. La boîte à outils de modèles structurés ne fonctionne que sur un asset bien imbriqué, alors corrigez la hiérarchie avant d’écrire du code d’interaction.6
Le fil conducteur des cinq sessions : cette année, le pipeline spatial récompense la composition plutôt que la construction. Le réalisme est un composant que vous attachez, l’itération un onglet que vous ancrez, la collaboration une hiérarchie que vous respectez.
FAQ
Reality Composer Pro 3 fait-il encore partie de Xcode ?
Non. Reality Composer Pro 3 est désormais une application autonome que vous téléchargez depuis le site développeur et lancez depuis votre dossier Applications. Elle se lie toujours à un projet Xcode pour construire l’application et charger les plug-ins, mais l’éditeur s’exécute de façon indépendante.3
Comment fonctionnent les ombres douces dans RealityKit en 2026 ?
La propriété lightSize d’une ombre est le diamètre de la lumière en mètres ; la valeur par défaut 0 produit une ombre nette, et une valeur plus grande (la session utilise 0,7) élargit la pénombre. Réglez quality sur medium ou high, car low force une ombre nette quelle que soit la taille de la lumière, medium étant recommandé à une distance de visionnage typique pour maîtriser le coût.2
Puis-je exécuter mon propre code Swift à l’intérieur de l’éditeur Reality Composer Pro ?
Oui. Construisez un plug-in conforme au protocole RealityComposerProPlugin et enregistrez vos composants et systèmes dans sa méthode setup ; l’éditeur exécute ce code en direct, de sorte qu’un artiste ajuste une propriété et voit le système réagir sans recompiler l’application. Vous pouvez attacher le débogueur Xcode pour atteindre des points d’arrêt dans le code du plug-in. La fonctionnalité est livrée plus tard en 2026.4
Quelle est la nouvelle fonctionnalité de clipping dans visionOS 27 ?
ClippingComponent écarte à chaque image toute géométrie située en dehors d’une boîte englobante alignée sur les axes (bounds), vous laissant voir à travers un assemblage complexe jusqu’à son intérieur. Notez que shouldClipChildren vaut false par défaut, de sorte qu’un assemblage parent ne clippe pas ses enfants tant que vous ne l’avez pas réglé sur true.6
Dois-je écrire du code pour qu’un personnage s’anime et réagisse aux taps ?
Non. Les graphes visuels de Reality Composer Pro 3 s’en chargent : une machine à états Animation Graph mélange les animations d’attente et de marche, un Behavior Tree séquence la routine et la conditionne à un booléen, et un Script Graph câble un nœud On Tap pour faire basculer ce booléen, le tout créé sans cycle de compilation.5
L’ensemble du cluster Apple Ecosystem : le modèle mental spatial qui explique pourquoi RealityKit est un système entité-composant plutôt que du SwiftUI en 3D ; les patterns spatiaux de visionOS pour structurer les scènes et les styles d’immersion ; les nouveautés de visionOS 27 pour les fonctionnalités de la plateforme autour de ces outils ; et la matrice des plateformes Apple pour la façon dont RealityKit se déploie sur visionOS, iOS, iPadOS, macOS et tvOS. Le hub se trouve dans la série Apple Ecosystem. Pour un contexte plus large autour d’iOS avec des agents IA, voyez le guide de développement d’agents iOS.
Références
-
Apple Developer : Reality Composer Pro. L’outil de création d’Apple pour composer, éditer et prévisualiser du contenu 3D destiné aux applications RealityKit. La distribution sous forme d’application autonome et le lancement depuis le dossier Applications sont indiqués dans la session 280 de la WWDC26. ↩
-
Apple, WWDC26 session 279, « Explore advances in RealityKit ». developer.apple.com/videos/play/wwdc2026/279. Couvre les ombres douces et
lightSize, les lightmaps, les textures projectives, l’éclairage de l’espace physique et le composantSurroundingsLight, la simulation de tissu, les maillages de navigation (NavigationComponent/NavigationController), les gaussian splats 3D (GaussianSplatComponent) et la réverbération avec lancer de rayons viaReverbMeshResource. Référence du framework RealityKit : developer.apple.com/documentation/realitykit. ↩↩↩↩↩↩↩↩ -
Apple, WWDC26 session 280, « Iterate your spatial scenes faster with Reality Composer Pro 3 ». developer.apple.com/videos/play/wwdc2026/280. Couvre l’application autonome, le modèle entité/composant, l’onglet de simulation ancrable, les prototypes et instances avec surcharges, l’aperçu en direct sur l’appareil, les lightmaps précalculées (éclairage indirect, occlusion ambiante, rendu final) et le Reality Composer Pro Assistant. ↩↩↩↩↩↩↩↩
-
Apple, WWDC26 session 281, « Extend Reality Composer Pro 3 functionality with Xcode ». developer.apple.com/videos/play/wwdc2026/281. Couvre le protocole
RealityComposerProPluginet son enregistrement, les composants et systèmes personnalisés s’exécutant dans l’éditeur, le flux de travail de fusion git/JSON et l’export Reality File, les actions de séquenceur personnalisées viaEntityAction, et l’exposition de composants à Script Graph avec la macro@Scriptable. ↩↩↩↩↩↩↩↩ -
Apple, WWDC26 session 393, « Supercharge your spatial workflows with Reality Composer Pro 3 ». developer.apple.com/videos/play/wwdc2026/393. Couvre les machines à états Animation Graph, les Behavior Trees (composites Sequence/Selector/Parallel, nœuds d’action, préconditions), le Script Graph piloté par les événements, le composant Navigation Mesh, les particules GPU Compute Graph (Emitter/Initialize/Simulate/Output) et les améliorations de Shader Graph dont RealityKit PBR Surface 2 et une surface de cheveux. ↩↩↩↩↩↩↩
-
Apple, WWDC26 session 284, « Collaborate on structured 3D models in visionOS ». developer.apple.com/videos/play/wwdc2026/284. Couvre la hiérarchie de l’asset comme condition préalable à l’interactivité, le placement de
ManipulationComponent(avecInputTargetComponent,CollisionComponentetreleaseBehavior), le nouveauClippingComponent(bounds,shouldClipChildren,shouldClipSelf) dans visionOS 27, les transformations de repère et la projection vectorielle pour les glissements de plan de coupe, et le déploiement automatique par variance de position pondérée par le volume. ↩↩↩↩↩↩↩↩