Spin Picker

LET THE WHEEL DECIDE.

A native iOS wheel-of-names app by Slickfive. Type your names, tap the wheel, and watch it spin down to a verdict — who does the dishes, who picks first, who wins the raffle. Two modes, spoken results, and confetti for the winner.

iOS 26 · SwiftUI Liquid Glass 2 spin modes Spoken results 100% offline
scroll · or press ↓
The pitch

Every group decision,
settled by a spin

No accounts, no setup, no arguments. Build a list as fast as you can type — Reminders-style rapid entry, return for the next name, or paste a whole list and it splits into rows — then hand the wheel its verdict.

  • Instant lists. Inline-editable rows, multi-line paste, swipe to delete — and your last list is restored on every launch.
  • Fair by construction. Every spin's landing slice is drawn from a SplitMix64 generator seeded with fresh system entropy.
  • Results that talk. Each pick is read aloud — "Alice is out. Diego wins!" — in your choice of voice.
Splash screen with the miniature glowing wheel
Entry screen with a color-coded list of eight names
Anatomy of a spin

Tap · Spin · Verdict

1
Idle wheel with eight glossy slices and a pulsing SPIN hub

Tap the wheel

Every name gets a glossy Canvas-drawn slice in its own colour. The hub pulses — one tap sets it off.

2
The wheel mid-spin with the hub arrow turning

The spin

Six full turns on a long deceleration curve, with a synthesized tick at every slice boundary — slowing as the wheel does.

3
Elimination banner reading Alice is out, with Alice in the out strip

The verdict

The pointer lands, the name is announced out loud, and a glass chip drops into the eliminated strip below.

Live capture

Watch a full round

Recorded straight from the iPhone 17 Pro simulator: list entry, three elimination spins, and the winner reveal with trophy, confetti and the results card.

  • What you can't hear: a crisp 1850 Hz tick on every slice boundary, a rising four-note win chime, and the winner announced by voice.
  • What you can't feel: a medium haptic on launch, a rigid thump on landing, and a layered celebration haptic under the confetti.
Gameplay

Two ways to let fate decide

Same wheel, two rituals — knock names out one by one, or build a full ranking spin by spin. The app remembers which one your table prefers.

❌

Eliminate

Each spin knocks a name off the wheel. The slices left behind grow bigger, the tension grows with them, and the last name standing wins.

last one left wins
🏅

Pick order

Each spin picks the next name in sequence — 1st, 2nd, 3rd… — until the whole list is ranked. Perfect for draft order and turn order.

full ranking
The payoff

A reveal worth waiting for

When one name remains, the results card rises on a spring: the winner under a gold trophy, everyone else listed in order, and 90 confetti particles colour-matched to the wheel raining down behind it.

  • Both stories told — Eliminate shows first-out to last with the survivor pinned at the bottom; Pick order pins the 1st pick on top.
  • Spin Again reshuffles the same list with a fresh seed; New List drops you back to the editor.
  • Announced aloud — "Diego wins!" — with a C-major arpeggio and a celebration haptic.
Eliminate results: Diego wins with trophy and confetti
Pick order results: Chloe first, full ranking below
Under the hood

Engineered suspense

The landing slice is drawn before the wheel moves from a SplitMix64 generator seeded with system entropy. Then six full turns play out the drama on a single cubic-Bézier curve — a hard launch into a long, agonising crawl:

Launch
Blur
The crawl
a hard kick off the line slices strobe past the pointer tick … tick … tick — into the landing
  • Ticks ride the curve — a 600-sample Bézier solver precomputes the exact moment every slice boundary crosses the pointer, so the ticks decelerate in perfect sync with the wheel. No timers, no drift.
  • Never dead-centre — a ±32% jitter inside the winning slice means the pointer never stops suspiciously on a boundary or a bullseye.
  • Cancellable to the end — one structured task drives ticks, haptics and completion; leaving mid-spin tears it all down cleanly.
Sound & voice

An audio engine with zero audio files

Every sound is synthesized at runtime into AVAudioEngine buffers — the app ships no audio assets at all. On top, an AVSpeechSynthesizer voice narrates the round, politely ducking whatever music is playing.

SoundRecipeMoment
tick22ms click · 1850Hz sine, exponential decayevery slice boundary, synced to the spin curve
win chimearpeggio · C5 E5 G5 C6, 130ms notesthe winner is revealed
voicepremium system voice · female or male"Alice is out." · "Diego wins!"

Plus a full haptic score — selection taps, a medium impact on launch, a rigid thump on landing, and a layered celebration for the winner — with sound, speech and a one-tap master mute all independently switchable.

Saved Lists sheet showing the Game Night list
Your lists

Lists that stick around

The Friday game-night crew, the office raffle, the chore rota — save any list by name and reload it in two taps. The wheel is always one spin away from your regulars.

  • Auto-restore — the last list you used is already loaded next launch; first-timers get a friendly 8-name sample.
  • Paste a whole list — newline- or comma-separated text pasted into one row splits into rows automatically.
  • Kind to your battery — edits are debounced into a single write instead of persisting every keystroke.
Make it yours

Tuned for every table

  • Pacing — spin length from 2 to 8 seconds with Quick / Normal / Long presets, so a quick coffee-run pick and a slow-burn raffle both feel right.
  • The voice — female or male announcer, chosen with a live preview; the app prefers the premium system voice for your language.
  • Ten slice colours — a vibrant palette assigned automatically as you type.
  • Dark / Light / System theme over a drifting mesh-gradient backdrop, with sound and speech each on their own toggle.
Settings: spin duration with presets, sound and voice options, appearance
About screen: version, description and features
For everyone

Accessible by design,
private by default

  • VoiceOver end to end — the wheel announces itself ("Wheel with 8 names") and spins on activation; results rows read name, placement and winner status.
  • Reduce Motion respected — the idle pulse and confetti bow out gracefully; Dynamic Type and high-contrast semantic colours throughout.
  • Spoken results double as an accessibility feature — you never need to read the wheel to know the verdict.
  • Nothing leaves the device — no account, no network calls, no analytics, no tracking. Siri opens it with "Spin the wheel in Spin Picker."
Built with

SwiftUI for iOS 26 · Liquid Glass · Swift 6

A Canvas-drawn wheel under native Liquid Glass chrome, driven by @Observable view models and structured-concurrency spins. XcodeGen generates the project from a single YAML; the privacy manifest ships in the box.

2
spin modes
10
slice colours
0
audio assets shipped
100%
offline · zero tracking

Let the wheel decide.