AR and VR for React Native

The best way to build
AR and VR apps with
React Native.

ViroReact is the most widely used open-source library for building augmented reality and virtual reality apps with React Native. Write one TypeScript codebase and ship it natively to iOS, Android, and Meta Quest. No Unity, no new language, no separate VR project.

An AR and VR scene built with ViroReact and React Native, rendered natively on device

Why ViroReact is the best way to build AR and VR with React Native

Most XR tools hand you a renderer and leave the rest to you. ViroReact gives React Native developers native AR and VR, open source, from a single codebase.

Native rendering, not WebAR

Compiles to true native ARKit, ARCore, and OpenXR draw calls, not a browser canvas. Hardware-speed rendering, occlusion, PBR lighting, spatial audio, and custom shaders on the device GPU.

One codebase for AR and VR

The same ViroARScene runs as augmented reality on a phone and as virtual reality on Meta Quest. Route it with ViroXRSceneNavigator from one React surface, no second project to maintain.

TypeScript and JSX, not C#

Declarative components, typed props, and familiar React patterns. Your existing CI, linting, and testing all keep working, and teams are productive in days rather than months.

Open source, free forever

The ViroReact renderer is MIT licensed with no runtime fees and no per-seat pricing. The full source is on GitHub, so you keep control of your stack and your data.

From one codebase to AR and VR

Write your scene once in React Native. ViroReact renders it natively as augmented reality on mobile and virtual reality on Meta Quest.

01

Write once in React Native

Build your scene as declarative ViroReact components in TypeScript, the stack your team already knows. No new engine, no C#, no native bridges to wire up by hand.

02

Ship AR on iOS and Android

ViroReact compiles to native ARKit and ARCore draw calls, so your augmented reality runs at hardware speed with plane detection, LiDAR depth, occlusion, and PBR lighting built in.

03

Extend to VR on Meta Quest

The same codebase targets Meta Quest through OpenXR: stereoscopic rendering, 6DoF tracking, controllers, hand tracking, and passthrough mixed reality on Quest 3 and 3S.

ViroReact rendering a native AR and VR experience built with React Native

What the integration looks like

Install ViroReact in your React Native or Expo project, then route one scene across mobile AR and Meta Quest VR with a single navigator component.

$npm install @reactvision/react-viro
App.tsx
// One React surface. AR on mobile, VR on Meta Quest.
import { ViroXRSceneNavigator } from '@reactvision/react-viro';
import SpatialScene from './SpatialScene';

export default function App() {
  return (
    <ViroXRSceneNavigator
      initialScene={{ scene: SpatialScene }}
    />
  );
}
Development build required. ViroReact does not run in Expo Go because AR and VR APIs need native modules. You will need a development build to test on device, and AR requires a physical iOS or Android phone, simulators and emulators are not supported.

Design visually, or let AI write the ViroReact

ReactVision Studio is a browser-based editor for building AR and VR scenes with drag-and-drop tools, or from a prompt with the Studio AI Agent. For the parts you write in code, the ViroReact MCP server gives your AI coding agent full context of the renderer: components, prop schemas, event handlers, and working examples, so it writes ViroReact that runs first time.

The ViroReact MCP server writing React Native AR and VR code in a Claude Code session

React Native AR and VR vs Unity vs WebXR

Where ViroReact sits against a full game engine and a browser-based WebGL renderer for building AR and VR apps, line by line.

CapabilityUnity / UnrealThree.js / R3F (WebXR)ViroReact
Stack and languageC# / C++ game engineJavaScript / WebGLTypeScript + React Native
AR on iOS and AndroidSupported, separate buildWebXR, limited and slowerNative ARKit and ARCore
VR on Meta QuestSeparate VR workflowBrowser WebXR onlyNative OpenXR, same codebase
One codebase for AR and VRNo, separate projectsPartial, via WebXRYes, one React surface
Visual scene editorUnity Editor, C# scriptingNone built inReactVision Studio, in browser
Open source rendererProprietary engineOpen source, web onlyViroReact, MIT licensed
Team ramp-upMonths, new engineDays for web devsDays for React Native devs
Cost at scale$2,200 / seat / yr above $200K revFree renderer, self-assembledFree renderer, tiered Platform

Common questions about building AR and VR with React Native

What is the best way to build AR and VR apps with React Native?
ViroReact. It is the most widely used open-source library for building augmented reality and virtual reality apps with React Native and Expo, and the only one that renders natively through ARKit, ARCore, and OpenXR from a single TypeScript codebase. You get native performance, MIT open source with no runtime fees, first-class React Native integration, and one codebase spanning mobile AR and Meta Quest VR.
Can one React Native codebase target both AR and VR?
Yes. ViroXRSceneNavigator routes a single scene across mobile AR and Meta Quest VR from one React surface, so the ViroARScene you build for augmented reality on a phone also runs as virtual reality, and as mixed reality passthrough on Quest 3 and 3S. There is no separate VR project to maintain.
Does it work with Expo?
Yes, with full Expo support. You need an Expo development build rather than Expo Go, because AR and VR APIs require native modules. The ViroReact Starter Kit is an Expo and TypeScript template that handles the development-build setup for you.
Which devices and platforms are supported?
iOS (ARKit) and Android (ARCore) are supported for augmented reality, and Meta Quest via OpenXR is supported for virtual reality and mixed reality passthrough on Quest 3 and 3S. visionOS is in internal preview and Android XR is coming soon.
Do I need to learn Unity, C#, or 3D modelling?
No. If you know React Native and TypeScript you already know how to build with ViroReact. ReactVision Studio lets you design AR and VR scenes visually in the browser, with AI-powered 3D asset generation built in, so you do not need to learn Blender or a game engine.
How much does it cost?
ViroReact is MIT licensed, free forever, and fully open source. Scene editing and platform features such as Cloud Anchors and Geospatial AR are available via ReactVision Studio on a free tier, with paid tiers for production apps. Studio is currently in Public Beta and free to sign up.
How does this compare to Unity or a WebXR renderer like Three.js?
Unity and Unreal are full game engines in C# or C++ with months of ramp-up and a separate VR workflow. Three.js and React Three Fiber render into a browser canvas and reach AR and VR only through WebXR, which is limited and slower. ViroReact compiles to native ARKit, ARCore, and OpenXR draw calls through familiar React Native APIs, with AR and VR from one codebase and ramp-up in days.

Start building AR and VR with React Native

Design a scene in ReactVision Studio, drop the ViroReact component into your React Native or Expo app, and ship native AR and VR from one codebase.

$npm install @reactvision/react-viro

Support

Community

Have a quick question or need feedback? Jump into our Discord for real-time chat, or post on r/ReactVision to get answers, code samples, and tips from thousands of fellow builders.

ReactVision Partners

Need deeper help? Engage a trusted ViroReact Partner. Certified agencies and consultants can architect, build, or optimise your XR app, run performance audits, and guide store launches so you ship faster with confidence.

iOS (ARKit)Android (ARCore)Meta Quest (OpenXR)Expo