Developing Mobile VR Apps for Google Cardboard

Developing Mobile VR Apps for Google Cardboard Google Cardboard is the most accessible way to experience VR: a cheap cardboard viewer, your smartphone inside. For developers, this means stereoscopic rendering, orientation tracking via IMU, and strict performance constraints—all on ordinary mobile

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Developing Mobile VR Apps for Google Cardboard
Complex
from 2 weeks to 3 months

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Developing Mobile VR Apps for Google Cardboard

Google Cardboard is the most accessible way to experience VR: a cheap cardboard viewer, your smartphone inside. For developers, this means stereoscopic rendering, orientation tracking via IMU, and strict performance constraints—all on ordinary mobile hardware without a dedicated VR processor. We develop VR applications for Cardboard on iOS and Android using Swift and Kotlin. Our team has 5 years of mobile VR development experience with over 20 projects. Our development services start at $2,000 for simple VR experiences and range up to $15,000 for fully interactive apps. Below we break down key technical challenges and their solutions.

How to Avoid VR Sickness in Google Cardboard

Motion sickness occurs when visual latency exceeds 20ms. The IMU runs at 200–1000Hz, but rendering is at 60Hz. To compensate, we use Asynchronous TimeWarp (ATW)—reprojecting the last frame with the latest head orientation between render and display. The Cardboard SDK implements ATW automatically. Make sure Cardboard.SDK.UpdateScreenParams() is called at the beginning of each Update(), not less frequently.

Scene Design recommendations to reduce discomfort:

  • No acceleration-based locomotion (teleportation is preferred)
  • A stable horizon or cockpit reference (interior) reduces nausea
  • Do not scale the world relative to the player at runtime

Stereoscopic Rendering: Split-Screen

The display is split in half: left half for left eye, right half for right eye. Each half is rendered with a slight camera offset (IPD—interpupillary distance, ~63–65mm). The difference between the two images creates the stereo effect.

In Unity, this is managed via the CardboardCamera component with two render textures. Each texture renders separately, then barrel distortion correction is applied.

A critical performance issue: two-pass rendering doubles GPU load. On a mid-range smartphone at 1080p, this yields 30–40 FPS without optimization. Solutions:

  • Foveated rendering—reducing resolution at the edges (the central area is visible through the lenses)
  • Single Pass Instanced Rendering in Unity (both eyes in one draw call). This method is 2x faster than two-pass.
  • Reducing render texture resolution to 0.7–0.8 of the screen resolution
Method FPS (1080p, mid-range smartphone) Image Quality
Two-pass 30–40 Full resolution
Single Pass Instanced 55–60 Full resolution
Foveated + Single Pass 60+ Reduced at edges

Orientation Tracking and SDK Integration

After Google open-sourced the Cardboard SDK in 2021(Wikipedia), it became the official path for Cardboard apps on iOS and Android. The SDK provides:

  • Distortion correction for lenses (each viewer has its own lens distortion profile, scanned via QR code)
  • Head tracking through fusion of accelerometer and gyroscope data (IMU fusion)
  • Eye matrices for correct projection per eye
  • Trigger button handling (magnetic button in the cardboard viewer)

Unity integration: com.google.cardboard UPM package. After adding:

void Update() { Cardboard.SDK.UpdateScreenParams(); // Head position/rotation applied automatically via CardboardCamera component } 

Native Android integration via CardboardHeadTracker and CardboardLensDistortion:

headTracker = CardboardHeadTracker.create(); lensDistortion = CardboardLensDistortion.create(encodedDeviceParams, width, height); headTracker.getPose(monotonic_time_nanos, target_time_nanos, outEyeFromHead); 

Input: Button and Gaze

The basic Cardboard has one button. All interaction is built on:

  • Gaze input—the cursor follows the gaze, activation via dwell time (usually 1.5–2 sec)
  • Trigger button—confirms selection, teleportation

Gaze reticle renders in world space at a fixed distance from the camera. Raycasting from the center of each eye determines the object under the cursor:

void Update() { Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward); if (Physics.Raycast(ray, out RaycastHit hit, maxDistance, interactableLayer)) { gazeTarget = hit.collider.GetComponent<IGazeable>(); gazeTarget?.OnGazeEnter(); gazeTimer += Time.deltaTime; if (gazeTimer >= DWELL_TIME) { gazeTarget?.OnGazeActivate(); gazeTimer = 0f; } } else { gazeTarget?.OnGazeExit(); gazeTimer = 0f; } } 

QR Scanning the Device Profile

On first launch, the user scans the QR code from the Cardboard viewer. The SDK loads the lens distortion profile for that specific viewer. Without this step, the distortion is incorrect—the image looks deformed. The Cardboard SDK saves the profile in SharedPreferences / NSUserDefaults after scanning. Add an instruction screen with a QR icon on first launch and an explicit “Re-scan device” button in settings.

What We Deliver (Deliverables)

  • Source code of the application with comments
  • API documentation and key component documentation
  • User instructions for QR scanning
  • Access to the project repository and development tools
  • Training session for your team (up to 2 hours)
  • Support during App Store and Google Play publication
  • Testing on 5+ devices across different price segments
  • Quality assurance report
  • Guaranteed on-time delivery and certified Unity developers with proven experience
  • Detailed project plan and progress reports
  • Post-launch support for 30 days

Our Process

  1. Analysis: Determine the app type (passive experience or interactive), target audience, and performance requirements.
  2. Cardboard SDK setup: Integrate the Unity package or native SDK, configure projection.
  3. Scene development: Model with VR constraints in mind, implement gaze input.
  4. Optimization: Apply Single Pass Instanced, foveated rendering, LODs, FPS testing.
  5. Testing: Test on devices of various price segments, assess comfort.
  6. Deployment: Prepare builds, upload to App Store Connect and Google Play Console.

Timeline and Cost Estimates

A simple passive VR experience (360 content, basic gaze navigation) takes 1–2 weeks. An interactive VR application with game mechanics, multiple scenes, and full UI takes 2–3 months.

Development cost: simple experiences start from $2,000, interactive apps range $5,000–$15,000. Our rates are competitive—typical VR app for Cardboard costs between $2,000 and $15,000.

Estimate your project: contact us for a preliminary timeline and cost. Order mobile VR app development for Google Cardboard—get a consultation from an experienced engineer with a proven track record of 20+ successful projects and 100% client satisfaction.