Inspiration
Tunisia’s cultural heritage is a treasure trove of history, yet many artifacts and sites remain inaccessible or endangered. Our founder, Ines Said, envisioned an open-access digital archive to preserve these narratives. TanitXR-Go was born from the desire to transform this passive archive into an active, gamified learning experience that incentivizes the next generation to explore and "own" their history.
What it does
TanitXR-Go is an immersive WebXR museum where users explore hyper-realistic 3D scans of Tunisian artifacts (Antonine Baths, Medina Doors, etc.).
AI Guide: Eric, our AI docent, answers any question in real-time.
Gamified Learning: Artifacts trigger interactive quizzes.
Blockchain Proof: Correct answers mint compressed NFTs (cNFTs) on Solana, serving as a permanent "Digital Badge" of cultural knowledge.
Digital Archive: Users can view their full collection on a dedicated web gallery synced with Snowflake.
How we built it
Frontend: React Three Fiber and @react-three/xr for the immersive VR environment.
Intelligence: Snowflake Cortex AI (Llama 3.3 70B) powers the conversational docent.
Blockchain: Solana for minting low-cost, scalable cNFT badges.
Backend: A FastAPI Python server containerized with Docker and hosted on Vultr.
Database: Snowflake serves as the single source of truth for all XR event telemetry and minting records.
Tech Stack

MLH Track - Best Use of Solana
We utilized Solana to solve the problem of "achievement vanity." By minting badges as compressed NFTs, we provided users with verifiable proof of their learning journey at a fraction of a cent. This allows TanitXR-Go to scale to thousands of users and artifacts without the barrier of high gas fees, making cultural education truly decentralized.
Screenshot of Badge NFT Minted on Solana Devnet -> On-chain Proof you earned it!

MLH Track - Best Use of Vultr
We deployed our high-performance Python backend on Vultr’s Cloud Compute using Docker. Vultr’s low latency was critical for our WebXR experience; when a user asks a question in the Meta Quest headset, the request travels to our Vultr instance and back in milliseconds, ensuring the VR immersion is never broken by lag.
Our Vultr Cloud deployed our python backend that handles data read write to Snowflake API SQL database and also interact with Snowflake Cortex AI.
Try to talk to Cortex AI with curl command on mac terminal or gitbash (window)
curl -s "http://173.199.93.253:8000/ai/chat?prompt=What+is+TanitXR?" | jq
curl -s "http://173.199.93.253:8000/ai/chat?prompt=What+is+TanitXR-Go?" | jq
MLH Track - Best Use of Snowflake
Snowflake is the "Brain" and "Ledger" of TanitXR-Go.
Snowflake Cortex: We used AI_COMPLETE to run Llama 3.3, providing Eric with deep knowledge of Tunisian history.
Data Cloud: We used Snowflake to store real-time XR interaction data. This allowed us to build a live Web Gallery that syncs perfectly with what users see in their headsets, proving that enterprise data tools are the perfect backbone for the future of the Metaverse.
The Snowflake Cortex knows about Tanit XR and TanitXR-Go and will answer.

In our WebXR, click-based interaction with the AI.

Challenges we ran into
Integrating 3D HTML UI inside the Meta Quest browser proved difficult due to layering issues. We overcame this by pivoting to a RenderTexture approach, painting our data-driven UI directly onto 3D meshes to ensure 100% visibility in VR. Additionally, bridging the HTTPS Vercel frontend with our HTTP Vultr backend required a custom Next.js proxy to bypass CORS and mixed-content restrictions.
Also, the challenge was to implement movement, currently joystick moves the opposite way, it is a little difficult to navigate.
Also, the challenge was to implement the auth system, there was no way to get unique identifier from each VR headset. For future implemention and deployment to Meta Horizon World, it will be able to get the unique identifier from each VR (unhappy Horizon World is being gone in June).
Accomplishments that we're proud of
We are incredibly proud of the Full-Stack Spatial Pipeline. We successfully moved data from a 3D "click" in VR to a Snowflake table, then to the Solana blockchain, and finally back to a 2D web gallery—all in under 5 seconds.
What we learned
We learned that the "Spatial Web" (WebXR) is ready for enterprise data. Combining the analytical power of Snowflake with the speed of Vultr and the transparency of Solana creates a "Trust Layer" for education that wasn't possible before.
What's next for TanitXR-Go
We plan to expand the archive to include more sites across North Africa and implement a "Multiplayer Museum" mode using WebSockets on Vultr, allowing students from around the world to explore Tunisian history together in real-time.
I am a heavy user on Meta Horizon World, unhappy that Horizon World is being gone in June. I don't know any other platform to deploy this. Currently, this is deployed to web via Vercel for a single player only.
However, I am open to getting to know any other platforms.
For future implementation, I think I definitely need Pickachu to go on my trip with!

Built With
- nft
- snowflake
- solana
- tanitxr
- typescript
- vultr
- webxr


Log in or sign up for Devpost to join the conversation.