Blibli VR

A proof-of-concept for a definitive e-commerce experience in Virtual Reality.
-- mins to read
I worked solo on this project during CodieCon 2022, which is an annual hackathon conducted internally at Quinbay. The hackathon lasted four days, followed by three days of demos.
Unfortunately, at the time of the hackathon, I had run into unexpected issues with connecting the VR headset to the office's WiFi and VPN, so it was not possible to present a working demo of the application.
Attached below is the original project proposal.

Proposal

This proposal is to develop a definitive omnichannel commerce solution in Virtual Reality. The user should be able to browse a catalog, inspect products and their details, and receive up-to-date information about the product like price, stock, attributes, etc. They should be able to check out virtually, and using a pre-saved payment method / wallet, they should be able to place an order.
There is a lot of friction with adoption of Virtual Reality, and this is partly due to public perception of VR still being classified as part of the "future". In an effort towards making it the "now", we should start with maximizing accessibility among people, and showing them the possibilities of integrating it with their everyday lives and duties, akin to the way smartphones gradually began to fulfill many of our everyday needs and wants.
Some points to note:
  1. There must be seamless integration with the existing systems like product catalog and checkout.
  2. Adding and modifying content should be feasible wrt. time and effort and scalable.
  3. There can be additional scope of exploring alternate ways of content creation, like generation of 3D models using Machine Intelligence.
Who is this for? Of course, this is suitable for a customer who has access to Virtual Reality gear, and desires to purchase something online. But more importantly, the target user for this product is a visitor to an offline store, who is introduced to online commerce and to Virtual Reality through this product, accessible via a stall / booth at the store.

Project Scope

The scope of the MVP is as follows:
  1. A merchant should be able to upload 3D content and build an environment like a storefront to showcase the items. (Think, an interior showcase at IKEA.) We'll call this crafted environment a "space".
  2. A customer should be able to browse products in a merchant's space.
  3. A customer should be able to select any combination of products from a merchant's space and add them to their cart.
  4. Following this, provision may be made to facilitate checkout, provided that the customer is able to provide a payment method.

Tech Stack

The project is built in C# using the Unity Game Engine, as it's the tool I'm most comfortable with. The target device for the prototype is an Oculus Quest 2, so I opted to use the Oculus SDK for Unity.
This project didn't require any backend development, as the intention was to offer the same Blibli e-commerce experience. I was able to reuse the pre-existing APIs of blibli.com to provide data related to product information, cart, checkout, and payment. The only thing that remained, was the provisioning of 3D assets. For this, the easiest approach was to set up an AWS S3 bucket, that would store the 3D asset along with some metadata related to orientation and anchoring.

Product Flow

A merchant on the Blibli marketplace is given their own "Space". In this space, they are able to build their virtual storefront in any way they like. They can upload 3D assets and map them to listings on their product catalog. Once this is done, they can pull these assets and place them in the Space. Merchants are able to craft this Space, placing props and products in interesting ways. Here are some mockups of potential Space layouts.
asd
I have to say, big thanks to the Quinbay Innovation Studio for providing me with the necessary hardware, time, and motivation to take this up.

Related Work


An Augmented Reality Garden simulator.

A surprisingly functional interpreter for an assembly style language, written in C#.