All work Mehtab Hussain
Case studyAI-assisted buildPrompt engineering

KINETIQ: a 3D e-bike website, built by prompting Claude

KINETIQ is a concept e-bike shopping experience designed to explore how AI-assisted development can accelerate interactive product prototyping without replacing human design judgment.

As the solo designer, I defined the product direction, guided discovery, selected visual references and reviewed the experience through multiple iterations. Working with Claude Code, I directed the creation of a functional React and Three.js prototype featuring six interactive 3D e-bikes, product comparisons, personalized range estimates, a bike finder and a test-ride booking interface.

The experiment demonstrated how structured requirements, targeted design critiques and continuous human review can turn an initial concept into a working interactive prototype within one day.

Try the live siteWhat Claude got wrong
Role
Solo designer, directing Claude
Timeline
One day · ≈2 h hands-on
Tools
Claude Code · React · Vite · Three.js
Key responsibilities
  • Brief, scope and every product decision
  • Visual direction and reference images
  • Design review after every build
  • Motion, lighting and interaction details
Outcomes
  • A working React and Three.js site, live on this portfolio
  • Six e-bikes modelled in code, with no 3D model files
  • 3D explorer, range calculator, compare, bike finder and test-ride booking
  • 15 prompts and about two hours of hands-on time
KINETIQ home page: the headline Motion, reengineered beside a black 3D e-bike with its headlight beam on, over a purple glow, with range, speed and power figures
02 · The challenge

How far can a designer take a 3D product by directing AI?

KINETIQ is a fictional e-bike brand for Pakistan’s roads. I used it to test how far clear direction gets you when Claude writes all of the code.

What the experiment tested

Whether briefing, references and design critique alone, with no code written by me, can produce a 3D product site that’s believable as a real product.

The brief

A product showcase for six e-bikes, with real-time 3D, a range calculator, a compare table, a bike finder quiz and test-ride booking. Bold and playful, but believable as a real product, not a template.

Constraints
  • One day, about two hours of hands-on prompting
  • Solo: no developer and no 3D artist
  • Claude writes every line of code
  • No 3D model files or sound files to start from
  • A made-up brand, so no real customers, sales data or brand guide
2.1

The customer problem

Why buying an e-bike online is hard. These are assumptions drawn from how e-bikes are usually sold, not research findings.

Assumed

Range claims are hard to trust.

A single “up to 80 km” figure doesn’t tell a heavier rider on hills what they’ll actually get.

Assumed

Specs are hard to compare.

Motor, battery, weight and price sit on separate pages, so shoppers keep several tabs open.

Assumed

Photos hide what matters.

Battery, motor and suspension are hard to judge from a few flat product shots.

Assumed

It’s unclear which type fits.

Folder, moped, scrambler or dirt bike: first-time buyers don’t know where to start.

Assumed

It’s a big purchase to make unseen.

Most people want to ride one before they commit.

2.2

Design hypothesis

If shoppers can inspect a bike in 3D, see range in their own terms and compare models side by side, they’ll feel confident enough to book a test ride.

Signal to measure: test-ride bookings that start from the explorer, range calculator or compare table. Not yet tested.

2.3

Intended audience

  • First-time e-bike buyers and daily commuters in Pakistan’s big cities
  • Browsing mostly on phones, comparing a few models before visiting a showroom
  • Price-aware, shopping in PKR
Assumed
03 · Users and product assumptions

Who it’s for, and what I assumed about them.

KINETIQ has no real customers, so I didn’t run user research. These are the rider needs and shopping scenarios I designed around. They’re assumptions, not findings.

3.1

Rider needs, and the feature that answers each one

“Will it get me through my week?”

→ Range calculator, in days of commuting

“Which bike is right for me?”

→ Five-question bike finder

“How do these two really differ?”

→ Side-by-side compare

“What am I actually buying?”

→ 3D explorer with an exploded view

“Can I try it first?”

→ Free 30-minute test ride
3.2

Hypothesis personas

Three provisional personas built from the assumptions above. They’re fictional and haven’t been checked with real riders.

AyeshaFirst-time buyer
Goal
Find an e-bike that suits her without learning the jargon.
Frustration
Doesn’t know a folder from a scrambler.
Likely path
Bike finder → explorer → test ride
Hypothesis · unvalidated
BilalDaily commuter
Goal
Know one charge covers his week, at a price he can afford in PKR.
Frustration
Range claims never match real riding.
Likely path
Range calculator → compare → test ride
Hypothesis · unvalidated
HamzaSpec comparer
Goal
Pick the best of the two or three bikes he’s already shortlisted.
Frustration
Specs are scattered and hard to line up.
Likely path
Compare → exploded view → test ride
Hypothesis · unvalidated
Research status

No user interviews, surveys or usability tests were run for this project. Everything in this section is a hypothesis to test, not a finding.

3.3

Assumptions that still need validating

UnvalidatedRange shown as days of commuting is easier to judge than kilometres.
UnvalidatedAn interactive 3D model gives buyers more confidence than photos.
UnvalidatedA test ride is the right main call to action, ahead of buying online.
UnvalidatedReal-time 3D runs smoothly on the phones most visitors use.
04 · Experience strategy

One scroll, from first look to test ride.

In discovery I chose one cinematic scroll over separate pages. Each section answers one buying question, and every path ends at the test-ride booking.

4.1

Information architecture

Seven sections, in the order they appear on the site.

  1. 00 · HeroFirst impression. Press and hold to ride.
  2. 01 · Line-upAll six bikes at a glance.
  3. 02 · Explorer3D model, colours, specs and an exploded view.
  4. 03 · RangeWhat to expect day to day.
  5. 04 · CompareTwo or three bikes side by side.
  6. 05 · FinderFive questions to a match.
  7. 06 · Test rideBook a free 30-minute ride.
4.2

User flow

How a shopper moves from exploring bikes to comparing specs, checking range and requesting a test ride. A Test ride link in the menu and a “Test ride this bike” button in the explorer let people jump to booking at any point.

Land on the heroSee the bike, press and hold to ride
Browse the line-upSix bikes, prices in PKR
Know which bike you want?
No
Bike finderFive questions to a match
Yes
Pick a bikeFrom the line-up or explorer
Explore in 3DColours, specs, take apart, lights, ride
Compare specsTwo or three bikes, best figure highlighted
Check rangeWeight, assist and terrain → km and commuting days
Book a test rideBike, city, date, time and contact details
ConfirmationOn-screen confirmation of the booking
4.3

Primary user journeys

I know what I want

Line-upExplorerTest ride

Help me choose

FinderExplorerTest ride

Prove it to me

RangeCompareTest ride

4.4

Feature prioritisation

Must have · set in discovery
  • Real-time 3D explorer
  • Six bikes with PKR prices
  • Book a test ride
Decision support
  • Range calculator
  • Compare table
  • Bike finder quiz
Delight · added in review
  • Ride mode: stand lifts, speedometer eases
  • A headlight with a believable beam
  • Press and hold to ride in the hero
05 · AI-assisted design process

Claude wrote the code. I made the design calls.

I directed Claude Code the way I’d run a design team: a kickoff, references, short reviews and clear ownership.

5.1

Human–AI responsibilities

My part
  • Brief, scope and every product decision
  • Reference images and visual direction
  • Design review after every build
  • Motion, lighting and interaction details
Claude’s part
  • Discovery questions before any code
  • React, Three.js and CSS, about 5,000 lines
  • Bikes modelled in code, sounds made in code
  • Checking each build in a browser
5.2

Claude discovery: 13 questions before a line of code

Claude ran the kickoff workshop and I made the calls. These answers became the spec it built against.

What is the main goal of the site?Product showcase
How many variants?4–6 bikes
Brand name?Make one up → KINETIQ
Visual style?Bold & playful
Interactive features?Colours, compare, finder, range
Main call to action?Book a test ride
How should the 3D work?Real-time 3D
Which variants?Suggested 5, later 6
Prices and currency?PKR
Site structure?One cinematic scroll
Finished form?Vite + React project
5.3

Prompt decisions: six habits

These are my actual prompts. I tidied the spelling but kept the wording. None of them are long; they work because each one does a single, clear job.

01 · Interview first

Let Claude ask before it builds.

I didn’t write a long spec. I asked Claude to interview me one question at a time, so each requirement got a decision before any code existed.

My first prompt

I want to create a website for e-bike which have multiple variants. For design an interactive website ask me questions 1 by 1 which you require.

02 · Show, don’t describe

Use references in place of adjectives.

Words like “realistic” or “premium” mean something different to everyone. A photo or a product folder leaves no room for that.

With a reference photo

Yes, real models of e-bikes, just like the attached image.

With a folder of product shots

In the attached folder I have added a few product pictures. Can you update the products on the website just like them, but in a 3D look?

03 · Critique like a design review

Name the flaw and why it breaks the illusion.

The first bikes looked stylish, but an e-bike without a battery isn’t believable. Pointing to the missing part fixed realism across all six models.

Review note

The bike you used, where are the batteries? Is it a realistic 3D model? I think not.

04 · Explain it in physical terms

Describe how it works in the real world.

I didn’t talk about shaders or cone angles. I described where a real headlight’s beam starts and how wide it is, and Claude worked out the 3D maths.

Lighting fix

The light beam does not come from the light. The light beam comes from the front wheel tyre.

Follow-up

The light’s starting output point is narrow. I think it should be approximately the light’s diameter.

05 · Script the motion

Describe the animation as a sequence.

Small, ordered beats are easier to build and check than “make it feel alive”. Each beat became its own piece of behaviour.

Ride mode

When the ride starts, the stand of the e-bike should go up.

Speedometer

When the ride starts, show the speed going up gradually, and when the ride stops it gradually comes down.

06 · Bring evidence

Report bugs with a recording.

“It flickers” is hard to act on. A screen recording showed exactly when and where the header animation stuttered.

With a screen recording

Check this video. The header animation is not running properly in the header and in the 02 — Explorer section.

5.4

Reference materials

Two reference images, a folder of product photos and one screen recording. The photos made the biggest difference.

Reference product photo: a black fat-tyre scrambler e-bike on a white background
One of the product photos I gave Claude as a reference.
The Ridge rebuilt in 3D in the same scrambler shape, with its headlight beam on
The same bike rebuilt in code as an interactive 3D model.
5.5

The full prompt log

Fifteen messages over one day. Times are local. Most prompts are one sentence; the quality came from the review loop, not from long prompts.

Show all 15 prompts
  1. I want to create a website for e-bike which have multiple variants. For design an interactive website ask me questions 1 by 1 which you require.Started the discovery interview.
  2. Yes, start. One question: do I need Vercel and Git for this?Approved the plan and checked the setup I’d need.
  3. The bike you used, where are the batteries? Is it a realistic 3D model? I think not.First design review: the models needed to be believable.
  4. Yes, real models of e-bikes, just like the attached image.Added a reference photo.
  5. Make this type of model. It is an example.Added a second reference.
  6. Breeze and Breeze Max are not looking real. Add a realistic feel.Targeted review of two models.
  7. In the header the animation is not running properly; it jerks and flickers.Performance bug report.
  8. In the attached folder I have added a few product pictures. Can you update the products on the website just like them, but in a 3D look?Rebuilt the line-up from real product photos.
  9. Check this video. The header animation is not running properly in the header and in the 02 — Explorer section.Bug report backed by a screen recording.
  10. The light beam does not come from the light. The light beam comes from the front wheel tyre.Lighting accuracy.
  11. The light’s starting output point is narrow. I think it should be approximately the light’s diameter.Beam shape refinement.
  12. 02 — Explorer: when the ride starts, the stand of the e-bike should go up.Ride animation detail.
  13. When the ride starts, show the speed going up gradually, and when the ride stops it gradually comes down.Speedometer easing.
  14. In the header, if we press the mouse the e-bike starts running.Press-and-hold to ride in the hero.
  15. 01 — The lineup: the product images are not good. Can you update them?Final polish of the line-up cards.
06 · Iteration and design critique

From neon toy to believable product.

The first build worked on the first try but didn’t look real. Each review round fixed one thing: realism, then likeness, then the details.

6.1

Before and after

First build: a stylised neon purple bike with a glowing frame behind the headline
v1 · 10:51

First build: all six sections working, but the bikes were stylised and had no batteries.

Second round: a chunky blue moped-style e-bike with a rear basket, modelled after a reference photo
v2 · 11:11

After the reference photos: real proportions, fat tyres, visible batteries and baskets.

Final build: the Ridge scrambler in the 3D explorer with a green frame, red shock and spec list
Final · 15:11

Rebuilt from the product photos, with tuned lighting, ride physics and sound.

6.2

Visual corrections Claude couldn’t see

Claude tested every build in a browser before handing it back. None of these problems showed up as errors, so each one needed a designer to spot it.

10:57 · Realism

E-bikes with no batteries.

The first six bikes rendered cleanly and passed Claude’s own checks, but none had a battery. A reference photo fixed it.

11:27 · Consistency

Two models still looked fake.

After the realism pass, Breeze and Breeze Max still looked like toys. They needed a second, targeted review.

11:35 → 14:37 · Performance

A bug that came back.

The header animation jerked and flickered. A written report wasn’t enough, so I sent a screen recording that showed exactly where it happened.

14:46 · Physics

Light from the wrong place.

The headlight beam started at the front tyre and was too narrow. It took two notes to get its origin and width right.

6.3

Interaction refinement and QA

Interaction
  • The stand lifts when a ride starts
  • The speedometer climbs and eases back down
  • Press and hold in the hero to ride
  • The headlight beam starts at the lamp, at its real width
QA
  • Claude: opened each build in a browser, took screenshots and fixed errors
  • Me: reviewed realism, consistency, motion and lighting
  • A screen recording pinned down the header flicker
07 · Final experience

Take it apart. Light it up. Ride it.

The 3D explorer is the heart of the site. Lights on, then Ride: the stand lifts, the wheels spin and the speedometer climbs, then eases back down when you stop.

7.1 · Explorer

An exploded view with labelled parts.

Take apart spreads the bike into its main parts, each labelled with its spec: hub motor, battery, frame, suspension, wheels and cockpit. Drag to rotate, scroll to zoom.

Exploded 3D view of the Ridge with labels for hub motor, rear wheel, rear suspension, battery, frame, bench seat, cockpit and front wheel
7.2 · Range calculator

Range you can actually expect.

Rider weight, assist level and terrain update the estimate live and turn it into everyday terms: days of commuting per charge, with every bike compared.

Range calculator with a rider weight slider, assist and terrain choices, and an estimate of 84 km for the Ridge
7.3 · On a phone

The same site on a phone.

Every section stacks to one column. The bike picker scrolls sideways, the price and colours sit above the 3D model, and the calculator controls are big enough to tap.

Open it on your phone
Phone view of the 3D explorer: a sideways-scrolling bike picker, the Ridge at PKR 395,000 with colour swatches, and the green 3D model below
Phone view of the range calculator with a rider weight slider, assist and terrain buttons, and an 84 km estimate
Phone view of the bike finder, question 1 of 5: where will you ride most?
7.4

Key screens: comparison, finder and booking

7.5

Under the hood

It’s a real Vite project, and the production build runs on this site. Claude chose the stack after I picked “Vite + React” in discovery.

3D

React Three Fiber

Three.js through React, with drei helpers and post-processing for glow. The bikes are built from code, not from model files.

Sound

Web Audio API

Motor hum, clicks and the light switch are all made in code, so the site ships no audio files.

App

React 19 + Vite

29 source files, about 5,000 lines: sections, a shared store, a currency switch and scroll reveals.

QA

Browser-checked

Claude opened each build in a browser, took screenshots and fixed what it found before handing it back to me.

08 · Results, limitations and learning

AI writes the code. Design judgement still sets the bar.

8.1

What was delivered

Hands-on time≈2 hTwo sessions on one day: 10:22–11:35 and 14:17–15:11
Prompts from me15Plus 2 reference images, a product photo folder and 1 screen recording
Discovery questions13Claude asked them before writing code
3D model files0Every bike is built from code
8.2

Measured results

Measured on the production build. There’s no usability, conversion or customer data for this concept, so none is claimed.

Production build3.5 MBWhole site, including 24 bike images
JavaScript, gzipped≈534 KBMost of it is the 3D engine
Third-party services1Google Fonts only. 3D, sound and images ship with the site
Named controls69 / 69Every button and link has an accessible name
8.3

Accessibility and usability checks

A scripted check of the updated live build in Chrome at 1280 px on 8 November 2026. It reads every control, label and text colour. Reduced motion was checked in the code. It isn’t a full WCAG audit or a screen-reader test.

CheckWhat I foundStatus
KeyboardAll controls are real buttons, links or form fields, so Tab reaches them. A 2px outline shows focus. The 3D viewer can also take focus.Pass
Form labelsAll 8 fields are labelled, including the rider-weight slider, which was missing one in the first build.Pass
Contrast (WCAG AA)All 287 solid-colour text items pass, including the six small captions that were at 3.25:1 in the first build. Three gradient headlines can’t be scored by script, but both ends of each gradient are light on near-black.Pass
Reduced motionWith reduced motion on, the 3D hero holds a still view, camera moves cut instead of fly, floor streaks stop, and scroll reveals, count-ups and smooth scrolling are off. Checked in the code, not with a motion-sensitive user.Pass
3D alternativesThe 3D viewer now has a text description that names the bike, colour and state, and arrow keys rotate, + and − zoom, and R resets. Specs, price, colours and parts are also shown as text. Not yet tried with a screen reader.Pass
Hero ridePress and hold to ride is now a real button, so keyboard users can hold Space or Enter on it.Pass
Usability testingNo sessions with real shoppers yet.Not done
8.4

Limitations

  • Not tested with real riders or buyers
  • The personas and assumptions in section 03 are still unvalidated
  • Range figures come from made-up specs, not real battery data
  • Frame rate on phones wasn’t measured
  • Accessibility was checked by script and in code only (8.3), not with a screen reader or disabled users
8.5

Proposed next steps

  • Run a short usability test of the finder, range calculator and booking with e-bike shoppers
  • Test the 3D viewer and booking form with VoiceOver and NVDA, now that the 8.3 gaps from the first build are fixed
  • Measure frame rate on mid-range Android phones and add a lighter 3D mode if needed
  • Check range estimates against real battery and motor specs
  • Track test-ride bookings by starting section to test the hypothesis in 2.2
8.6

What I learned

01

Ask to be asked.

Thirteen questions up front cost a few minutes and saved hours of rework. It’s the same reason we run a kickoff.

02

References beat adjectives.

The biggest jump in quality came from one folder of product photos, not from a better-written prompt.

03

Review like a design lead.

Short, specific notes about what feels wrong and why moved the work further than any long instruction did.

04

“It runs” isn’t “it’s right”.

Claude was good at checking its own code and blind to what looked wrong. Taste, realism and feel still need a person.

Next case study At-Home STI Test Website