CH.1 — Field Guide
Oscillatte Field Guide
A wiggle-pattern trainer for latte-art muscle memory — practiced with a real pitcher, without using a drop of milk or espresso.
The Idea
Hold your phone like a cup flat or tilted, face-up, in landscape. The screen becomes the surface of the espresso, viewed from above. A wiggling trace scrolls across it like a line on an oscilloscope — you hold a real steaming pitcher and move it to match the rhythm on screen.
No milk moves. No coffee gets wasted. You just get the one thing that actually builds latte art skill: hundreds of reps of the correct motion, at the correct rhythm, with nothing on the line.
Oscillatte isn't a physics simulator — it doesn't model milk, and it won't predict your rosette. It's a metronome for your wrist: it trains the rhythm, not the result.
Most new baristas' pours fall apart for one reason: fear of spilling. Rehearsing the gesture against a rhythm target — with zero material cost and zero consequence — is what removes that fear, so the motion has room to become automatic.
Getting Oscillatte Onto Your Counter
Oscillatte lives at ipourquality.com — there's nothing to download from a store. Install it to your home screen and it behaves like any other app: its own icon, no browser chrome, and it keeps working with no internet connection once it's on your phone.
Add to Home Screen
1. Open ipourquality.com in Safari.
2. Tap the Share icon in the toolbar.
3. Scroll down and tap Add to Home Screen, then confirm.
4. Launch Oscillatte from its new icon — not the browser — for the full app view.
Safari may ask to allow motion & orientation access the first time you open Tilt mode — allow it, or the dot won't follow your tilt.
Add to Home Screen
1. Open ipourquality.com in Chrome.
2. Tap the menu (⋮) in the top right.
3. Tap Add to Home screen or Install app, then confirm.
4. Launch Oscillatte from its icon in your app drawer.
Equipment on the counter: your phone, a real steaming pitcher, and a cup — empty is fine, no milk required to train.
Running a Session
Every session follows the same shape, whether it's a two-minute warm-up or a slow first attempt. The dials don't change what the app does — they change what you're rehearsing.
1. Hold your phone flat. Landscape, face-up, screen representing the surface of the cup. There's no "upright" mode — the app is built around the phone in ladndscape facing up.
2. Choose a pattern. Pick from the pattern menu: Consistent for one unbroken wiggle, 3 / 5 / 7-Wiggle for a burst-then-pause rhythm that mirrors a real pour's transitions, or Wiggle (Random) for uneven, less-predictable bursts.
3. Dial in Wave Width, Track Speed, and Track Height. Wave Width tightens or widens each wiggle. Track Speed sets how fast the trace scrolls. Track Height (the draggable handle, with a live numeric readout) sets how wide the wiggle swings — how much "reach" you're rehearsing.
4. Press play and mirror it with a real pitcher. The trace flatlines, then grows into place — like a CRT warming up — before it starts scrolling. Move your pitcher to match the wiggle as it plays. Pause anytime; only Reset clears the trace.
5. Once the wiggle is automatic, add Tilt. Now the wave holds still and a dot chases across it as you physically tilt the phone — the same motion as tilting the cup toward the pitcher. Isolate the wiggle first; layer the tilt in once it's second nature.
Reverse flips scroll direction only. Mirror flips which side looks decayed, independent of Reverse. Offline: works with no signal once installed.
Four Ways to Use a Session
Same app, different pour on your calendar. Here's how the dials change depending on what you're actually training for.
First Pour, No Fear
A brand-new barista's first time holding a pitcher near a cup. The goal is comfort with the motion itself — nothing else.
Dial-in: Normal mode · Consistent pattern · slow Track Speed · wide Track Height.
Notes: Run it over an empty cup. There's nothing to spill, so there's nothing to be afraid of — just repetition until the wrist stops thinking about it.
Pre-Shift Warm-Up
Two minutes before opening, for a barista who already knows the motion and just needs to loosen up.
Dial-in: Normal mode · Wiggle (Random) · your usual Track Speed.
Notes: The unevenness keeps you reacting instead of anticipating — closer to how a real pour actually feels than a perfectly even wave.
Isolating the Wiggle
Rehearsing the wiggle-then-transition rhythm of an actual rosette pour, in isolation, before tilt is added at all.
Dial-in: Normal mode · 3, 5, or 7-Wiggle burst pattern.
Notes: The flat pause between bursts is the transition point in a real pour. Feel it as a beat, not a stop.
Layering in the Tilt
For a barista whose wiggle is already automatic and is ready to combine it with the cup-tilt motion.
Dial-in: Tilt mode · pick the phone up, hold it like you'd hold the cup.
Notes: Chase the dot left and right by physically tilting. Wiggle and tilt are trained separately on purpose; only combine them once each is solid alone.
Bonus drill — the dry bench. Stretch a rubber band across an empty cup to give yourself a physical track, the same way Oscillatte's Track Height gives you a visual one. Trace the pattern shape with a dry pen against it. Zero spill risk, and it rehearses the line shape your wrist is about to draw for real.
When Something Looks Off
Screen's just sitting there, nothing's moving. Normal mode doesn't auto-run — hit play. On start, the trace flatlines and grows into place before it begins scrolling, so give it a moment before assuming it's frozen.
Tilt mode won't respond to tilting. Make sure you're in Tilt mode, not Normal — the phone needs to be picked up and tilted, not left flat. On iPhone, Safari may need one-time permission for motion & orientation access; if you missed that prompt, reload the page to trigger it again.
The app suddenly says "incoming transmission — updating…". That's expected — Oscillatte checks for a new version on load and updates itself automatically. It'll reload in a couple of seconds with the newest build. There's no manual update step.
Does it need an internet connection to work? No — once installed, the trainer itself runs fully offline. The only thing that needs a connection is a small, silent usage ping; it won't block or slow down a session with no signal.
Reverse and Mirror seem like the same button. They're independent on purpose. Reverse only changes which side new wiggle enters from. Mirror only changes which side looks faded versus fresh. Toggle each on its own to see the difference.
Quick Reference
| Control | What it does |
|---|---|
| Wave Width | Tightens or widens each individual wiggle in the trace. |
| Track Speed | How fast the trace scrolls across the screen. |
| Track Height | Drag the handle to set how wide the wiggle swings, with a live numeric readout for repeatable settings. |
| Pattern menu | Consistent (unbroken wave), 3 / 5 / 7-Wiggle (burst then pause), Wiggle (Random) (uneven bursts). |
| Reverse | Flips which side the trace scrolls in from. Direction only. |
| Mirror | Flips which side visually fades versus stays bright. Independent of Reverse. |
| Play / Pause | Starts or holds the session without clearing the trace. |
| Reset | The only control that clears the trace back to flat. |
| Tilt toggle | Switches from the flat, scrolling Normal mode to the held, chase-the-dot Tilt mode. |
Oscillatte is free to use, donations and supporters are awesome.