NASCAR AR Masterclass
NASCAR Lead Developer
AR Foundation AR Foundation Unity Unity

NASCAR Masterclass is a series of bite-sized AR lessons available through the official NASCAR app. It transforms the sport’s core concepts into interactive, spatial stories helping fans not just watch racing, but truly understand it. From the intensity of a pit stop to the invisible science of aerodynamics and drafting, Masterclass delivers an engaging way to learn the mechanics behind the action.

Try it out👉

Overview

Each lesson focuses on a single racing concept, breaking it down into a short, immersive lesson that blends 3D visualization with clear narrative. The series covers topics like pit stop precision, drafting strategy, aerodynamics, and racing lines. Designed for accessibility, the content makes NASCAR approachable for newcomers while still offering depth for longtime fans, all within the convenience of the NASCAR mobile app.

My Contributions

As the Lead Developer, I have contributed to pretty much every aspect of the project’s software development:

  • App architecture & state management, including a custom node-based state machine editor
  • Built a scalable system framework that allowed multiple lessons to be developed in parallel with little onboarding
  • Full development of several flagship modules (Drafting, Racing Lines, Rules)
  • Contributions across every other lesson in the series
  • Content delivery pipeline using Unity Addressables + Cloud Content Delivery
  • Build automation with Unity Cloud Build + CCD badge-based versioning
  • UI/in-app frontend systems, AR placement flows, and particle/VFX

Technical Highlights & Challenges

One of the earliest challenges was enabling multiple developers to work in parallel on lesson modules. To solve this, I set up the project such that each lesson would be its own scene while keeping all the buisness logic and AR management components in our main scene. This approach created a consistent structure and drastically accelerated development speed by making it easy to spin up new lessons without duplicating boilerplate or stepping on others’ work.

One significant architectural component I built early in the project was a state management system. Across previous projects, we’ve juggled many different approaches to controlling the app flow, from proven but top-heavy and highly coupled scripting systems, to Animator based controllers, to barebones enumeration-based state machines. For a while, I’ve wanted to develop a more modular, GUI based solution like Unity’s Animator editor, but explicitly designed for scripting flow control. I created the first iteration of such a system on this project, utilizing Unity’s GraphView framework and Odin Inspector to make a highly extensible visual editor.

Another significant hurdle was keeping the embedded Unity-as-a-Library module lightweight. App size requirements are tight nowadays, and since this module is bundled into a host app, it needed to be as small as possible. We decided each lesson would be its own downloadable scene, hosted with Unity Addressables and Cloud Content Delivery. I also implemented a custom badge versioning system with CCD that mapped specific bundles to app build numbers. This ensured that even older app installs would always pull the content for that build instead of pulling the latest and potentially breaking.

To streamline iteration, I also automated Addressable building and upload to CCD as part of our Unity Cloud Build workflow. This eliminated Addressable versioning conflicts and made it possible for the team to rapidly test new builds with hosted content.

On the content side, I worked heavily on the Drafting module, which needed to visually explain car aerodynamics. Instead of attempting computationally expensive fluid simulations, I designed a particle-based system using velocity-over-time curves. This created a convincing illusion of airflow around the cars while still running smoothly on mobile hardware.

Finally, embedding Unity as a library inside the NASCAR mobile app required tight coordination with their engineering team. Size limitations, hosting considerations, and integration quirks surfaced throughout development. By iterating closely with their team and adjusting our workflows, we were able to deliver a stable module that fit seamlessly into the larger NASCAR app ecosystem.

Results

  • Averaging ~4,000 monthly users engaging with the AR modules.
  • Helped NASCAR modernize fan education through interactive spatial learning.
  • Delivered a flexible foundation that continues to support new module development.

Reflection

I’m most proud of building a robust app architecture and content delivery pipeline that enabled the entire project to succeed. Along the way, I learned valuable lessons about CDN-hosted content, Unity-as-a-Library integration, and the importance of early alignment with client dev teams. Looking forward, I’d love to see further investment in VFX polish and more deeply interactive modules that push the experience even further.

Related Projects

© Nathan MacAdam, 2025