# I Built a Photorealistic AI Virtual Try-On App Entirely on a $150 Phone (And How We Pivoted When It Failed)

> Source: <https://dev.to/koda2026/i-built-a-photorealistic-ai-virtual-try-on-app-entirely-on-a-150-phone-and-how-we-pivoted-when-it-3n4l>
> Published: 2026-10-17 06:47:27+00:00

Most people think you need a MacBook, cloud credits, and a team of engineers to build a generative AI product.

My co-founder Akhouri (13) and I (12) just proved that wrong. We built and launched **ACA**, a privacy-first virtual try-on app, entirely using a $150 Android phone, Termux, and pure stubbornness.

But we almost didn't make it. Here is the story of our pivot.

We started by trying to run Virtual Try-On (VTON) entirely in the browser. We used MoveNet (TensorFlow.js) to extract skeletal keypoints and Barycentric Triangle Warping to stretch a 2D garment image over the user's body.

It was a disaster. 

Akhouri ran **54 systematic tests and 13 alternative approaches**. Every single one failed. The fabric didn't bend, the shadows didn't match, and it looked like a paper cutout floating in the air. 

My co-founder sent me a message: *"ACA is hard or impossible in this case. All paths are impossible."*

I refused to give up. 86.6% of people don't use virtual try-on because they don't trust companies with their photos. We had to solve this.

I tried to build a local Trusted Execution Environment in Termux. What followed was a week of pure technical hell:

`No matching distribution found` trying to install MediaPipe.`Cannot find module 'glob'`, breaking npm entirely.
We realized trying to force a massive diffusion model onto a POCO C55 was like fitting a V8 engine into a bicycle.

So, we pivoted to a **Split Inference Architecture**:

`@gradio/client` to bypass CORS and join the Hugging Face GPU queue via WebSockets).
I fixed the image extraction logic. I uploaded a photo and a clean polo shirt. I hit generate.

The progress bar said: `In Queue... waiting for GPU...` 

I waited 60 seconds. 

Then, the log flashed: `✔ AI Generation Complete!` 

The canvas rendered. The AI had generated **fabric folds, shadows, and perfect lighting** matching the background. Not a sticker. Not a warp. Photorealistic. 

We literally screamed. We did it.

**Here is the exact output from that session:**

*(1. The Garment Input)*

*(2. The Original User Photo)*

*(3. The ACA Generated Output)*

**A Note on Privacy:** You'll notice the faces in our test images are blurred. This isn't a bug; it's a feature. ACA is built on a strict privacy-first philosophy. We don't harvest biometric data, and we don't train our models on our users' faces. Even when testing our own app with family, we protect their identities. When you use ACA, your face belongs to you, not our servers.

We are live at **[https://aca-vto.netlify.app/](https://aca-vto.netlify.app/)**. 

Is it perfect? No.

But it works. It’s a fully functional SaaS product with authentication, database persistence, and generative AI, built with zero budget and deployed entirely from a mobile phone.

To anyone who says you need expensive hardware to build AI: you don't. You need a terminal, and the stubbornness to keep going when the code says "impossible."

We are just getting started. 🐯🚀

*(Shoutout to the HYNAWEB engineering team: Akhouri Anmol Kumar, CTO)*
