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.

Bazaar structure — model 1
Bazaar structure — model 2
Bazaar structure — model 3

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.

Attempt 1 — Image-based 3D structure

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.

Attempt 2 — Polygon count reduction

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.

Attempt 3 — Single model replicated across the street

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 0 — Full detail

LOD 1 — Reduced

LOD 1 — Reduced

LOD 2 — Minimal

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.

Street plan divided into three Unity scenes

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.

Interaction system overview

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.

Navigation arrow and dashboard within the bazaar experience
Navigation cues helping the user move through the bazaar

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.

Narrative hotspot visible in the VR scene
Dashboard showing progress across narrative hotspots

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.

Immersive mandapa sequence inside the experience
Flower seller conversation sequence

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.

Nirupane at Alpavirama exhibit
Alpavirama exhibit
Alpavirama exhibit
Alpavirama exhibit

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.