Galaxy Cinema VR is a browser-based Virtual Reality application that lets users watch their own locally stored video files inside a fully immersive, peaceful 3D galaxy environment โ no uploads, no subscriptions, no cloud storage required.
The user selects any video file from their device, presses a single button, and is transported into a virtual cosmic cinema where a giant screen floats among 15,000 procedurally generated stars and glowing nebulae.
Built as a solo project to explore the intersection of WebXR, 3D real-time rendering, and immersive user experience design โ the three pillars of next-generation VR game development.
| Feature | Description |
|---|---|
| ๐ Procedural Galaxy | 15,000 stars dynamically generated and animated in a massive 3D sphere |
| ๐ Nebula Clouds | Transparent volumetric gas clouds placed for depth and atmosphere |
| ๐ฌ Local Video Playback | Plays any video from device storage โ no upload or server required |
| ๐บ 16:9 Cinema Screen | Full-scale virtual screen with real-time video texturing via Three.js |
| ๐ก Dynamic Screen Lighting | Rectangular light attached to the screen simulates real cinema glow |
| ๐ฅฝ Meta Quest 3 Optimized | Full stereoscopic WebXR rendering for immersive VR headset experience |
| ๐ Privacy First | All video processing happens in browser memory โ no data ever leaves the device |
| ๐ Zero Installation | Runs entirely in a web browser โ no app store, no download required |
This project was born from two parallel interests:
-
VR Game Development โ Learning to build real-time 3D environments using Three.js and WebXR, understanding spatial rendering, lighting physics, and immersive UX design patterns used in modern VR games.
-
Japan Career Goal โ Japan's game and XR industry (Nintendo, Sony Interactive, Capcom, Bandai Namco) leads the world. This project demonstrates hands-on capability with the exact technologies these studios use and value: real-time 3D rendering, VR interface design, and hardware-native WebXR APIs.
- Three.js โ 3D graphics engine for scene, camera, geometry, materials, and lighting
- WebXR API โ Web standard for VR hardware interface, stereoscopic rendering, and headset tracking
- Vite โ Build tool and development server for fast module bundling
- HTML5 / CSS3 / JavaScript โ Pre-VR UI dashboard and application logic
navigator.xrโ WebXR device detection and session managementURL.createObjectURL()โ In-browser video blob processing (no server upload)THREE.VideoTextureโ Real-time video frame piping to 3D canvas materialTHREE.RectAreaLightโ Physically accurate rectangular cinema screen light
Galaxy Cinema VR
โ
โโโ A. Initialization
โ โโโ 3D Scene + Camera setup
โ โโโ HTTPS security check (required for WebXR on Meta Quest)
โ โโโ WebXR hardware compatibility check
โ
โโโ B. Pre-VR Dashboard (2D UI)
โ โโโ Local video file selector
โ โโโ In-browser blob URL generation (privacy-safe)
โ โโโ "Enter Galaxy" button (unlocked after valid file)
โ
โโโ C. Galaxy Environment
โ โโโ Procedural star field (15,000 points, random 3D sphere)
โ โโโ Nebula gas clouds (transparent colored spheres)
โ โโโ Continuous ambient star rotation (time-based animation)
โ
โโโ D. Cinema Screen
โ โโโ 16:9 geometry canvas positioned at default camera focus
โ โโโ THREE.VideoTexture โ live video โ 3D material
โ โโโ RectAreaLight attached to screen coordinates
โ โโโ Floor grid for spatial depth/scale reference
โ
โโโ E. WebXR Session
โโโ Flat browser โ stereoscopic headset rendering
โโโ Video playback begins on 3D cinema screen
- Node.js (v18+) and npm installed
- A WebXR-compatible browser (Chrome, Edge, Firefox Reality)
- Meta Quest 3 headset or any WebXR browser (desktop VR mode works too)
- Project must be served over HTTPS for VR features (required by WebXR)
# Clone the repository
git clone https://github.com/Anil-CAI/vr_theater.git
# Navigate into the project
cd vr_theater
# Install dependencies
npm install
# Start the development server
npm run dev# Build for production (serves over HTTPS via Vite)
npm run build
npm run preview
# Or use a local HTTPS tunnel for development:
npx vite --httpsThen on your Meta Quest 3:
- Open the Meta Quest Browser
- Navigate to your local HTTPS URL
- Select your video file from device storage
- Press "Enter Galaxy" โ put on your headset and enjoy ๐
vr_theater/
โโโ index.html # Entry point + pre-VR dashboard UI
โโโ main.js # Core application logic
โ โโโ sceneSetup() # Three.js scene, camera, renderer
โ โโโ buildGalaxy() # Procedural star + nebula generation
โ โโโ buildScreen() # Cinema screen + video texture + lighting
โ โโโ enterVR() # WebXR session initialization
โโโ style.css # Pre-VR dashboard styling
โโโ package.json # Vite + dependencies
โโโ vite.config.js # Build configuration
- Procedural galaxy environment (stars + nebulae)
- Local video file playback in VR
- Meta Quest 3 WebXR integration
- Dynamic cinema screen lighting
- Hand tracking support (Meta Quest 3 native)
- Spatial audio โ video sound positioned from screen direction
- Multiple theater environments (space station, underwater, forest)
- VR UI panel โ play/pause/seek controls usable in headset
- Playlist support โ queue multiple local videos
- Multi-user mode โ watch together in the same galaxy (WebRTC)
This project directly demonstrates skills relevant to VR game development and XR engineering roles:
| Skill Area | Demonstrated By |
|---|---|
| Real-time 3D rendering | Three.js scene, materials, lighting, animation loop |
| VR hardware interface | WebXR API session management, stereoscopic rendering |
| Procedural generation | Mathematical star field generation (15,000 points) |
| Immersive UX design | HTTPS security flow, progressive UI unlock, spatial anchoring |
| Performance optimization | Blob URL video processing, efficient render loop |
| Web standards | WebXR, HTML5 Video, Canvas API, ES Modules |
This project aligns directly with the XR and game development work done at Japanese studios I'm targeting:
- Sony Interactive Entertainment โ PlayStation VR2 experience design
- Telexistence (TX Inc.) โ VR interface engineering for remote robot control
- Bandai Namco โ Immersive VR arcade and home experience development
- Capcom โ Real-time 3D environment and rendering engineering
ๆฅๆฌ่ช: ใใฎใใญใธใงใฏใใฏVRๆ่กใจWebXR้็บใฎๅฎ่ทต็ใชในใญใซใ็คบใใฆใใพใใๆฅๆฌใฎใฒใผใ ใปใญใใใฃใฏในไผๆฅญใงๅใใใจใ็ฎๆจใงใใ
(This project demonstrates practical VR and WebXR development skills. My goal is to work at a Japanese game or robotics company.)
Anil Kumar โ VR Game Developer & Robotics Engineer from India, working toward a career in Japan's game and XR industry.
- Currently learning: ROS2 ยท C++ ยท OpenXR ยท Japanese (JLPT N5)
- Open to: VR Developer / XR Engineer roles in Japan
- Other projects: ROS-Turtlesim-Guide ยท Python-AI-ML-Experiments
This project is open source under the MIT License.