Creative Coding

Motion

Real-Time 3D

The Shape of a Wish:

The Shape of a Wish:

Designing and Developing โ€œStarWishโ€

Designing and Developing โ€œStarWishโ€

Designing and Developing โ€œStarWishโ€

Overview

Overview

Overview

Role:UI/UX Design Intern
Duration:Sep. 2024 - Dec. 2024
Scope:UI/UX, wireframing, prototyping
Team:Solo Project

I created this gesture-driven web experience where a wish turns a shooting star into a WishStar forever in the galaxy - built in the browser with real-time WebGL 3D and hand tracking, iterated quickly with Gemini-assisted vibe coding.

Final Experience

Final Experience

Final Experience

CLICK HERE to experience this live

Concept & Intent

Concept & Intent

Concept & Intent

INTENT:

I want to make a wish feel heard and anchored, not fleeting.

People have a tradition of wishing on a shooting star, but it passes so fast the wish can feel weightless and hard to hold onto.

CONCEPT:

I want to explore what it means to interact through motion.

no buttons,
no menus,
no clicks.

Interaction Model

Interaction Model

Interaction Model

INTERACTION:

As falling stars pass through the sky,
the user makes a wish and grabs one with a fist.
The star no longer fades away โ€” it stays in the galaxy as a WishStar,
carrying the sense that the wish has been heard by the universe.

DESIGN PRINCIPLE:

gestures should read as โ€œnatural metaphorsโ€

๐Ÿ‘Š fist = grasp/capture the shooting star
๐Ÿ–๏ธ open palm = approach/unveil the solidified star
๐Ÿ‘‹ wave =pan/rotate the star

AI as a Design Partner

AI as a Design Partner

I used ChatGPT and Gemini at different stages of my workflow, each for its strengths.

I used ChatGPT and Gemini at different stages of my workflow, each for its strengths.

I used ChatGPT and Gemini at different stages of my workflow, each for its strengths.

INITIAL PROMPT:

INITIAL PROMPT:

I started with ChatGPT to structure the problem space:
defining interaction model, system behavior, and how gesture should map to response.

REFINING:

REFINING:

I moved to Gemini to implement the experience,
since I found it more fluid for coding and refining the visual quality of the experience.

When features failed to meet my expectation,
I'd request related metrics/rules and adjust based on my own judgment for precision.

โ“ In early versions, meteor could still be caught when it was partially off-screen.

โŒ Poor experience

๐Ÿ’ก I set a safety margin near the screen edge so meteor couldn't be captured when close to flying out of view.

โ“ When palm and fist gestures were detected in rapid alternation, the scene changed just as quickly.

โŒ Broke emotional continuity of the narrative

๐Ÿ’ก I added a one-second buffer between scene changes so transitions felt smoother and less glitchy.

โ“ Meteor moved fast and randomly, making it difficult to catch.

โŒ User frustration and potential drop-off at early stage

๐Ÿ’ก I constrained the start and end points to a small range to make the trajectory more predictable, and set a medium speed so the interaction felt challenging yet achievable on the first try for most users.

LAUNCHING:

LAUNCHING:

To make StarWish feel fully alive, I deployed the experience and maintained the code in a GitHub repository, inviting people to interact with the work in motion.

A/B Testing

A/B Testing

A/B Testing

I conducted a lightweight A/B test with six participants,
to identify which interaction felt more intuitive and required less interpretation.

โœ… NO CAMERA:

SELF VIEW CAMERA:

"The experience is immersive and focused."

"Even though it wasnโ€™t recording, it made me more aware of being on camera."

โœ… CINEMATIC PROMPT:

BOTTOM ACTION PROMPT:

"This feels more emotional, and the other one just feels functional."

"The instruction has a weaker presence."

โœ… SLOW SUMMER EVE (PIANO):

STAY (SONG WITH LYRICS):

"It's calm, peaceful and matches the starry atmosphere."

"The singing is distracting and more noticeable."

How AI Changed in My Process

How AI Changed in My Process

How AI Changed in My Process

I learned to be more specific about intent.

I learned to be more specific about intent.

When working with AI, vague thinking reflects in the output. I learned to better describe timing, response, and edge cases, to get the system as close to what I actually wanted as possible.

What Iโ€™d Do Differently

What Iโ€™d Do Differently

What Iโ€™d Do Differently

If I revisited it, I would improve on:

If I revisited it, I would improve on:

progress saving

enable users to see their prior created stars

accessibility

alternative input mode (keyboard /mouse)