Reconstructing Hampi for mobile VR.
Nirupane turns the Virupaksha Bazaar Street of Hampi into a walkable VR experience built for Google Cardboard.
The project was done in collaboration with Jyoti Narayan, which started as her graduation project, while I built the interactive prototype in Unity 3D. With this project we aimed to recreate Hampi in its glory days as a space you could walk through, and see how far Google Cardboard could be pushed as a storytelling medium.
The Challenge
The first challenge was scale. The bazaar street stretched across roughly 800 metres and included more than 50 structures. The visual richness of the environment was essential to the project, but the models were too heavy to run well on a phone-powered VR setup.
Before the team could think about interaction or storytelling, the first task was to make the street itself run within the limits of Google Cardboard.
The structures were modeled in Autodesk Maya based on archaeological research and field visits to Hampi. They were carefully built and full of architectural detail, which gave the environment its character.
That same detail also made optimization difficult. These were not assets that could be simplified casually without changing the feel of the street.
Five Attempts to Make It Work
This became the most valuable part of the project. The final solution came through a series of failed attempts, each one making the constraints clearer.
01Getting something — anything — running on Cardboard
The first idea was to see whether the street could be approximated using images instead of loading full models. Photographs of the structures were placed as planar surfaces in Unity to create a sense of space through layout and perspective.
It broke down quickly. These structures were open and defined by pillars, gaps, and depth. The moment a user looked through them, the flatness was obvious. That attempt made it clear that the experience needed actual spatial depth.
02Reducing polygon count
The next step was to reduce the polygon count of the original models.
That helped with weight, but it also damaged the architecture. Columns warped, forms broke down, and the structures started losing the qualities that made them worth experiencing. It made it clear that optimization here could not be separated from visual integrity.
03One model, replicated everywhere
The next approach tested a simpler idea: use one lightweight structure and repeat it across the street.
This solved neither problem. The street became visually repetitive, and even one lighter model repeated more than 50 times still added up to too much geometry. It looked efficient in theory, but not at the scale of the experience.
04Level of Detail (LOD) with Simplygon
The first approach that felt promising was using Simplygon to generate level-of-detail versions of each structure. Nearby models could stay detailed, while distant ones could switch to lighter versions.
This worked conceptually, but the phone still had to deal with too much memory usage. All the model variations still had to exist in the system, and the overall load remained too high.
LOD 0 — Full detail
LOD 1 — Reduced
LOD 2 — Minimal
05Scene-splitting + LOD
The breakthrough came from combining LOD with scene division. The 800-metre street was split into three Unity scenes, each containing a smaller set of structures and their LOD variants. Only one scene loaded at a time.
This finally brought the experience within mobile limits while preserving enough detail for the street to still feel convincing. It was the first solution that balanced fidelity, scale, and performance in a usable way.
From Environment to Experience
Once that system was in place, the project opened up in a new way. We could now move through the full street, and that shifted the focus from feasibility to experience. The next questions were about movement, interaction, orientation, and narrative.
This was the stage where the project started feeling less like a technical prototype and more like a world that someone could move through.
Interaction Design
Once the street itself became stable, the next layer was interaction design. The experience had several forms of interaction packed into it, and they had to work together without overwhelming the user. Some of them were passive, like simply looking around the space through head rotation. Others were active, like walking, selecting hotspots, moving between scenes, or entering a more curated sequence.
Because this was built for Google Cardboard, the interaction language had to stay simple and legible. Head movement, gaze, the controller click, and the headset trigger all became part of the same small vocabulary. The challenge was not to add many kinds of interaction, but to make the few available ones feel dependable across the whole experience.
Movement and Navigation
Movement in the project worked in a few different ways. The most basic was passive: the user could simply look around the VR environment through full head rotation. For the more choreographed mandapa sequence, we also used guided movement so that the user could stay focused on the ritual scene rather than wander away from it.
The main way of moving through the bazaar, though, was click-to-toggle walk. One of the Bluetooth controller buttons was mapped to toggle the walking state in the direction the user was looking. That let the user move intentionally through the street without adding complex controls. The experience itself was divided into three scenes, and users could move between them either through the map or by reaching the end of a section and selecting the flag that carried them forward.
Narrative Hotspots
Selection in the experience was built around gaze. Whenever the user hovered over something interactive inside the scene, their gaze acted as the pointing input. They could then confirm that interaction either through the controller trigger or through the magnetic switch on the Google Cardboard headset.
This became especially important for the narrative hotspots spread across the bazaar. Each of the three scenes had up to three story points, and scene two also held the immersive hotspot that took the user inside the mandapa. To make these easier to discover, the team added a dashboard at the top of the view that tracked which hotspots had already been played, turning them green once completed. A navigation arrow at the bottom helped point the user toward the closest hotspot in their vicinity.
The Experience We Built
By the end, the project had grown into one larger experience spread across three walkable scenes of the bazaar street. Users could move through these scenes section by section, discover narrative hotspots, and build up a sense of the street as a lived space rather than as a static environment.
Within this walkable experience, we also created moments that changed the rhythm of how the user engaged with the world. One of them took the user inside a mandapa, where the experience became more curated and immersive. Instead of moving through the full street, the focus shifted toward inhabiting a smaller ritual space and observing what might once have taken place there.
To keep the larger street performant, many supporting elements like people and animals were still placed as 2D characters. Using them in 3D across the whole environment would have been too costly. Because of that, we built one separate, more focused 3D sequence around the flower sellers. In that experience, the user was not walking through the space. Instead, they were placed inside a detailed conversational moment between flower sellers and their customers in the setting of Hampi.
That balance felt important to the final experience. The walkable bazaar gave users scale, movement, and discovery. The more focused sequences gave us room to create moments of depth and atmosphere that the larger system could not afford everywhere.
Public Exhibition
When the prototype was near completion, Nirupane was exhibited at Alpavirama at NID Ahmedabad as part of "Videos on the Edge."
That exhibition mattered because the project moved out of development mode and into a public setting. People were no longer looking at it only as a prototype. They were entering it as an experience.
What It Taught Us
Nirupane showed us that immersive work gets built in layers. Performance comes first, but performance alone is not enough. Once the environment holds together, interaction and storytelling have to carry the rest.
It also showed how much clarity can come from working within a limited platform. Google Cardboard left very little room for waste, so every decision had to become sharper.