Mosaic
Mosaic logo

Mosaic

Algorithmic redistricting in motion.

Mosaic showing a district plan changing during a run

Mosaic is a program for computer-aided redistricting using recombination and simulated annealing. Load a shapefile, choose the goals that matter for your project, and let the algorithm repeatedly redraw and score the map. Start from scratch, load an existing assignment, or continue refining the map on screen.

What you can do

Live map

Follow the current plan during a run. Color the map by election results, demographics, compactness, or population deviation, and show county lines, precinct lines, district labels, or split counties.

Control the search

Choose how many changes Mosaic should try and how closely district populations must match. Annealing controls how freely the search explores as the run progresses.

ReCom and local flips

Mosaic normally redraws two neighboring districts at a time. Optional three-district moves and single-precinct flips give the search additional ways to change a plan.

Choose what to optimize

Turn individual scores on and set their weights. Available goals cover population balance, district shape, county splits, elections, demographic geography, and alignment with a reference plan.

Inspect the run

Open history charts for individual scores, track where goals align or compete, inspect district details, and return to the best plan found during the run.

Save and continue

Save the current assignments and district metrics as CSV, or save the map as a PNG or PDF.

Screenshots

Nine numbered districts with county boundaries visible in Mosaic.
Pan and zoom through the changing map as the algorithm runs.
Bar chart of Democratic vote share per district, sorted least to most Democratic, with a 50% reference line.
Inspect district-level election results and other plan metrics.
The Mosaic GUI mid-run: Virginia districts on the live map, score history charts, and metric-weight controls.
The Mosaic interface during a live run.

Get Mosaic

Install on Windows 10 or 11, or an Apple Silicon Mac. You do not need to install Python yourself; the launcher handles setup on the first run.

Installation guide →