🌟Features
WebGL
- The landing page, washing suite page, and the color kitchen are developed with Three.js library
- The particle system in the smell lobby page is developed with p5.js library
Voting Feature
- API consumption with Axios for fetching data from Firebase's Firestore Database
- Fetch real-time result from firebase when data is updated by any user
Tunnel Interaction (Landing page)
Mouse control (available on non-mobile devices)
- The tube mesh and camera is updated in real time by the mouse's position, hence having an visual effect of a twisted tunnel
Touch control (available on mobile devices)
- The tube mesh and camera is updated in real time by the touched position, hence having an visual effect of a twisted tunnel
Particles Interaction
Mouse control (available on non-mobile devices)
- The particles near the mouse's position will be pushed away
Touch control (available on mobile devices)
- The particles near the touched position will be pushed away
Keyboard Control (available on non-mobile devices)
- Control camera movement in the WebGL canvas by the up / down arrow key or W / S key
Tilt Control (available on mobile devices)
- Control camera movement in the WebGL canvas by the mobile orientation in the beta axes
Physics Engine
Vuex (Storing guest's name)
- At the end of the journey in the landing page, user are prompted to input the name
- The guest name is stored in the Vuex state, which is used for greeting the guest every time when they reach the next room
Deployment
- Firebase hosting service for both the frontend and the database