Mobile VR app for training and simulations

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
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 1 servicesAll 1735 services
Mobile VR app for training and simulations
Complex
from 2 weeks to 3 months
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Mobile VR App Development for Training/Simulations

VR training works because the brain poorly distinguishes simulated from real experience. Surgeon practicing incision in VR engages same motor patterns as in operating room. Maintenance technician performing tasks on virtual equipment memorizes sequence through muscle memory. For mobile VR this imposes specific requirements: quality of simulation matters more than graphic realism.

Training Scenario Types and Technical Requirements

Different scenarios require different architecture:

Simulation Type Technical Focus Key Challenges
Step-by-step procedures Sequence, step verification State machine, fail conditions
Emergency situations Time pressure, stress test Timers, branching scenarios
Soft skills / communication Dialog trees, NPC AI dialogue, facial animation
Technical maintenance Object manipulation Interaction system, physics
Spatial orientation 3D navigation Spatial audio, waypoints

Scenario Engine: State Machine for Training Scenes

Training module is always branching scenario with success conditions, errors, transitions. Hard script doesn't work: must track user actions and respond.

// Unity: ScenarioManager based on ScriptableObject
[CreateAssetMenu(menuName = "Training/Scenario")]
public class TrainingScenario : ScriptableObject {
    public List<TrainingStep> steps;
    public int currentStepIndex;

    public TrainingStep CurrentStep => steps[currentStepIndex];

    public StepResult ValidateAction(TrainingAction action) {
        var step = CurrentStep;
        if (step.RequiredAction == action) {
            currentStepIndex++;
            return currentStepIndex >= steps.Count
                ? StepResult.ScenarioComplete
                : StepResult.StepComplete;
        }
        step.ErrorCount++;
        return StepResult.WrongAction;
    }
}

TrainingAction is enum of all possible user actions: GrabObject, PressButton, NavigateTo, ConfirmChoice. Each step may have hints appearing when ErrorCount > threshold.

Interactivity: Object Manipulation in VR

Cardboard has one button. Full object manipulation requires either additional Bluetooth device (gamepad) or build interaction purely on gaze + dwell.

Gaze-based interaction for training:

User looks at object, progress indicator appears (filling ring), after 1.5–2 seconds — activation. For step-by-step training this works well because each step is predetermined — no need to figure out arbitrary manipulation.

For more complex interaction — 3DoF controller (Bluetooth) or move to 6DoF platform (Meta Quest, though beyond Cardboard scope).

Evaluation and Analytics

Training without progress measurement is useless. Each user action logged:

public struct TrainingEvent {
    public string userId;
    public string scenarioId;
    public int stepIndex;
    public TrainingAction action;
    public bool isCorrect;
    public float timeSpent;
    public int attemptNumber;
    public DateTimeOffset timestamp;
}

Metrics from this data:

  • Completion rate — how far users progress
  • Error rate per step — where mistakes happen (hints instruction/UI improvement)
  • Time-to-complete — improvement dynamics per iteration
  • Drop-off points — where users quit

Data sent to analytics (Firebase, custom backend) asynchronously. Batch send on network recovery.

Spatial Audio as Instructor

In training simulations sound is not background. Voice instructor narrates instructions. Positional audio directs attention: sounds from target object louder when user turns toward it.

On Android — Resonance Audio SDK. On iOS — AVAudioEnvironmentNode with positional sources. Subtitles mandatory: some users use devices without headphones.

Content Updates Without Recompilation

Training scenarios change: new equipment, updated procedures. Unity Asset Bundle system loads new 3D assets and ScenarioScriptableObject from server without Store app update.

// Load new training module as Asset Bundle
async Task<TrainingScenario> LoadScenarioBundle(string bundleUrl) {
    var bundle = await AssetBundle.LoadFromUriAsync(bundleUrl);
    return bundle.LoadAsset<TrainingScenario>("scenario");
}

Workflow

Analyze training content: subject domain, action types, required metrics.

Develop scenario engine: state machine, steps, success/failure conditions, hints.

3D content: create or adapt equipment models, environment.

Gaze interaction system, spatial audio instructor.

Analytics: event logging, backend transmission, progress dashboard.

Asset Bundle system for content updates without release.

Timeline Estimates

One training module with linear scenario and gaze interaction — 2–4 weeks. Platform with multiple modules, analytics, LMS integration, content update system — 2–4 months.