0. GlowQuest is NOT just a video

It's a real app you can open and use right now (full walkthrough at the end).

Building software with heavy use of AI agents is now commonplace, and this app is no exception. But precisely because AI makes a convincing fake trivial to produce, we held one line we refused to cross: the app has to exist, the implementation has to match every claim on this page, and you have to be able to verify both yourself.

The implementation code is shown in the gallery.


1. Inspiration

Skincare is a bet whose payoff you can't see. You put in the work for weeks, the mirror looks the same, and you quit. Even a powerful AI skin analyzer doesn't change that if it only runs once: a single scan won't build a habit. The only way to drive small daily effort is to show up with something rewarding every single day. That's why we built GlowQuest.

"That's why we built GlowQuest" isn't where this ends

“You can run personalized beauty ads using skin analysis features!” “With the virtual try-on feature, you can see if clothes look good on you without even going to the store!”API developers already knew all that without being told. That’s not the point.

Simply calling an API isn't innovation, and stacking every API you can reach only blurs the product until it drifts from real consumer needs. So we integrated with purpose, not for breadth. Building "an app people can use every day" is the obvious goal. Building "one they want to open every day" is the actual bet, and it's a much harder one. Our goal is the latter.

Context decides everything

People open this in the private minutes before or after work, not at a desk. GlowQuest is a mobile app. Also, a UI that splinters every result into too-fine segments and crams every feature into something that reads like an enterprise dashboard isn't fit for daily use. In the moments you've escaped work, the last thing you want is an app that feels like more work. The minority of users who do want that detail and depth are routed to a Pro plan, and their enthusiasm is the business opportunity.

Even with the right context, attention is finite. So every surface earns its keep with a delight layer: a pet that grows with you, particles on milestone moments, positive framing on every scan result, a visual language closer to a game than a dashboard. The goal isn't more information. It's wanting to come back tomorrow.

Good App ≠ Good Product

Before this, I built another Perfect Corp app that paired virtual try-on with live weather, answering the "What should I wear?" moment in front of the closet. I was proud of it: original, polished, solving a real need. But it had a flaw I only saw later. Helping people make the most of what they already have doesn't lead to a purchase. I had business plans around it, like travel packing mode, but those sat beside the core loop, not inside it. When the business connection is weak, an app can be original and genuinely useful and still be only a good app — not a good product. GlowQuest is built from that lesson: this time the business lives in the core loop.

One scan is a feature; a daily habit is a platform

There's a strategic bet underneath the game. By making analysis a daily habit, GlowQuest generates the sustained usage Perfect Corp's platform is designed for, and the weak metrics each scan surfaces become a natural path to the products, and partner brands, that address them. Retention and retail conversion come out of the same loop, rather than being bolted on as ads.


2. What it does

GlowQuest turns Perfect Corp's Skin Analysis into the daily scoring engine for a creature-raising game. You're not checking your skin; you're leveling it up.

  • Daily Glow Score: scan your face with Perfect Corp's Skin Analysis AI for a real score and a radar of 6 skin metrics.

  • Skin Simulation: see the same you, with the clear, even skin you're growing toward.

  • An evolving buddy: a pastel fairy creature grows from egg → baby → child → teen → adult as your XP climbs.

  • Daily quests: generated from your weak metrics ("apply moisturizer tonight," "use vitamin C serum"). Completing them levels up your buddy.

  • Your journey, tracked: a radar compares your first scan to your current self, plus a 7-day trend chart.

  • Cosmetics shop: every product unlocks a new pet, costume, or skin.

But money never buys progress: purchased pets start as babies, and XP and evolution come only from your daily scans and missions. The shop gives you more to raise, never a way to skip the work — so the daily habit stays the real game, not pay-to-win.


3. How we built it

All implementations are real. You can view the code in the gallery.

  • Frontend: React 19 + TypeScript + Vite 8 + Tailwind v4 (with @theme for our Mystic Night design tokens) + Framer Motion + Zustand. No router: a single currentScreen slice in Zustand plus AnimatePresence drives all transitions. The implementation code is shown in the gallery.

  • Backend: Hono on Node. TypeScript runs across the whole stack, so the same language and types span the frontend and the API with no context-switching. Hono is minimal and low-ceremony, which kept the path from idea to a working endpoint short. The implementation code is shown in the gallery.

  • Perfect Corp integration: two distinct flows — Skin Analysis (fast synchronous-feeling polling) and Skin Simulation (longer async task, presigned-URL download). Both wrapped in clean /api/scan and /api/simulate endpoints. The implementation code is shown in the gallery.

  • World-building: a custom logo, five evolution-stage pet illustrations (generated and edited to match a single palette), a serif display font (Fraunces), self-coded particle systems (Burst, Shower, LightRings) for evolution and high-score moments, and a starfield background for the entire app.

  • Deploy: a single Render web service serving both the API and built client.


4. Challenges we ran into

Keeping users engaged day after day

Daily skincare needs friction-free motivation, and there's no single trick that solves it. We threw every retention lever we could think of at the problem: dazzling particle effects and evolution animations, a radar chart that makes skin metrics tangible, a 7-day trend graph showing visible long-term progress, a side-by-side comparison against the AI-simulated ideal skin, a pet that grows with the user, and a small positive line attached to every scan result. A lot of trial and error went into finding combinations that felt rewarding rather than overwhelming.

Mixing HD and SD metrics in one Skin Analysis request returns a 400

The two sets can't be combined. For a build that only had to survive a few demo days this wouldn't matter, but we're treating GlowQuest as something meant to ship. So we chose SD deliberately: a habit you run every morning only works if each scan is cheap enough to sustain daily, and SD makes that economically viable. The integration is identical, so HD drops in unchanged (and we've mapped out a monetization model around having it; more below).

The other Approach to Feasibility

Accuracy of the business model isn’t the only factor that increases feasibility. To seriously address the Judging Criteria of “Could this become a startup or company?”, we needed to develop the app with the assumption that it would be operated as a production-ready product. For this reason, we chose a deployment server other than the sandbox intended for applets. We also maintained a high standard of code quality by thoroughly implementing measures against attacks such as XSS, hiding API keys, and ensuring clear implementation that allows for low-cost feature expansion. These were truly challenging tasks.


5. Accomplishments that we're proud of

  • A reward system that never punishes a bad day: progress runs on two independent tracks, your Glow Score (how your skin is doing) and your XP (how consistently you show up), so an off day still grows your buddy and still earns its reward. It mirrors Perfect Corp's own thinking, too: their docs describe ui_score as a deliberately encouraging adjustment of the raw score. Measure honestly, motivate generously.

  • Made a multi-step async API feel like a game: the File API → upload → task → poll pipeline is hidden behind a single tap that returns a Glow Score in seconds.

  • Two Perfect Corp APIs in one narrative: Skin Analysis and Skin Simulation, integrated end-to-end and woven into a single coherent experience.

  • A custom particle and animation system: evolution, egg hatching, and high-score moments that feel like a real game, with no third-party effects library.

  • Strong early signal: the demo video passed 18,000 views on YouTube, showing real interest in the concept.


6. What we learned

Users are consumers, not scientists

Dumping the full analysis onto the screen, whether as a long report or a wall of segmented metrics, is a burden, not a feature. People open this in the private minutes before or after work, and nobody wants something that feels like a job. What users really want is low cognitive load, visual delight, and a result that lifts their mood.

Consistency beats flash

A consistent visual language (one font, one palette, one motion vocabulary) does more for "polish" than any single fancy effect. Under time pressure the instinct is to chase individual wow-moments, but the screens that felt finished were the ones where everything agreed: the same serif throughout, five evolution illustrations pulled to one palette, a single starfield tying every view together, the same easing on every transition. A coherent whole reads as "designed." A pile of effects reads as "decorated."


7. What's next for GlowQuest

A buddy that's truly yours

Bring on a real illustrator to make the creatures more beautiful and expressive, with costumes and skins to collect. The first one hatches from your skin analysis: its starting traits shaped by your own skin profile, so your buddy feels like a partner that's been yours since day one. And the game doesn't end when your first buddy grows up — more creatures unlock over time, earned by hitting quest milestones, beating your best score, or as bonuses from partner-brand purchases, so there's always something new to raise.

A Pro tier anchored on HD

The free SD scan stays the daily habit for everyone. HD's richer analysis becomes the heart of a paid plan, bundled with perks that fit the world: a monthly limited-edition skin, partner-brand cosmetic discounts, and deeper history. Pairing the costlier HD call with a subscription also makes the unit economics work — the users who want clinical depth are the ones funding it. And it stays true to the core: Pro sells richer measurement and nicer things to collect, never XP or evolution.

And more...

  • A buddy you can actually touch: bring the home-screen pet to life with Live2D animation and tap-to-pet interactions that react to you, so the bond grows every time you open the app, not just at evolution moments.

  • Real brands, real shelf: partner directly with beauty brands so the recommended products become actually purchasable in-app (affiliate links or integrated checkout).

  • Personalized routines: pull weak-metric history into multi-day plans, not just one-off missions.

  • Richer, more tactile: go fully native with haptics and ambient sound, so evolution moments are something you feel.

About LLM: I'm an ML/NLP engineer; designing LLM architectures, building models, fine-tuning them, and writing a paper is my day work. Reaching for the very thing I work on would have been tempting, but building a real business around it raises hard problems.

Calling a closed, cloud-hosted LLM over an external API means provider-side costs balloon as usage scales. Behavior control via system prompts is also not deterministic. It is extremely difficult to ensure deterministic behavior for floating-point numbers when running on a GPU (especially with CUDA). For example, while PyTorch’s use_deterministic_algorithms(True) is generally considered a way to enable deterministic processing, in reality, even this is insufficient. You need to go all the way down to cuBLAS and enable CUBLAS_PEDANTIC_MATH.

A top-tier modern model will almost never break an instruction like "You are a support agent for a skin-analysis system. Follow these rules…" — but using a top-tier model is brutally expensive. A multi-agent system would be even more expensive. If the app becomes popular and the number of concurrent requests increases, the load will rise exponentially. It would be impractical to incorporate this into a free-to-play service.

Hosting a local LLM is risky in its own way. In standard attention, every token computes an attention score against every other token. For a sequence of \( n \) tokens, the number of score computations scales as \( n \times n = n^2 \):

$$\text{cost} \propto n^2$$

Double the sequence length and the compute cost goes up \( 4\times \); a \( 10\times \) longer sequence costs \( 100\times \) more. The more detailed the analysis you demand, the more astronomically the server bill grows. Conversely, for lightweight analysis, a rule-based approach is perfectly fine.

What matters is the solution, not the technique. No one benefits from features that no one uses—such as the “Consult Your Personal AI Agent!” button displayed in the bottom right corner of an e-commerce site—that are created through technology-driven development. Every technology should be deployed on top of the right requirements, the right design, and the right cost estimate.

If I were to put a language model into GlowQuest, it would be a local SLM — tuned with care all the way down from full fine-tuning to the bit allocation of its quantization — used to let your pet talk to you on the Home screen: chit-chat, yes, but also skincare advice grounded in your weak metrics, and cosmetics recommendations. That keeps the language model inside the core loop, at a cost I can actually account for.


8. How to try GlowQuest

  1. Open glowquest-xadf.onrender.com in your phone's browser — no install, no signup, it's a web app.

  2. Tap through the cold open and take your first scan to bring the egg to life.

  3. For the scan, upload a clear, front-facing selfie in good lighting with your face filling most of the frame — that's what the AI Skin Analysis needs for an accurate Glow Score.


Built With

Share this project:

Updates