Skip to content

akulanikhil/pickleball

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pickleball Rotations Generator

Used by 50+ leagues across the nation — the fairest way to run your pickleball session.

Live app: pickleball.akula.me


What It Does

Organizing doubles pickleball is a logistics puzzle: who sits out, who played together last round, who has been benched twice in a row? This tool solves all of that automatically.

Enter your players, set how many courts you have, and get a complete rotation schedule that:

  • Minimizes repeat teammates and opponents across rounds
  • Distributes court time evenly — no one sits out more than anyone else
  • Optionally prevents back-to-back bench time
  • Produces shareable, reproducible schedules via a single URL

Features

  • Instant schedule generation — works entirely in the browser, no account needed
  • Configurable courts & rounds — supports 1–10 courts and 1–50 rounds
  • Seeded randomness — use a seed to regenerate the exact same schedule anytime, or share it with others
  • Shareable links — the full configuration is compressed into the URL so you can send a schedule to your whole group
  • Copy to clipboard — export the schedule as plain text for messaging apps or printed sheets
  • Advanced tuning — adjust penalty weights for teammate repeats, opponent repeats, and play-time balance; tune beam width for deeper search
  • Live diagnostics — see play counts, bench counts, and partner/opponent frequency after generation

Usage

  1. Open pickleball.akula.me
  2. Paste your player list (one per line, or comma-separated)
  3. Set the number of courts and rounds
  4. Click Generate Schedule
  5. Share the link or copy the schedule

Algorithm

The generator uses a beam search over possible round assignments, scored by a multi-objective cost function:

Factor What it controls
Teammate repeat penalty How hard the algorithm avoids putting the same pair together
Opponent repeat penalty How hard it avoids the same matchup
Play balance penalty Keeps cumulative court time even across all players

All weights are tunable. A seeded pseudo-random number generator (xmur3 + sfc32) makes schedules deterministic and reproducible.


Tech Stack

  • Vanilla JavaScript (ES modules) — no build step, no framework
  • HTML5 + CSS3
  • LZ-String for URL compression
  • Hosted on GitHub Pages

Local Development

git clone https://github.com/akulanikhil/pickleball.git
cd pickleball
# Open index.html in a browser, or serve with any static file server:
npx serve .

No dependencies to install. All logic is in app.js.


Contributing

Bug reports, feature requests, and pull requests are welcome. Open an issue to discuss larger changes first.


License

MIT

About

Fair and automated pickleball rotations generator that builds balanced doubles matches, minimizes repeat teammates/opponents, and keeps playtime evenly distributed across all players.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors