EirDance

Plan a dance recital run order with quick-change checks, locally on your computer. Import a roster CSV, set change-gap and show rules, review and adjust the order, then export run-order and change-sheet CSV or PDF.

You organise a recital or showcase and need an order in which every dancer has enough time to change between routines, plus sheets for dancers and backstage helpers.

EirDance actual application or output
Real EirDance result for a synthetic 42-routine, 90-dancer roster: optimization reduced 157 hard conflicts to zero; 10 quick changes remain for backstage review. The run-order CSV was exported.

Before you start

Your first result

  1. Buy, download and open

    Buy from /store/eir-dance/ and download eir-dance-0.1.0.zip from the checkout page. Extract it and open eir-dance/eirdance.html in Chrome. “Try the synthetic sample” loads a fictional show if you want to explore first.

  2. Prepare the roster

    Use one row per routine with a Dancers column (names separated by ;), or one row per routine and dancer with a Dancer column. Recognised columns: ID, Title (or Routine), Class, Style, Duration (m:ss, or minutes like 3.5), Dancers/Dancer, Fixed (first, last, a position number, before intermission, after intermission), Part (1 = before the first intermission), Notes and Position. Comma, semicolon and tab separated files are detected automatically. The “Help & CSV format” tab shows the same rules.

  3. Import

    Click “Import roster CSV” (or File ▾ → “Import roster CSV…”), then “Choose a file”, or paste CSV text into the box. A preview lists the routines, dancers and which columns were used. Enter a “Show name” if you like and click the “Import … routines” button. Importing replaces the current routines; Undo (↶) goes back.

  4. Set the rules

    Open “Rules” in the side panel. “Minimum change time (hard rule)” needs both a number of “Routines between” and a “Time between” two routines of the same dancer (new shows start at 2 routines and 5:00; 0 turns a limit off). “Quick-change flag (soft)” marks tight changes that are still allowed. Also set “Transition between routines”, “Show starts at”, intermissions (“+ Add intermission”), style preference and the PDF page size (US Letter or A4).

  5. Check and optimize

    “Checks” lists hard conflicts with the dancers involved, quick changes and same-style neighbours, and can state that no order can meet the rules (for example when a dancer is in too many routines). Open “Optimize”, choose an Effort (Quick, Standard, Thorough or Maximum), keep “Current order (improve it)” and click “Optimize”. Fixed routines stay in place. The result table compares Before and Result; Undo restores the previous order. You can also drag rows or use ▲▼ to move routines by hand; every change is re-checked.

  6. Export and print

    Use Export ▾ for CSV (Run order, Change sheets (all dancers), Backstage quick-change list, Roster (re-importable)) or PDF (the same sheets plus Complete packet). Print ▾ sends the same sheets to Chrome's print dialog; use that for names in non-Latin scripts. Files go to Chrome's downloads folder.

  7. Saving and backups

    EirDance saves the show in this browser automatically (the status bar shows “Saved in this browser at …”) and reopens it next time. Browser storage can be cleared, so also use File ▾ → “Save project file” to download a .eirdance.json backup, and “Open project file…” to load it. “Clear data in this browser…” removes the stored show.

A nine-routine fictional spring recital

Input: examples/eir-dance/spring-recital-roster.csv: 9 fictional routines and 14 dancers (first names with an initial). The opening (R01) is fixed first and the finale (R09) fixed last; four company dancers appear in the opening, one middle routine and the finale.

  1. Open eirdance.html in Chrome and click “Import roster CSV”.
  2. Click “Choose a file”, pick spring-recital-roster.csv and click “Import 9 routines”.
  3. Open “Checks” and read the conflicts.
  4. Open “Optimize”, keep Standard — 100,000 iterations and the default seed, and click “Optimize”.
  5. Export ▾ → CSV “Run order” and PDF “Complete packet”; then File ▾ → “Save project file”.

Expected: Before optimizing, Checks shows 8 hard conflicts (for example Opening: Sunrise straight into Tap Attack leaves Ava M. and Ben K. 0 routines / 0:30 to change; the rule needs 2 routines and 5:00). After Optimize the result table shows hard conflicts 8 → 0 and Checks says “No hard conflicts”, with some quick changes still flagged for backstage. The run order keeps Opening: Sunrise first and Finale: Together last, runtime 27:35 from 6:00 PM. Downloads: spring-recital-roster-run-order.csv (position, start time, routine, dancers, conflicts), spring-recital-roster-packet.pdf and spring-recital-roster.eirdance.json. Reopening the page restores the show from the browser.

Troubleshooting

Checks says the rules are “Proven impossible”.

Some dancer is in too many routines for the show length with the current hard rule. Lower “Routines between” or “Time between”, add an intermission, or change the casting; the optimizer cannot fix it.

Conflicts remain after optimizing.

Run again with a higher Effort or a fresh shuffle, check that fixed positions are really needed, and review remaining conflicts by hand. The optimizer is a bounded search and does not guarantee a conflict-free order.

Durations or dancers were not recognised.

Use m:ss (3:05) or minutes (3.5) for Duration and separate dancer names with ; in the Dancers column. Check the import preview before clicking Import.

Names with non-Latin letters look wrong in the PDF.

Direct PDF export uses built-in Latin fonts. Use Print ▾ and choose Save as PDF in Chrome's print dialog instead.

My show is gone.

The browser's stored data was cleared or you used another browser or profile. Use File ▾ → “Open project file…” with your saved .eirdance.json, or import the roster again.

Compatibility and limits

Guide and examples: 30 September 2026. Examples are fictional or synthetic. Online guide · Support