2 min read

Deconstructing Reality Composer Pro (Intro)

Reality Composer Pro prioritizes the transition of elements over direct emphasis on creation and debugging tasks. It's a portal where you transport raw, wild formats to more manageable, controlled, static-defined files that can be represented on RealityKit.
Illustration with 3D perspective of a phase-layered stack of cubes ending in a dark plate with fewer elements and distribution. Tool abstraction metaphor from this article.
A screenshot of a Reality Composer Pro project window. The window has a single tab at the top called Scene. The window is divided horizontally into two sections. The top section has three views: a navigator view of content in the scene, a viewport in the middle showing a 3D model of a beach with additional assets, and an inspector on the right. The bottom section has four tabs, labeled Project Browser, Shader Graph, Timelines Audio Mixer, and Statistics. Project Browser is selected, and it’s also divided into three sections with a hierarchy on the left, a grid of icons in the middle, and an inspector on the right showing the entity hierarchy for the asset selected in the middle.

Reality Composer Pro is positioned at the intersection of complex and evolving file format definitions. The implementation of these formats varies significantly across different versions, which makes both automated and manual manipulation challenging. RCP targets RealityKit, which has limitations due to its real-time nature, evolution, and supported platforms. RCP occupies a central location in the XR pipeline, making it a common place when going from ideation to production, often posing challenges for both technical artists and developers. Challenges include efficient model export methods, complex animation management, and translating advanced DCC features for RealityKit and the idiosyncrasies of visionOS, mixed with SwiftUI.

Reality Composer Pro is implemented on top of open-source technologies, based on Swift Package Manager packages and USD itself, which is OpenUSD now. It also uses MaterialX and other projects, which makes it an extremely interesting example of how to handle these tensions. 

Academy Open Source Software landscape

Given the complexity of the parts, it is reasonable to expect bugs. The goal of creating a tool that abstracts underlying technologies sometimes leads to poorly expressed errors, resulting in silent failures and unmet requirements that are challenging for humans to understand. Additionally, users who have previous experience with earlier tools like Reality Composer (not Pro) and Reality Converter often misunderstand the role of Reality Composer Pro, as these original* AR tools from Apple specifically focused on editing and authoring AR experiences.

Reality Composer Pro prioritizes the transition of elements over direct emphasis on creation and debugging tasks. It's a portal where you transport raw, wild formats to more manageable, controlled, static-defined files that can be represented on RealityKit. 

ℹ️
Reality Composer Pro had no apparent update at the last WWDC. But there are many signs that we could be closer to a cool new release, which many are eagerly interested in

If all this sounds gloomy or frustrating to you, don't fret; since RCP is built on open-source, nothing stops us from investigating (or at least attempting to) the origins of these pain points and, with a bit of luck, gaining some insight into the reasoning behind certain decisions. In a typical "what can go wrong" spirit, I decided to explore what it takes to create something like Reality Composer Pro, a project I call Deconstructed (not Pro yet).

 A macOS welcome window for "Deconstructed" app. The left panel shows the app icon (rounded square with orange/yellow gradient), the app name "Deconstructed" in large bold      text, and "Version 1.0". Below are two action buttons: "Create New Project..." with a plus icon and "Open Existing Project..." with a folder icon. The right panel is titled    "Recent Projects" and displays a placeholder message "No Recent Projects" with a clock icon, stating "Projects you open will appear here." The window has a dark theme with orange accent colors.

Meet Reality Composer Pro - WWDC23 - Videos - Apple Developer
Discover how to easily compose, edit, and preview 3D content with Reality Composer Pro. Follow along as we explore this developer tool by…