Inspiration

Buying eyewear online is still a trust problem. People can browse frames, but they often cannot tell how a pair will actually look on their face, whether a colorway fits their style, or whether they should ask someone else for a second opinion before buying. We built NovaVision to make that process feel closer to an in-store consultation while also helping retailers enrich their catalogs faster.

What it does

NovaVision is an AI eyewear-shopping experience built around Amazon Nova. A shopper can browse frames, select a style, upload a portrait, and see a personalized try-on preview. The app then streams in additional color variants for quick comparison, lets the result be shared as a voting page for friends or family, and extends the experience with concierge guidance and short motion previews. On the retail side, NovaVision can also generate merchandising copy and extract fit information from source product pages.

How we built it

We built NovaVision as a full-stack demo app with a Next.js frontend and a Python backend. We used Amazon Nova Lite for portrait analysis and product-description generation, Amazon Nova Pro for concierge-style guidance, Amazon Nova Act for fit-information extraction, and Amazon Nova Reel for motion output. For try-on rendering, the current demo uses a hybrid image pipeline so we could keep the experience visually strong and reliable while still using Amazon Nova throughout the broader commerce workflow. We also added caching, variant streaming, shared voting sessions, and a demo-ready frontend flow for judging.

Challenges we ran into

The biggest challenge was virtual try-on quality. Early generations had identity drift, unstable framing, floating glasses, and inconsistent placement across variants. A particularly important issue was that broader upper-body-style editing behavior is too coarse for eyewear: instead of staying tightly anchored around the eyes, some generations placed glasses too low or even on the body. That kind of failure breaks trust immediately in an eyewear product. We also had to manage latency, ensure the first result appeared quickly, and avoid awkward demo waits for share generation and video output.

Accomplishments that we're proud of

We are proud that NovaVision became more than a single-feature demo. It connects shopper try-on, collaborative sharing, retailer enrichment, concierge guidance, and motion generation in one coherent workflow. We are also proud that we pushed past early try-on failures and turned the experience into something much more stable and demoable, with a fast first result and additional variants loading in behind the scenes. Most importantly, the app now tells a believable product story for both customers and merchants.

What we learned

We learned that for visual commerce, consistency matters almost as much as raw image quality. A flashy result is not enough if the frames shift, the face changes, or placement is unreliable. We also learned that the best user story is the simplest one: pick a frame, upload a face, see the result, compare options, and share it. On the engineering side, we learned where Amazon Nova is already strong for this workflow and where accessory-specific controls would make a major difference.

What's next for NovaVision

Next, we want to improve try-on reliability even further, especially around precise face-anchored accessory placement and consistency across frame variants. We would also like to deepen the retailer workflow with richer catalog enrichment and more polished fit-data ingestion. For Amazon Nova specifically, we see a strong opportunity in future tuning updates: accessory-aware controls, tighter landmark-conditioned placement, and better small-region editing would make eyewear try-on dramatically more production-ready.

🚀 Try It Out

Demo Site: https://nova.svgfy.com Backend API: https://novabackend.svgfy.com GitHub Repo: https://github.com/jplogix/NovaVision

Built With

  • amazon-bedrock
  • amazon-nova-act
  • amazon-nova-lite
  • amazon-nova-pro
  • amazon-nova-reel
  • aws-app-runner
  • fastapi
  • framer-motion
  • hybrid
  • image-generation
  • next.js
  • python
  • react
  • tailwind-css
  • typescript
Share this project:

Updates