MKaczmarski07 / 360-Panorama-VR

Angular implementation of 360° Panorama Viewer with VR functions
MIT License
2 stars 3 forks source link
angular deviceorientation-api equirectanguar-projection threejs vr

360° VR Panorama Viewer

Angular implementation of an interactive 360 panorama viewer, allowing for watching an illusion of the three-dimensional world, using eqirectangular image superimposed on the sphere. User can move the camera with mouse or finger as well as using gyroscpope sensor in mobile devices, getting VR-like experience.

presentation

Official Website 🌐

panorama.kaczmarski.dev

Technology Stack

Three.js 🔗
Angular 🔗
TypeScript 🔗
Sass 🔗

How does it works?

Creating 3D background

VR functionality

⚠️ Important - In order to correctly represent rotation in 3D space using Device Orientation API, it is necessary to use quanterions or rotation matrices. Basing the rotations on pure sensor data (so-called Euler angles), we may encounter the Gimball Lock problem. This is perfectly described in this article.

Installation Guide ⚙️

Here's a step-by-step guide to help you get started with the project.

Prerequisites

Before you begin, make sure you have the following installed on your machine:

Installation

Let's start with installing all dependencies. Move to the app main workspace and run:

npm i

To create a localhost port you should type:

ng serve

Your application is ready at port 4200.

http://localhost:4200/

License and Copyrights 📜