neom_vr
An experimental Virtual Reality module for Flutter applications, part of the Open Neom ecosystem. Focused on democratizing VR for smartphone users without expensive equipment.
Current Version: 1.2.0
Philosophy
VR must be accessible to everyone. We believe immersive experiences shouldn't require expensive headsets. neom_vr explores novel ways to deliver VR using readily available mobile devices.
Features
Current Capabilities (v1.2.0)
- Custom Painter Engine: Native VR rendering without external library dependencies
- Sensor-Based Navigation: Uses device sensors (accelerometer, gyroscope) for head tracking
- 360 Spatial Viewer: Immersive panoramic content viewing
- Stereo VR Mode: Split-screen for Google Cardboard-style headsets
- Fullscreen Experience: Optimized immersive viewing
Installation
dependencies:
neom_vr:
git:
url: git@github.com:Cyberneom/neom_vr.git
Usage
import 'package:neom_vr/vr_routes.dart';
// Navigate to 360 spatial viewer
Navigator.pushNamed(context, VrRoutes.spatial360);
// Navigate to stereo VR mode
Navigator.pushNamed(context, VrRoutes.vrStereo);
ROADMAP 2026: Accessible VR Platform
Our vision is to create a world-class mobile VR platform that makes immersive experiences accessible to everyone with a smartphone.
Q1 2026: Core Engine Enhancement
Rendering Engine
GPU-Accelerated Rendering - Custom shader-based 360 projectionOptimized Painter Engine - 60 FPS on mid-range devicesLOD System - Level of detail for performance scalingTexture Streaming - Progressive loading for large panoramasAnti-Aliasing - MSAA/FXAA for smoother edges
Sensor Fusion
Advanced IMU Processing - Kalman filter for smooth trackingMagnetic Calibration - Compass integration for absolute orientationDrift Correction - Long-session stabilityLow-Latency Pipeline - <20ms motion-to-photonPrediction Algorithm - Compensate for rendering latency
Q2 2026: Content & Formats
Media Support
360 Video Playback - Equirectangular and cubemap formats8K Support - High-resolution panoramic videosSpatial Audio - 3D positional audio tied to head trackingLive Streaming - Real-time 360 contentOffline Caching - Download VR content for offline viewing
Content Types
Photo Spheres - High-resolution panoramic imagesVirtual Tours - Multi-room navigation with hotspots360 Stories - Interactive narrative experiencesVR Galleries - Art and photography exhibitions
Q3 2026: Interactive Experiences
User Interaction
Gaze-Based Selection - Look-to-select UICardboard Button Support - Physical trigger inputVoice Commands - Hands-free navigationGesture Recognition - Camera-based hand tracking (experimental)
Guided Experiences
VR Meditation - Immersive mindfulness environmentsBreathing Exercises - Visual breath guides in VRNature Escapes - Calming virtual environmentsFocus Spaces - Distraction-free work environments
Q4 2026: Advanced Features & AI
Biofeedback Integration
Heart Rate Visualization - Real-time HRV display in VREEG Integration - Brainwave visualization (with compatible devices)Stress Response - Environment adapts to user stateSession Analytics - Track relaxation progress over time
AI-Powered Features
Auto-Generated Environments - AI creates calming scenesPersonalized Experiences - Content adapts to preferencesSmart Recommendations - Suggest VR content based on moodVoice-Guided Sessions - AI narration for meditation
Social VR (Experimental)
Shared Viewing - Watch 360 content togetherVirtual Rooms - Basic avatar presenceGroup Meditation - Synchronized guided sessions
Technical Architecture Goals
lib/
├── core/
│ ├── engine/
│ │ ├── vr_painter_engine.dart # Custom 360 rendering
│ │ ├── projection_math.dart # Equirectangular/cubemap math
│ │ ├── shader_programs.dart # GPU shaders
│ │ └── texture_manager.dart # Efficient texture handling
│ ├── sensors/
│ │ ├── imu_processor.dart # Accelerometer + Gyroscope
│ │ ├── sensor_fusion.dart # Kalman filter implementation
│ │ └── drift_correction.dart # Long-session stability
│ └── audio/
│ ├── spatial_audio.dart # 3D positional audio
│ └── ambisonic_decoder.dart # Surround sound support
├── features/
│ ├── viewer_360/ # Panoramic viewer
│ ├── video_360/ # 360 video player
│ ├── stereo_vr/ # Cardboard-style split view
│ ├── interactive/ # Gaze selection, hotspots
│ ├── meditation/ # Guided VR experiences
│ └── biofeedback/ # Health data visualization
└── ui/
├── vr_scaffold.dart # Base VR page structure
├── gaze_pointer.dart # Look-to-select cursor
└── vr_controls.dart # In-VR UI elements
Performance Targets
- Frame Rate: 60 FPS sustained on mid-range devices
- Motion-to-Photon: <20ms latency
- Memory Usage: <300MB for 4K content
- Battery Impact: <15% per hour of use
- Startup Time: <2s to immersive view
- Thermal: No throttling for 30min sessions
Device Compatibility Goals
| Tier | Devices | Features |
|---|---|---|
| High | Flagship (2024+) | Full 8K, spatial audio, all effects |
| Medium | Mid-range (2022+) | 4K content, basic audio, core effects |
| Low | Budget (2020+) | 2K content, mono audio, essential VR |
Competitive Positioning
| Feature | neom_vr (2026) | YouTube VR | Google Cardboard | Within |
|---|---|---|---|---|
| Custom Engine | Yes | No | No | No |
| Meditation Focus | Yes | No | No | Yes |
| Biofeedback | Yes | No | No | No |
| Offline Mode | Yes | Limited | Yes | Yes |
| Open Source | Yes | No | Partial | No |
| No Ads | Yes | No | N/A | Freemium |
Dependencies
neom_core- Core services and configurationneom_commons- Shared UI componentssensors_plus- Device sensor access
License
Apache License 2.0 - see LICENSE for details.
Open Neom - Democratizing VR for conscious digital experiences.
Libraries
- data/translations/vr_de_translations
- data/translations/vr_en_translations
- data/translations/vr_es_translations
- data/translations/vr_fr_translations
- domain/use_cases/neom_360_viewer_service
- engine/neom_vr_360_engine
- engine/neom_vr_painter_engine
- ui/experimental/neom_360_viewer_controller
- ui/experimental/neom_360_viewer_page
- ui/experimental/neom_chrome_page
- ui/experimental/panorama_view
- ui/experimental/video_section
- ui/painters/neom_spatial_painter
- ui/painters/neom_vr360_stereo_painter
- ui/spatial/neom_spatial_360_controller
- ui/spatial/neom_spatial_360_fullscreen_page
- ui/vr_stereo/neom_vr360_stereo_controller
- ui/vr_stereo/neom_vr360_stereo_page
- ui/widgets/vr_widgets
- utils/constants/vr_constants
- utils/constants/vr_translation_constants
- vr_routes