GAP 3D Fit Viewer
GAP 3D Fit Viewer
A UX case study of how GAP Inc. helped reduce fit issues with a 3d fit finder viewer that helped reduce returns.
A UX case study of how GAP Inc. helped reduce fit issues with a 3d fit finder viewer that helped reduce returns.
This problem was faced across Gap Inc. portfolio
Post metrics after the re-design
120 M
Interactions
20.3 %
Increase in visit
80%
CTR
//
Overview
Online return are a real problem. $ 3B Loss every year

Timeline
2021-2024
Overview
Online apparel returns are often driven by poor fit, especially in categories like denim. To address this, Gap Inc. integrated Drapr’s 3D fit technology across its brands. I worked on adapting the tool specifically for Old Navy’s Denim line, transforming it from a shirt-fit viewer into a denim-specific experience. The goal was to help customers visualize fit more accurately and reduce hesitation around size — ultimately driving down return rates and boosting purchase confidence.
Online apparel returns are often driven by poor fit, especially in categories like denim. To address this, Gap Inc. integrated Drapr’s 3D fit technology across its brands. I worked on adapting the tool specifically for Old Navy’s Denim line, transforming it from a shirt-fit viewer into a denim-specific experience. The goal was to help customers visualize fit more accurately and reduce hesitation around size — ultimately driving down return rates and boosting purchase confidence.
Role
As a Technical Product Designer, I adapted Drapr’s 3D fit viewer which was originally built for shirts—and optimized it for the denim buying experience on Old Navy’s platform. I designed the UX flow, collaborated on 3D asset optimization, and ensured the tool addressed denim-specific fit concerns like thigh, calf, and inseam.
As a Technical Product Designer, I adapted Drapr’s 3D fit viewer which was originally built for shirts—and optimized it for the denim buying experience on Old Navy’s platform. I designed the UX flow, collaborated on 3D asset optimization, and ensured the tool addressed denim-specific fit concerns like thigh, calf, and inseam.

Timeline
2021-2024
Overview
Online apparel returns are often driven by poor fit, especially in categories like denim. To address this, Gap Inc. integrated Drapr’s 3D fit technology across its brands. I worked on adapting the tool specifically for Old Navy’s Denim line, transforming it from a shirt-fit viewer into a denim-specific experience. The goal was to help customers visualize fit more accurately and reduce hesitation around size — ultimately driving down return rates and boosting purchase confidence.
Role
As a Technical Product Designer, I adapted Drapr’s 3D fit viewer which was originally built for shirts—and optimized it for the denim buying experience on Old Navy’s platform. I designed the UX flow, collaborated on 3D asset optimization, and ensured the tool addressed denim-specific fit concerns like thigh, calf, and inseam.
//
Context
What was the problem. Underlying problem
Sizing Issue
40% of online apparel returns are due to sizing issues
Inconsistent size
Inconsistent sizing across diff products within the same brand.
Difficulty in finding soze
Customers often guess their size, leading to disappointment
Denim wash issues
Denim fit, wash, and length remain a mystery until delivery
Sizing Issue
40% of online apparel returns are due to sizing issues
Difficulty in finding soze
Customers often guess their size, leading to disappointment
Inconsistent size
Inconsistent sizing across diff products within the same brand.
Denim wash issues
Denim fit, wash, and length remain a mystery until delivery
//
CURRENT LIMITATION
Limitation of the Existing Shirt Viewer
Too many questions
Lack of guidance on avatar customization
Difficulty adjusting the avatar visually
Limited Inputs
Only accepted chest and height data which is not sufficient for accurately simulating lower body garments like jeans.
Too Many Screens
Avatar setup was spread across multiple steps, adding friction and making the process feel tedious.


Outdated UI
The shirt viewer UI was designed for an older version of Old Navy’s website, making it visually and functionally inconsistent with the current brand experience.
Heavy Backend Simulation
For denim, the logic needed optimization. Only one size up and down would be simulated per avatar.
This version served its purpose for shirts but wasn’t ready for denim which is a category that requires greater personalization, smarter simulation, and intuitive UI.
This version served its purpose for shirts but wasn’t ready for denim which is a category that requires greater personalization, smarter simulation, and intuitive UI.
This version served its purpose for shirts but wasn’t ready for denim which is a category that requires greater personalization, smarter simulation, and intuitive UI.
//
USER RESEARCH
Conducted User Interviews. Ship with confidence.
Conducted User Interviews. Ship with confidence.
Conducted User Interviews. Ship with confidence.






Brief overview
Before designing the denim-specific 3D fit experience, we conducted 50+ user interviews and usability sessions with male shoppers aged 25–45. At the time, there was no virtual fitting tool available for denim, which gave us a clean slate to understand the frustrations, gaps, and expectations users had around buying jeans online.
These insights directly informed the design of our denim 3D fit viewer.



Brief overview
Before designing the denim-specific 3D fit experience, we conducted 50+ user interviews and usability sessions with male shoppers aged 25–45. At the time, there was no virtual fitting tool available for denim, which gave us a clean slate to understand the frustrations, gaps, and expectations users had around buying jeans online.
These insights directly informed the design of our denim 3D fit viewer.
//
Testimonials
What did the user say? a clear feedback.
There are so many fits — straight, slim, taper and the photos all look similar. I can’t tell what the real difference is.

Derrick, 38
Senior Engineer
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
Get the exact answer with line numbers and context. My productivity has skyrocketed.
For jeans, I always care about the taper. I want to see how it narrows — not just front-on, but side and back too.
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
No more wading through irrelevant completions.
The shirt viewer was okay, but denim is trickier. I’d need more control — like adjusting calf or inseam length.

Emma Larsson
Full-stack Developer
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
The privacy-first approach gives me peace of mind.
There are so many fits — straight, slim, taper and the photos all look similar. I can’t tell what the real difference is.

Derrick, 38
Senior Engineer
The shirt viewer was okay, but denim is trickier. I’d need more control — like adjusting calf or inseam length.

Emma Larsson
Full-stack Developer
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
Get the exact answer with line numbers and context. My productivity has skyrocketed.
The privacy-first approach gives me peace of mind.
For jeans, I always care about the taper. I want to see how it narrows — not just front-on, but side and back too.
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
No more wading through irrelevant completions.
There are so many fits — straight, slim, taper and the photos all look similar. I can’t tell what the real difference is.

Derrick, 38
Senior Engineer
For jeans, I always care about the taper. I want to see how it narrows — not just front-on, but side and back too.
The shirt viewer was okay, but denim is trickier. I’d need more control — like adjusting calf or inseam length.

Emma Larsson
Full-stack Developer
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
Get the exact answer with line numbers and context. My productivity has skyrocketed.
No more wading through irrelevant completions.
The privacy-first approach gives me peace of mind.
//
UX RESEARCH
Research Findings
Connect to Content
Add layers or components to make infinite auto-playing slideshows.
Denim Fit Feels Unpredictable
Users Don’t Know Their Measurements
Returns Create Hesitation
Fit Expectations Vary by Body Zone

Observation: 42/50 participants said sizing felt inconsistent across denim styles (slim, tapered, straight) — even within the same brand. Past purchases offered little confidence for future buys.
Denim Fit Feels Unpredictable
Users Don’t Know Their Measurements
Returns Create Hesitation
Fit Expectations Vary by Body Zone

Observation: 42/50 participants said sizing felt inconsistent across denim styles (slim, tapered, straight) — even within the same brand. Past purchases offered little confidence for future buys.
//
INFORMATION ARCHITECTURE
Initial user flow created
Connect to Content
Add layers or components to make infinite auto-playing slideshows.

Brief overview
Based on insights from over 50 user interviews, we designed an initial user flow that prioritized clarity, personalization, and ease of decision making. Users expressed a need for visual confidence, minimal friction, and the ability to compare fit dynamically. This flow was crafted to reflect that which gave shoppers the freedom to adjust their avatar, explore size variations, and make confident denim purchases, all without guesswork.

Brief overview
Based on insights from over 50 user interviews, we designed an initial user flow that prioritized clarity, personalization, and ease of decision making. Users expressed a need for visual confidence, minimal friction, and the ability to compare fit dynamically. This flow was crafted to reflect that which gave shoppers the freedom to adjust their avatar, explore size variations, and make confident denim purchases, all without guesswork.
//
Use cases
Design solution
Connect to Content
Add layers or components to make infinite auto-playing slideshows.
Choose Height
Choose Waist
Adjust Avatar
3D Fit Showcase

Choose Height
In this step user will choose their own height mentioned in inches. There is a carousel to toggle between the size pool. 3D window at the right will showcase live the height changes.
Choose Height
Choose Waist
Adjust Avatar
3D Fit Showcase

Choose Height
In this step user will choose their own height mentioned in inches. There is a carousel to toggle between the size pool. 3D window at the right will showcase live the height changes.

export function validateEmail(email: string): boolean { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ return regex.test(email) } export function validatePassword(password: string): boolean { // ⚠️ Error: 'lenght' is not a property of string if (password.lenght < 8) { // ← Ligne 8 avec erreur return false } return /[A-Z]/.test(password) && /[0-9]/.test(password) }
Debugging and refactoring
Find bugs instantly with precise error detection. Refactor confidently with AI that understands dependencies across your entire codebase. Zero broken imports.

import Stripe from 'stripe' const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2023-10-16' }) // AI suggestion: Add webhook handler export async function createPaymentIntent(amount: number) { try { const paymentIntent = await stripe.paymentIntents.create({ amount: amount * 100, // Convert to cents currency: 'usd', automatic_payment_methods: { enabled: true } }) return { clientSecret: paymentIntent.client_secret } } catch (error) { // Ghost text: Handle Stripe errors properly throw new Error(`Payment failed: ${error.message}`) } }
API integration
Connect to any API in minutes. Exact generates type-safe requests, handles authentication, and suggests error handling—all tailored to your API documentation.

import { validateEmail, hashPassword } from '../utils/auth' describe('Authentication', () => { describe('validateEmail', () => { it('should accept valid email addresses', () => { expect(validateEmail('user@example.com')).toBe(true) expect(validateEmail('test+tag@domain.co.uk')).toBe(true) }) it('should reject invalid email addresses', () => { expect(validateEmail('invalid')).toBe(false) expect(validateEmail('@example.com')).toBe(false) }) }) // AI suggestion: Add test for password hashing describe('hashPassword', () => { // Ghost text suggestions... }) })
Testing & CI/CD
Write tests faster with AI-generated test cases. Set up CI/CD pipelines with precise configuration. Ship with confidence, every time.

Brief overview
Based on insights from over 50 user interviews, we designed an initial user flow that prioritized clarity, personalization, and ease of decision making. Users expressed a need for visual confidence, minimal friction, and the ability to compare fit dynamically. This flow was crafted to reflect that which gave shoppers the freedom to adjust their avatar, explore size variations, and make confident denim purchases, all without guesswork.

Brief overview
Based on insights from over 50 user interviews, we designed an initial user flow that prioritized clarity, personalization, and ease of decision making. Users expressed a need for visual confidence, minimal friction, and the ability to compare fit dynamically. This flow was crafted to reflect that which gave shoppers the freedom to adjust their avatar, explore size variations, and make confident denim purchases, all without guesswork.
//
V1 Feedback
User feedback for v1. a clear feedback.
I liked being able to compare the fit between sizes. Seeing the jeans get baggier at the bottom as I adjusted the length gave me a better idea of what to expect. I wish more websites did this.

Derrick, 38
Senior Engineer
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
Get the exact answer with line numbers and context. My productivity has skyrocketed.
I liked seeing how the jeans fit, especially around the thighs and calves. But I didn’t know how tight or relaxed is supposed to feel. Those labels could use more explanation.
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
No more wading through irrelevant completions.
It was cool to see how the fit changes with size and length, that helped. But I still wasn’t sure if I should rely on this recommendation, because it didn’t match what I usually buy.

Emma Larsson
Full-stack Developer
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
The privacy-first approach gives me peace of mind.
I liked being able to compare the fit between sizes. Seeing the jeans get baggier at the bottom as I adjusted the length gave me a better idea of what to expect. I wish more websites did this.

Derrick, 38
Senior Engineer
It was cool to see how the fit changes with size and length, that helped. But I still wasn’t sure if I should rely on this recommendation, because it didn’t match what I usually buy.

Emma Larsson
Full-stack Developer
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
Get the exact answer with line numbers and context. My productivity has skyrocketed.
The privacy-first approach gives me peace of mind.
I liked seeing how the jeans fit, especially around the thighs and calves. But I didn’t know how tight or relaxed is supposed to feel. Those labels could use more explanation.
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
No more wading through irrelevant completions.
I liked being able to compare the fit between sizes. Seeing the jeans get baggier at the bottom as I adjusted the length gave me a better idea of what to expect. I wish more websites did this.

Derrick, 38
Senior Engineer
I liked seeing how the jeans fit, especially around the thighs and calves. But I didn’t know how tight or relaxed is supposed to feel. Those labels could use more explanation.
It was cool to see how the fit changes with size and length, that helped. But I still wasn’t sure if I should rely on this recommendation, because it didn’t match what I usually buy.

Emma Larsson
Full-stack Developer
Let me compare two sizes visually. If I can’t see what sizing up or down does, I’ll still end up ordering both.
A size suggestion is fine, but I also want to know why. Show me what part of the fit that size is based on.

Ethan R
Devops
The tool should account for stretch denim vs rigid? I’ve had jeans that fit totally different even in the same cut.
Get the exact answer with line numbers and context. My productivity has skyrocketed.
No more wading through irrelevant completions.
The privacy-first approach gives me peace of mind.
//
Design Variation
Turning User Insight Into Intuitive Design for V2

Size Explanation
Almost all clicked on it naturally out of curiosity, even if the size recommendation was in line with what they generally wear.

Size Explanation
Almost all clicked on it naturally out of curiosity, even if the size recommendation was in line with what they generally wear.

Fit Descriptors
Participants knew to click on the question mark to see additional information and appreciated the added clarity of what fitted, loose, and relax mean.

Fit Descriptors
Participants knew to click on the question mark to see additional information and appreciated the added clarity of what fitted, loose, and relax mean.

Measurement UX
Users felt more confident entering exact measurements than relying on visual estimation alone.

Measurement UX
Users felt more confident entering exact measurements than relying on visual estimation alone.

Measurement UX
Users felt more confident entering exact measurements than relying on visual estimation alone.
//
Metrics
V2 Post release metrics


120 million interactions, a 20.3% increase in visits, and an 80% rise in click rates across all devices
After launching the denim fit viewer, we conducted multiple rounds of user testing, A/B experiments, and usability studies to evaluate its impact. Our goal was to understand how the tool influenced user confidence, engagement, and purchase behavior and identify opportunities for further refinement.
//
Conclusion
Reflections. I got answers.
Key Outcomes
What I learned
Next steps