Conf42 Internet of Things (IoT) 2024 - Online

- premiere 5PM GMT

Shaping Tomorrow: Designing Scalable AR-VR Solutions

Video size:

Abstract

Explore how scalable AR-VR solutions are revolutionizing user engagement. Learn about designing resilient, adaptable systems for seamless, immersive experiences that evolve with technology, enhancing industries from gaming to education.

Summary

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hello, good morning, good afternoon and good evening everyone. My name is Gunjan Agarwal and I'm thrilled to be here to share insights on crafting compelling AR VR products and leveraging AI to accelerate development and improve user experience. A bit about me, having worked at Meta, Nutanix, and Amazon, I have been fortunate to lead some groundbreaking projects combining technical innovation with user centric design. Today, I'll share some of my learnings to help you as technical leaders navigate this exciting space. A quick disclaimer, this presentation is based entirely on my personal experience and independent research with no connection to my professional roles or responsibilities at Meta. With that, let's dive into the agenda to frame today's discussion. So we'll start by defining XR and why it's a game changer for industries. Next we'll examine how XR development compares to traditional platforms like mobile and web. Then we'll explore the challenges unique to XR and how to overcome them before concluding with actionable tips for building scalable products and integrating AI into the processes and practices. By the end of this talk, I hope you leave with both strategic insights and practical tools to apply in your road. And for those of you completely new to this space, I hope you will go back excited, knowing a bit more about the possibilities in this upcoming Skibase. Now, a couple of more points on what to expect and what not to expect from this session. Firstly, given the limited time we have today, I won't be able to do a deep dive into all the integrate details of XR development. However, my goal is to equip you with the foundational knowledge and point you in the right resources direction. Secondly, while much of my focus today will center on VR and X, AR development, particularly with headsets, it's important to note that many of the concepts and techniques I'll discuss, especially from a software development perspective, are really relevant to 2D game and application development. Now this makes this knowledge transferable and valuable across a wide range of platforms. With that, let's get going. So what is XR? Now XR or Extended Reality is basically an umbrella term for immersive technologies that blend the physical and the digital worlds to create interactive experiences. It encompasses three key categories, Augmented Reality, Virtual Reality and Mixed Reality. What is augmented reality now AR overlays digital elements like images text or example Or animations onto the real world enhancing what and interact with For example apps like ikea place lets you visualize the furniture in your home Or snapchat filters overlay fun effects on your face in real time VR, on the other hand, fully immerses you in computer generated environment, cutting you off from the physical world. Using devices like MetaQuest, PlayStation VR, we can explore virtual spaces, play games, or even train for surgery in completely simulated environments. Now, mixed reality is basically a mix of both of it. It merges the two. The physical and the digital world allowing them to coexist and interact seamlessly Unlike ar which only overlays digital content Mr enables users to manipulate and interact with virtual objects as though they are part of the real world Devices like microsoft's hololens are good. Good example and metacoast 3 are good example of mr technology Now why is xr development more relevant than ever You Now XR is revolutionizing gaming, healthcare, education, and retail. Think of PlayStation VR to defining, redefining gaming, or also VR, enhancing surgical training in healthcare. So across the industry, XR is basically making a huge impact and bringing about a lot of change. In terms of market opportunity, with a projected 250 billion market size by 2027, driven by device innovations and heavy investment from companies like Meta, Microsoft, Google, Sony, XR is quickly transitioning from futuristic to mainstream. Now, but developing for XR brings its own complexities, which we'll explore shortly. Many of us here are coming from software development background. would have experience with developing for mobile desktop. So I thought it would be useful to contrast the two. Unlike mobile and web, XR requires real time 3d environments, which demand for 3d modeling, complex rendering, and physics. Advanced spatial awareness and low latency are a must for seamless user experience and to avoid discomfort. Development involves leveraging game engines like Unity or Unreal, optimizing for 3D assets, and ensuring secure and responsive interactions across devices, and understanding unique privacy concerns in shared spaces. With that, let's dive into the capabilities and tools that power XR development. We'll first start by spending some time understanding the anatomy of an XMR headset. A mixed reality headset is an advanced device that blends virtual elements with immersive experiences. Key components include lenses and screens for displaying visuals, sensors and cameras for tracking, spatial audio systems and microphones for audio and voice, controllers with haptics and powerful CPUs and GPUs for processing. High refresh rates, typically 90 hertz or more, are essential to deliver smooth visuals and minimize latency, ensuring a convincing and comfortable user experience. Now, what gives a sense of immersion and realism in an MR headset? A key element of realism in 3D headsets lies in how they simulate depth, sound, and spatial awareness to mimic real world experiences. As far as realism is concerned, there are three aspects that we should talk about. First is Lenses and Depth Perception. The lenses in a 3D headset magnify the visuals displayed on the screen and present slightly different perspectives of the same image to the eye. Now this process known as stereoscopy creates a sense of depth replicating how our eyes perceive the real world. Combined with motion tracking, it enables users to see their environment shift naturally as they move their heads. Other aspect is spatial audio, which gives a sense of realism. Realism is further enhanced through spatial audio, which adapts sound based on distance, direction, and environmental factors like echos. Excuse me. For example, sounds grow louder as you approach a sound, as you approach a sound source, or shift position as you turn your head, providing an immersive and dynamic auditory experience. Field of view and tracking is another aspect which basically give a sense of immersion and realism in a MR headset. Now headsets further expand on the realism by offering a wide field of view and precise head tracking, allowing users to explore environments naturally. As user turn their head, they can see more of the virtual or the augmented space just as they would in the physical world. So all of these things come together to give a sense of immersion and realism when someone puts on a MR headset. Now with that, let's move on to understand some of the code software concepts for AR VR development. With Now one of the core pieces of software that we need to familiarize ourselves with is a game engine like unity or unreal engine A game engine is a very powerful software framework used in ar vr development to render 3d graphics Manage physics process interactions and more Now we'll talk about some of the key capabilities provided by the game engine. Let's start by talking about 3d graphics and rendering Game engines are optimized to render realistic, high quality 3D graphics essential for immersive AR VR experiences. They manage lighting, shading, textures, and other visual elements that help create a convincing virtual world. Physics simulation and 3D lighting is another capability provided by the game engines. The game engines have physics engine that simulate real world behaviors such as gravity, collision, and object interactions. This is crucial in VR to maintain a sense of realism as user expect virtual objects to respond to actions similarly to physical. objects. Game engines are also optimized for real time processing. Now ARVR requires real time performance to reduce latency, which is necessary to avoid motion sickness. Game engines are optimized to process actions and render changes in milliseconds. So this is another crucial aspect of game engine. Spatial audio integration, like we briefly discussed about earlier, is also a capability provided with the game engine. Sound is crucial, as we know, in AR VR for immersion, game engines typically support spatial audio, which allows sound to be positioned in 3D space relative to the user. This enhances the feeling of presence, as user can perceive sound coming from specific direction and distance, like we briefly spoke about earlier as well. Animation scripting is another capability provided by a game engine. Game engines support custom animation scripting, often using C sharp in Unity or C in Unreal, allowing developers to create interactive scenarios and dynamic object behaviors. Support for interactive. interaction input is another capability that the game engines provide These game engines are designed to handle user input from vr controllers hand tracking systems and even voice commands This enable more natural and intuitive way to interact with virtual objects making arvr applications more engaging Other aspect or capability provided by game engine is scene management. Now these game engines allow developers to organize complex scenes with multiple objects, layers, and environments. In AR VR, this is especially helpful for creating layered experiences where virtual objects can interact with the physical spaces and each other in highly complex ways. Developers tools and asset store is another aspect which is very important and provided by most of the game engines. These game engines come with a wide range of developer tools, debugging features, and asset stores with pre made objects, textures, and animations. These tools help streamline AR VR development, enabling faster iterations and prototyping. Now lastly cross platform support is another big capability generally provided by game engines Now these game engines often support multiple platforms like ios android oculus and hololens Etc allowing arvr application that can run on various devices Now we covered unity which is basically the core piece of software that one needs to be very familiar with if they are developing for arvr Or games But there is another aspect which we need to be very familiar with when developing for AR VR Now for anyone working on creating immersive experiences like virtual worlds a deep understanding of concepts such as shaders and materials Lighting and cameras vfx and animation is very important These are particularly useful for 3d artists involved in creating assets and the words which basically are used by engineers to put together the whole You know experience of the game together I'll briefly explain these Shaders and materials, basically, let's start by talking about shaders and materials. 3D shapes are generally represented using meshes. To draw something in Unity, you must provide information that describes the shape and the information that describes the appearance of its surface. You use meshes to describe shape and materials to describe appearance and surfaces. Shaders, pixel colors for realistic or stylized visuals. There's another thing we should talk about, which is a render pipeline, which basically process scene objects for display, right? They basically look at what is visible in the scene and cull what is out of the scene, include what is there in the scene to continuously update, render, update and render the display. There are different kinds of pipelines. render pipelines like URP, HDRP, or built in pipelines, which one needs to familiarize themselves with. Let's talk about now lighting and cameras. Now lighting models, real world light behavior with adjustable global illumination and lighting modes. There are things like baked lighting, real time lighting which one needs to understand. Now cameras basically flatten 3D scenes for 2D screens capturing and presenting the game world to players. Okay, so what is vfx and animation now vfx include particle systems decals large scale graphical effects to enhance immersion So for example a fire coming on the screen or a vfx Effect of emotes and all of those things are basically the vfx capabilities which basically are designed by artists Now animation provides features like retargeting, runtime control, state machines, and blend, blend shapes for lifelike motion and facial expression. So animation is something which is also very important for us to understand when developing for ARVR. Another crucial aspect that one needs to familiarize themselves with is post processing. Now, post processing is basically about visual enhancements via camera applied effects like filters and image corrections. Realistic 3D audio support, like directional sound, distance effects, and environmental acoustics like echoes are also part of post processing. Lastly, UI design and prototyping. This basically involves tools for creating user friendly interfaces and quick prototyping of assets and ideas. There are various tools which basically are used by the creative community to do all of this work, and then create, immersive 3D experiences. There are tools like Blender, Unity, ProBuilder, Maya, which basically are very popular among the creative community for creating these assets. And lastly, let's take a quick view of different, AR SDKs that can be used for AR development. we'll talk a few, talk about a few popular ones like ARKit, ARCore and Vuforia. For example, ARKit is provided by Apple, quite popular among, iOS developers. ARCore likely supported by Google. Very famous among Android developers. Euphoria is another very popular, AR SDK, and with a very good integration with Unity, is very, is another popular, AR SDK. Likewise, there are many others which, which can be leveraged to do AR. Now we covered about, tools like Game Engine, AR SDKs, and talk about different creative concepts. Now, despite these tools, building XR applications is quite challenging, which we'll discuss now. So what are the challenges unique to XR development? Now, creating a successful AR VR product is no small feat. Let's explore some of these unique challenges developers face and techniques to overcome them. First, let's start by talking about hardware limitations. Now, there are several hardware limitations, such as limited processing power, battery life, form factor and comfort, display quality, etc., that one needs to pay attention to when developing for XR. Let's start talking about each of these, basically hardware related challenges. So let's start by talking about processing power. Now AR VR experiences are resource intensive, demanding high computation power to render realistic graphic at high frame rates. Developers must optimize their code, manage memory usage efficiently to ensure a great, great, result from the processing power perspective. Other hardware limitation is battery or challenges battery life. Achieving a balance between performance and battery life consumption is critical, especially for standalone devices. Techniques like 4 bit rendering where only area that the user is directly looking at is rendered in high detail helps save processing power and battery life. Likewise, there are other techniques which are very important to, which are very important for taking consideration of battery life. Form factor and comfort is another aspect from the hardware perspective, which XR developers need to pay attention to. The physical design of headset impacts user adoption. Reducing weight, improving ergonomics, and balancing the headset are priorities to ensure user can wear devices for extended periods of time comfortably. Lastly, from the hardware perspective, let's talk about display quality. Now, fast refresh rates and high resolutions are necessary to deliver a smooth visual like we have spoken about earlier, but they also introduce challenges like heat generation and increased power consumption. Display technologies like OLED, micro LED are being explored to provide better visuals without these trade offs. With that, let's move on to talk about latency and motion sickness as another challenge unique to XR development. Now latency is a significant challenge in VR. If there is even a small delay between the user's physical environment and visuals being displayed, it can lead to cyber sickness ensuring. Now ensuring low latency requires efficient tracking algorithms. Now real time tracking and rendering algorithms are very important to keep the experience. This includes head tracking, eye tracking, and position tracking. Basically, all the tracking that we are doing is basically has to be in real time to avoid any sort of latency. Otherwise, users generally get motion sickness. Another technique which is very useful to avoid latency and reduce motion sickness is using predictive algorithms. Now, predictive algorithms can help compensate for latency by predicting the user's next move and adjusting the visuals accordingly, ensuring that the user remains immersed without any lag. Then let's talk about tracking through multiple sensors, which is challenging as far as XR development is concerned. Now, reliable tracking of head, hand, and body movements is essential. AR, VR devices rely on sensors like cameras, gyroscopes, and accelerometers. Developing robust sensor fusion algorithms that integrates data from multiple sensors is one of the techniques that allow for accurate and responsive tracking, which is crucial for immersion. Now content creation in 3D modeling is another challenge very unique to XR development. High quality 3D content is essential for creating immersive experiences. However, creating a detailed model that looks realistic while running smoothly across different hardware configurations is a big challenge. Developers use several optimization techniques like level of details and texture compression. Level of detail reduce the complexity of 3D model when they are far away and ensuring performance without sacrificing visual quality. Text compression reduce texture size without, texture compression reduce texture size without significant loss in detail to optimize load time and memory usage. Now let's talk about debugging and testing challenges. Testing AR VR requires evaluating performance across various environments, device types, and user scenarios. Developers use a combination of simulated environments and real world testing to address potential issues. Automated testing tools for stress testing, the rendering pipeline, and sensor inputs can also help identify certain bottlenecks. The user safety and health is another challenge which is very unique to XR development Ensuring the safety and comfort of user is critical extended use of VR can lead to eye strain and physical discomfort as well as Hazards, so developers need to design experiences that minimize this effect and encourage regular breaks Integrating safety features like a boundary system like guardian can prevent users from bumping into real world objects Now, we spoke about these challenges and some of these techniques to overcome these challenges, but nonetheless, overcoming these challenges require a careful optimization around strategies, which we will talk about next. So what does it take to build a lovable and scalable XR product? Now buildings a lovable and scalable excel product that scales across devices and user exp, and users and is loved by customers require paying attention to several key aspects. And we'll talk about three key areas, which is focus on user design and experience optimizing performance and focus of inter focus on interoperability and ecosystem integration. Let's start by talking about focus on user experience design. Now AR and VR is all about spatial interactions. The way users move and interact with virtual objects must feel natural. Some of the areas to pay attention to are spatial design. Developers need to leverage principles of spatial design to create intuitive and engaging experiences. Environment variability is another aspect which is related to user experience. Now AR experiences must work well in diverse settings from bright outdoor environments to dim indoor ones. Developers can use techniques like adaptive lighting and robust tracking to ensure consistency. Adaptive UI UX for varied user scenarios. is another thing which one needs to pay attention to. Now, users may switch between indoor and outdoor setting, or from sitting to standing, designing adaptive UI UX ensures that experience remain intuitive and responsive across varied scenarios. Now, optimizing for performance, is another critical aspect of building a lovable and great, XR experience. As you've already seen, performance is a critical aspect for XR application. We can optimize performance in several ways. First is we can adopt a low latency architecture like edge computing which can really help minimize delays. We can also optimize 3d content as you have seen 3d content is very computation heavy and have involved involves a performance penalty. So we can use best practices in optimizing the 3d entry content 3d content which can Ensure high performance without sacrificing visual quality. This involves efficient use of textures shader and lighting We should also pay attention to minimizing bandwidth usage by finding ways To reduce the bandwidth usage without finding qualities, techniques like adaptive streaming and compression can be very beneficial in this regard. Lastly, let's talk about interoperability and ecosystem integration. We briefly touched upon the concept of interoperability earlier, but creating a robust ecosystem that supports multiple devices and platforms ensures that the users have seamless experience, whether they are on mobile, VR, or desktop. Interoperability can also encourage third party developers to build on your platform. Encouraging application, you know spread from this aspect we can focus on following like You know following like we can start with we can think about x device and platform compatibility So for this we should build using standard methods that allow your apps to work across devices and headsets and platforms We can also adopt standard tools and skill sets Now allowing use of standards and popular tools such as unity for development encourages third party developers to develop apps And integrations enriching user experience and enhancing further reach of your application So we've spoken about, so far about the challenges unique to XR development, what the, what are the key software concepts of XR development and how can we overcome some of the challenges we've spoken about and different tools used, right? I want to end this, session by spending some time talking about how can we leverage AI to basically create compelling XR experiences, right? As we've spoken about, creating compelling XR products demands significant effort. But AI can accelerate development, enhance user experience, and empower creator. So let's start, to look at each of these aspects in a little bit more detail. Let's start by talking about improving AR VR development through XI. Now there are multiple ways in which AI can, accelerate or improve AR VR development experience for the developer themselves. First is by automated asset creation. Now 3D assets, textures and environments saving time for developers. Tools like DALI enable creators to produce high quality visuals from simple inputs. realistic physics and animations is another area where AI can help significantly. AI powered physics engines can simulate real world behaviors more accurately, making AR VR applications feel natural. Another aspect is procedural generation. Now AI enables the automated generation of complex environment, which is useful for open world VR games and simulation. Another final aspect is enhanced testing and debugging. Now AI can assist in QA processes by automatically testing interactions and identifying glitches or bugs in AR VR environment, which are difficult to catch. Algorithms, these algorithms can simulate user interaction, finding edge cages that humans might otherwise miss. another area where AI can, significantly, help improve, the user experience is, another area is basically where AI can significantly help is elevating the user experience. so there are multiple, aspects here as well. for example, personal personalized interaction. Now a LL algorithms can personalize content based on user's preferences and behaviors, creating more engaging and tailored experiences. For instance, VR experiences can adapt in real time to a user's emotional response. Tracked through AI based, analysis of biometrics. AI can also help with. Natural language processing. Now NLP powered AI can enable natural, conversational interactions with AR VR experiences. This is useful for applications like VR education or training simulations where users can interact with virtual characters like, like in a human like way. Now enhanced spatial audio is another aspect where AI can help improve the user experiences. AI can help enhance spatial audio, making sound appear to come from specific direction, distance, or even specific objects. Deep learning models can also personalize audio experience based on user preferences, immersive experience. Immersive experience. Finally, emotion detection and adaptation is another area in which AI can significantly help improve the user experience. For example, AI can monitor facial expressions and body language to direct the user's emotional state and adapt the experience accordingly. This is especially useful in VR training, therapy and gaming. where real world adaptation can improve engagement and outcomes. Lastly, let's talk about how can AI empower creators. So there are multiple ways, for example, content creation assistance. Now, AI driven tools help creators draft narratives, creative scripts, or storylines that adapt to user choices and behaviors in real time. For example, a generative model can assist creators Game writers by suggesting branching story paths. AI can also help by, word authoring, which is basically, a significant effort otherwise. lastly, AI can significantly democratize access to tools, encouraging more people to create, for AR. now AI powered low code or no code platforms like, which basically empower creators with minimal programming skills to develop compelling AR VR experiences, allowing a wide range of creators to enter the field, which otherwise would be limited because of the steep learning curve of tools and technology in this particular area. alright, with that we have come to the end of the presentation. Hope this was useful as we explore the transformative potential of xr, the unique challenges and for of developing for this platform and the role of creating, role of AI in creating scalable LAN applications. With that, I want to thank you, all for your time today. Please feel free to connect with me on LinkedIn if you're working on or looking to explore this space. Thank you so much for your time. Bye.
...

Gunjan Agarwal

Engineering Leadership @ Meta

Gunjan Agarwal's LinkedIn account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)