Wormhole Blue is a social application for people to interact with one another as well as with AR-objects - points of interests (POIs) connected with geodata. POI objects are displayed in AR, on the planet (globe view), and on the map (map view).
Quests are located in certain geopositions around the world. When a user finds a quest, he/she can read the task and start the quest. A lot of quests are multi-step, and each step has its own geoposition in the world. In order to complete the quest, the user must visit all geopositions for all steps and complete all tasks. At the end of the quest, the user will receive a virtual or physical (as planned) reward. Additionally, each user creates his/her own avatar. Users can see one another's avatars in AR if they are close enough in the real world (100 meters in radius). Users can also find other people on the global map (the map implementation is based on Open Maps).
A custom system of geopositioning for objects and avatars has been developed based on the ECEF coordinate system. The system relies on a separate privacy layer, allowing for the direct encrypted data exchange between users (based on NATS Streaming). The application is also meant for the creation of video broadcasts. The application is developed for Android and iOS mobile platforms.
The key functionality:
- Creating quests (tied to a certain geoposition);
- Сompleting quests;
- Creating panoramas (180 and 360 degrees);
- Viewing panoramas;
- Navigating between panoramas;
- Navigation (planet/map);
- Local chat - group chat between users with their real-life location being within a certain radius (100 meters);
- Direct chat - chat between two users;
- Broadcast (Wowza/Agora);
- Global statistics on users in the system (Apache Kafka).
Implemented functionality is as follows:
- Local / Direct chat;
- Social login (Apple, Google, Twitch, Facebook, Twitter), sign in/sign up, password change;
- Quests system;
- POI positioning on planet/map (S2Geometry is used) and in AR;
- Pano creation (Dermandar plugin is utilized along with our custom implementation of pano stitching);
- Pano quality assessment;
- Avatar Configuration (based on Asset Bundles);
- POI objects.
- Broadcasting (Wowza/ Agora).
- Transition between panoramas.
Technologies that were used in the development:
Unity/Client app: Zenject (Dependency Injection approach), AR Foundation, Dermandar, Wowza, Agora, S2Geometry, Best HTTP (Pro), Open Maps Client, Firebase SDK, Native Gallery, Native Share, Advanced Input Field.
Back-end: PHP (Laravel), API & NATS Streaming (STAN), AWS Services, Apache Kafka, Apache Flink, Python service for panorama quality estimation, Admin Panel, Grafana, Sentry.