Play

Product design · Interaction design · iOS · 2022–2023

Designing what software feels like.

Prototypes were good at showing where an interface went next. We wanted designers to control what happened in between.

Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142

pull this up

The transition wasn’t the interaction. Your finger was.

question
How do you give designers control over native behaviour without asking them to become engineers?
role
Senior Product Designer / Design Engineer, working across product design, interaction design and implementation.
team
Part of a six-person product team.
period
August 2022 – October 2023
focus
A four-month product cycle focused on the interaction system, native gesture behavior, motion and physics, interaction authoring, and device testing.
status
Shipped on Mac and iPhone. Play later received an Apple Design Award for Innovation in 2025; the team joined Apple in 2026.

a prototype could be correct and still feel wrong

Every designer who has handed off a prototype knows it. It looks right, it clicks through, engineering builds it, and the thing that ships feels different. The screens were correct. What was missing was never in the picture.

The two sheets below end at the exact same pixels. Press play on the left and try to grab it while it moves. Then do whatever you like to the right one.

animationthe system owns the timeline
not while it’s moving
Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142
interactionyou own the timeline
Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142
drag · flick · reverse · grab it mid-air

animation describes what an interface does.

interaction describes what happens when the user interferes.

the user owns the timeline

Happy paths are easy to animate. Interaction starts when the user changes their mind: halfway through a gesture, halfway through a settle, before the last one has finished. Nothing should ask them to wait.

Try to break it. Drag the sheet. Release it. Grab it before it settles. Reverse it. Flick it from halfway. The surface answers immediately because running state is still manipulable state.

Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142

the missing material

The missing material was physics.

A timeline knows two things: where it starts and where it ends. A finger brings position, velocity, direction, resistance and the option to stop. Native interfaces are built out of those, and a designer working in screens had no way to touch any of them.

Four surfaces, one variable each. Each one is something Play let a designer decide instead of inherit.

velocitythe same distance, two intentions
Archivedrag right slowly, then flick it

position says where the finger is. velocity says where it meant to go.

resistancea boundary, not a wall
Directions
Call
Menu
Photos
Reviews
Hours
Share
Save

drag past either end. it keeps answering, at a diminishing rate, then lets go.

momentumthe gesture outlives the finger
Blue Bottle
4 min
Devoción
9 min
Sey Coffee
12 min
Variety
14 min
Abraço
16 min
La Cabra
18 min
Ninth Street
21 min
Everyman
23 min
Kaffe 1668
25 min
Black Fox
27 min
Little Collins
30 min
Bluestone Lane
33 min
Felix
35 min
Hi-Collar
38 min

flick it. it keeps going. touch it and it stops, exactly where it is.

springthree words before any numbers
Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142

response 0.42 s · damping 0.86

the last line is the part designers never had to see first. the product question was how to translate it into words a designer would choose between.

behaviour needed a grammar

Physics says how something moves. It does not say when, what started it, which state we are in, what happens if a condition is not met, or what comes next. That is the point where Play stopped being a motion problem and became a product-design problem.

An interaction in Play is a trigger, an action, and the state the object ends in. The finger fires the trigger; the action decides the state; the spring decides the route. Drag the sheet and the sentence lights up in the order it happens.

Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142
  1. whenPan · while panning0 px0 px/s
  2. ifdistance past 30 % of the travelwaiting
  3. thenSet Stateclosed
  4. withSpring · responsive · interruptible

what the system knows

  • touch location
  • translation
  • velocity
  • gesture state
  • scroll offset
  • keyboard frame
  • spring response
  • state transition
Play

what the designer means

  • follow my finger
  • feel heavier
  • settle quickly
  • let me interrupt it
  • snap here
  • move with the keyboard
  • bounce at the edge
  • open when I mean open

the designer works with the sentence. the person holding the phone gets the behaviour. the translation between them was the product.

power didn’t have to mean permanent complexity

A bottom drawer that feels right is a trigger with two phases, a threshold, a release rule, two states and a spring. A designer who wants a bottom drawer wants a bottom drawer. The engine has to hold all of it; the interface does not have to show all of it.

Good tools do not remove power. They decide when you need to see it. Show the logic and the card opens into its own structure; the choices you made physically travel into their places in the system.

Bottom drawerPan · vertical
trigger
Pan
spring
Responsive
release
Nearest state

the complexity has not gone anywhere. it has been put where it is needed, and away when it is not.

you couldn’t design touch without touching it

A canvas on a Mac shows layout, hierarchy, type and colour at a comfortable size, under a cursor that is one pixel wide. It cannot show what a thumb can reach, what a finger covers, how fast a flick really is, or how a spring feels when the whole device is in your hand. Play ran the prototype on the phone, with the platform’s own gestures, springs, scroll and haptics.

That is why everything here is something you can touch, not something you watch. On a phone, your device is the device.

the canvas can tell you

  • layout
  • hierarchy
  • type and colour
  • every state, side by side

only the device can tell you

  • what a thumb reaches
  • what a finger hides
  • how fast a flick is
  • what a spring weighs
  • where a target is too small
  • what the keyboard pushes
  • what a haptic says

feedback is not only visual. on the device, a settle can be felt as well as seen.

SIX PEOPLE. FOUR MONTHS. ONE INTERACTION SYSTEM.

Play existed before this cycle and kept going after it. The question for these four months was never how much six people could build. It was which part of the interaction system had to be true first. A design tool could grow in almost any direction, and most of those directions already existed, and existed well, in tools designers were not going to leave.

I worked across product design, interaction design and implementation within Play's six-person product team, focusing on how native mobile behavior could become something designers could author directly.

So the cycle did not widen the product. It deepened one loop in it. Cut the universe down and see what is left.

everything a design tool could be

canvasvector editingcomponentsvariablesdesign systemscollaborationcommentsversion historyasset managementpluginsdeveloper handoffexport to codeimportinteractionpreviewshare
import
start from the design work that already exists. nobody redraws a screen to give it behaviour.
interact
turn visual states into behaviour: a trigger, an action, a spring.
preview
experience it where it will live, on the phone, with the platform doing the physics.
share
put that behaviour in someone else’s hand, so the argument is felt rather than described.

our users already knew the tricks

The audience was professional designers. They clock an easing curve from across the room and have an opinion about scroll inertia. The editor could be beautiful and the product would still fail if the output felt wrong, because the output was the only thing their own users would ever touch.

So craft meant precision, not ornament: the invisible decisions that are only noticed when they are wrong. This is what they would have caught, and what the tool had to get right by default.

fake easing
a curve that decelerates the way a timeline decides, not the way a finger let go.
lag
any gap between the finger moving and the surface moving. Designers feel 16 ms.
happy-path animation
a transition that only works if you never interrupt it.
awkward defaults
a spring that bounces when nobody asked, a threshold at the wrong distance.
unnecessary panels
an inspector that shows every variable because the engine has it.
unloved edges
the import flow, the empty state, the settings screen. The parts a demo never reaches.

More animation is not better interaction. A frequent action should be quiet and immediate; a rare one can afford to explain itself. Giving designers a powerful engine did not mean encouraging them to animate everything.

what happened

The four-month cycle's scope held: import a design, give it behaviour, preview it natively, share it. Wider authoring came after the loop had survived daily use.

After my time the product kept moving in the direction the model implied: prefabs that packaged whole behaviours as one drag, variables and conditions for logic, App Clips so a prototype could be handed to anyone with an iPhone, and export straight into Xcode.

10,000+designersadoption

Grown through word of mouth inside the design community. The signals suggested people weren't only trying Play; a meaningful share were coming back.

63%week-four retentionusage

Share of the measured user cohort that returned to Play during the fourth week after first use.

ADAApple Design Award, Innovation, 2025recognition

Awarded to Play by the platform the tool was built on.

In 2026 the team behind Play joined Apple; the standalone apps were retired that spring. Apple had spent years lowering the barrier to building for its platforms from the engineering side. Play approached the same problem from the design side, speaking the platform's language at the level of behavior.

what changed for me

I went in thinking prototyping was about communicating an intended outcome: here is the screen, here is the next screen, here is how it should get there.

I came out thinking about the space between intention and response. While the finger is still down. When the direction changes. When the velocity changes. When someone interrupts the thing they started, or changes their mind halfway through. That is where an interface feels right or wrong, and it is the part a picture cannot hold.

We did not need to make every part of the design process better. We needed to make one missing part meaningfully better, and put it in someone's hand.

Screens were not enough. Timelines were not enough. Behaviour depended on input, state, physics and context, and Play made that something a designer could author, test, and hand to someone else.

feel it

Author a behaviour. Then use it.

Start from a pattern, change how it releases, how it springs, whether it can be interrupted. Then press Preview: the controls step back and the phone is all that is left.

  • set the spring to soft, flick the drawer, grab it on the way
  • turn interruption off and try the same thing
  • switch to the elastic header, pull past the top, let go
  • flick the card toward C from A, then try to catch it
Blue Bottle CoffeeCoffee shop · 4 min walk · Open
Directions4 minCallWebsiteMore
HoursOpen · Closes 7 PM
Address76 Lafayette Ave, Brooklyn
Phone(718) 555-0142

bottom drawer · pan up to open

start from

behaviour

when
Pan
direction
Vertical
release
spring
interruptible
  1. trigger on the surface, both phases
  2. while panningtranslate1:1, rubber-band past the ends
  3. endedevaluateposition and velocity → Nearest state
  4. actionSet Stateor coast, for the header
  5. withSpringResponsive · interruptible: Yes
back
Nairobi, Kenya